diff --git a/.distignore b/.distignore index e76a78f8d..bc0bfe221 100755 --- a/.distignore +++ b/.distignore @@ -32,4 +32,5 @@ phpstan-baseline.neon AGENTS.md .wp-env.json .claude - +skills +classes/Visualizer/Gutenberg/src diff --git a/.github/workflows/build-dev-artifacts.yml b/.github/workflows/build-dev-artifacts.yml index b13dae1b0..54722a208 100755 --- a/.github/workflows/build-dev-artifacts.yml +++ b/.github/workflows/build-dev-artifacts.yml @@ -28,7 +28,14 @@ jobs: run: | composer install --no-dev --prefer-dist --no-progress - name: Create zip - run: npm run dist + run: | + npm ci + npm run gutenberg:build + CURRENT_VERSION=$(node -p -e "require('./package.json').version") + COMMIT_HASH=$(git rev-parse --short HEAD) + DEV_VERSION="${CURRENT_VERSION}-dev.${COMMIT_HASH}" + npm run grunt version::${DEV_VERSION} + npm run dist - name: Retrieve branch name id: retrieve-branch-name run: echo "::set-output name=branch_name::$(REF=${GITHUB_HEAD_REF:-$GITHUB_REF} && echo ${REF#refs/heads/} | sed 's/\//-/g')" diff --git a/.github/workflows/deploy-wporg.yml b/.github/workflows/deploy-wporg.yml index 2eba591cb..2c4d342cf 100644 --- a/.github/workflows/deploy-wporg.yml +++ b/.github/workflows/deploy-wporg.yml @@ -15,6 +15,7 @@ jobs: - name: Build run: | npm ci + npm run gutenberg:build composer install --no-dev --prefer-dist --no-progress --no-suggest - name: WordPress Plugin Deploy uses: 10up/action-wordpress-plugin-deploy@master diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index c44e03ab0..08808862e 100755 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -24,6 +24,7 @@ jobs: - name: Install npm deps run: | npm ci + npm run gutenberg:build npm install -g playwright-cli npx playwright install --with-deps chromium - name: Install composer deps diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml new file mode 100644 index 000000000..b8c2c5f8e --- /dev/null +++ b/.github/workflows/translations.yml @@ -0,0 +1,45 @@ +name: Translations Diff + +on: + pull_request_review: + pull_request: + types: [opened, edited, synchronize, ready_for_review] + branches: + - development + - master + +jobs: + translation: + runs-on: ubuntu-latest + steps: + - name: Checkout Base Branch + uses: actions/checkout@master + with: + ref: ${{ github.base_ref }} + path: visualizer-base + - name: Setup node 22 + uses: actions/setup-node@v6 + with: + node-version: 22.x + - name: Checkout PR Branch (Head) + uses: actions/checkout@master + with: + path: visualizer-head + - name: Build POT for PR Branch + run: | + chmod +x ./visualizer-head/bin/make-pot.sh + ./visualizer-head/bin/make-pot.sh ./visualizer-head ./visualizer-head/languages/visualizer.pot + ls ./visualizer-head/languages/ + - name: Build POT for Base Branch + run: | + ./visualizer-head/bin/make-pot.sh ./visualizer-base ./visualizer-base/languages/visualizer.pot + ls ./visualizer-base/languages/ + - name: Compare POT files + uses: Codeinwp/action-i18n-string-reviewer@main + with: + fail-on-changes: "false" + openrouter-key: ${{ secrets.OPEN_ROUTER_API_KEY }} + openrouter-model: "google/gemini-2.5-flash" + base-pot-file: "visualizer-base/languages/visualizer.pot" + target-pot-file: "visualizer-head/languages/visualizer.pot" + github-token: ${{ secrets.BOT_TOKEN }} diff --git a/.gitignore b/.gitignore index c4c9a71c3..ca03439b9 100755 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ vendor .DS_Store artifacts .phpunit.result.cache +classes/Visualizer/Gutenberg/build diff --git a/.wp-env.json b/.wp-env.json index d4d36aa0b..86dd6cef1 100644 --- a/.wp-env.json +++ b/.wp-env.json @@ -1,5 +1,5 @@ { - "core": "WordPress/WordPress#6.5.0", + "core": null, "phpVersion": "7.4", "plugins": ["."], "themes": [], diff --git a/AGENTS.md b/AGENTS.md index 5e9877b11..dff1caaa8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,14 +33,9 @@ npm run build # Production build → build/block.js npm run dev # Watch mode for development ``` -### E2E Tests & Environment -```bash -npm install # Install root-level JS dependencies -npm run test:env:start # Start wp-env WordPress environment -npm run test:env:stop # Stop wp-env -npm run test:e2e:playwright # Run Playwright E2E tests -npm run test:e2e:playwright:debug # Playwright UI debug mode -``` +### E2E & PHPUnit Tests + +> Skill files for running tests are in [`skills/`](skills/): use `skills/e2e.md` for E2E and `skills/unit.md` for PHPUnit. --- diff --git a/bin/cli-setup.sh b/bin/cli-setup.sh index 550873bcc..502cfc78a 100755 --- a/bin/cli-setup.sh +++ b/bin/cli-setup.sh @@ -4,6 +4,7 @@ wp --allow-root core install --url="http://localhost:8889" --admin_user="admin" mkdir -p /var/www/html/wp-content/uploads chmod -R 777 /var/www/html/wp-content/uploads/* wp --allow-root plugin install classic-editor +wp --allow-root plugin install elementor wp --allow-root theme install twentytwentyone # activate diff --git a/bin/make-pot.sh b/bin/make-pot.sh new file mode 100644 index 000000000..af19c5d73 --- /dev/null +++ b/bin/make-pot.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# Script to generate POT file via Docker +# Usage: ./bin/make-pot.sh [plugin-path] [destination-path] + +# Set defaults +PLUGIN_PATH="${1:-.}" +DESTINATION="${2:-.}" + +# Resolve absolute paths +PLUGIN_PATH="$(cd "$PLUGIN_PATH" 2>/dev/null && pwd)" || { + echo "Error: Plugin path '$1' does not exist" + exit 1 +} + +DESTINATION="$(cd "$(dirname "$DESTINATION")" 2>/dev/null && pwd)/$(basename "$DESTINATION")" || { + echo "Error: Unable to resolve destination path" + exit 1 +} + +# Extract destination filename and directory +DEST_DIR="$(dirname "$DESTINATION")" +DEST_FILE="$(basename "$DESTINATION")" + +# Ensure destination directory exists +mkdir -p "$DEST_DIR" + +echo "Generating POT file..." +echo "Plugin Path: $PLUGIN_PATH" +echo "Destination: $DESTINATION" +echo "" + +# Run Docker container with wp-cli to generate POT +docker run --user root --rm \ + --volume "$PLUGIN_PATH:/var/www/html/plugin" \ + wordpress:cli \ + bash -c 'php -d memory_limit=512M "$(which wp)" --version --allow-root && wp i18n make-pot plugin ./plugin/languages/'"$DEST_FILE"' --include=admin,includes,libs,assets,views --allow-root --domain=anti-spam' + +# Check if the file was created inside the container +if [ $? -eq 0 ]; then + echo "" + echo "✓ POT file successfully generated at: $DESTINATION" +else + echo "" + echo "✗ Error generating POT file" + exit 1 +fi diff --git a/classes/Visualizer/Elementor/Widget.php b/classes/Visualizer/Elementor/Widget.php new file mode 100644 index 000000000..99b13b218 --- /dev/null +++ b/classes/Visualizer/Elementor/Widget.php @@ -0,0 +1,353 @@ + | +// +----------------------------------------------------------------------+ +/** + * Elementor widget for displaying Visualizer charts. + * + * @category Visualizer + * @package Elementor + * + * @since 3.11.16 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +/** + * Visualizer Elementor Widget + */ +class Visualizer_Elementor_Widget extends \Elementor\Widget_Base { + + /** + * Get widget name. + * + * @return string Widget name. + */ + public function get_name() { + return 'visualizer-chart'; + } + + /** + * Get widget title. + * + * @return string Widget title. + */ + public function get_title() { + return esc_html__( 'Visualizer Chart', 'visualizer' ); + } + + /** + * Get widget icon. + * + * @return string Widget icon CSS class. + */ + public function get_icon() { + return 'visualizer-elementor-icon'; + } + + /** + * Get widget categories. + * + * @return array Widget categories. + */ + public function get_categories() { + return array( 'general' ); + } + + /** + * Get widget keywords. + * + * @return array Widget keywords. + */ + public function get_keywords() { + return array( 'visualizer', 'chart', 'graph', 'table', 'data' ); + } + + /** + * Build the select options from all published Visualizer charts. + * + * @return array Associative array of chart ID => label. + */ + private function get_chart_options() { + static $options_cache = null; + if ( null !== $options_cache ) { + return $options_cache; + } + + $options = array( + '' => esc_html__( '— Select a chart —', 'visualizer' ), + ); + + $charts = get_posts( + array( + 'post_type' => Visualizer_Plugin::CPT_VISUALIZER, + 'posts_per_page' => -1, + 'post_status' => 'publish', + 'orderby' => 'title', + 'order' => 'ASC', + 'no_found_rows' => true, + ) + ); + + foreach ( $charts as $chart ) { + $settings = get_post_meta( $chart->ID, Visualizer_Plugin::CF_SETTINGS ); + $title = '#' . $chart->ID; + if ( ! empty( $settings[0]['title'] ) ) { + $title = $settings[0]['title']; + } + // ChartJS stores title as an array. + if ( is_array( $title ) && isset( $title['text'] ) ) { + $title = $title['text']; + } + if ( ! empty( $settings[0]['backend-title'] ) ) { + $title = $settings[0]['backend-title']; + } + if ( empty( $title ) ) { + $title = '#' . $chart->ID; + } + $options[ $chart->ID ] = $title; + } + + $options_cache = $options; + return $options_cache; + } + + /** + * Register widget controls. + * + * @return void + */ + protected function register_controls() { + $this->start_controls_section( + 'section_chart', + array( + 'label' => esc_html__( 'Chart', 'visualizer' ), + 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, + ) + ); + + $admin_url = admin_url( 'admin.php?page=' . Visualizer_Plugin::NAME ); + $chart_options = $this->get_chart_options(); + $has_charts = count( $chart_options ) > 1; // More than just the placeholder option. + + if ( $has_charts ) { + $this->add_control( + 'chart_id', + array( + 'label' => esc_html__( 'Select Chart', 'visualizer' ), + 'type' => \Elementor\Controls_Manager::SELECT, + 'options' => $chart_options, + 'default' => '', + ) + ); + + $this->add_control( + 'chart_notice', + array( + 'type' => \Elementor\Controls_Manager::RAW_HTML, + 'raw' => sprintf( + /* translators: 1: opening anchor tag, 2: closing anchor tag */ + esc_html__( 'You can create and manage your charts from the %1$sVisualizer dashboard%2$s.', 'visualizer' ), + '', + '' + ), + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', + ) + ); + } else { + $this->add_control( + 'no_charts_notice', + array( + 'type' => \Elementor\Controls_Manager::RAW_HTML, + 'raw' => sprintf( + /* translators: 1: opening anchor tag, 2: closing anchor tag */ + esc_html__( 'No charts found. %1$sCreate a chart%2$s in the Visualizer dashboard first.', 'visualizer' ), + '', + '' + ), + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning', + ) + ); + } + + $this->end_controls_section(); + } + + /** + * Render the widget output on the frontend. + * + * @return void + */ + protected function render() { + $settings = $this->get_settings_for_display(); + $chart_id = ! empty( $settings['chart_id'] ) ? absint( $settings['chart_id'] ) : 0; + + if ( ! $chart_id ) { + if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) { + echo '

' . esc_html__( 'Please select a chart from the widget settings.', 'visualizer' ) . '

'; + } + return; + } + + // Detect Elementor edit / preview context early — needed before do_shortcode(). + $is_editor = \Elementor\Plugin::$instance->editor->is_edit_mode() || + \Elementor\Plugin::$instance->preview->is_preview_mode(); + + // In the editor, force lazy-loading off so the chart renders immediately in the + // preview iframe without requiring a user-interaction event (scroll, hover, etc.). + // Also suppress action buttons (edit, export, etc.) — they are meaningless inside + // the Elementor preview and the edit link does nothing there. + if ( $is_editor ) { + add_filter( 'visualizer_lazy_load_chart', '__return_false' ); + add_filter( 'visualizer_pro_add_actions', '__return_empty_array' ); + } + + // Ensure visualizer-customization is registered before the shortcode enqueues + // visualizer-render-{library} which depends on it. wp_enqueue_scripts never fires + // in admin or AJAX contexts (Elementor editor / AJAX re-render), so we trigger the + // action manually. It is a no-op when already registered. + do_action( 'visualizer_enqueue_scripts' ); + + // Capture the shortcode output so we can parse the generated element ID. + $html = do_shortcode( '[visualizer id="' . $chart_id . '"]' ); + + if ( $is_editor ) { + remove_filter( 'visualizer_lazy_load_chart', '__return_false' ); + remove_filter( 'visualizer_pro_add_actions', '__return_empty_array' ); + + // The shortcode enqueues visualizer-render-{library} (render-facade.js). + // Dequeue it so Elementor's AJAX response doesn't inject it into the preview + // iframe. The preview page already loads render-google.js / render-chartjs.js + // via elementor/preview/enqueue_scripts; injecting render-facade.js would add + // a second visualizer:render:chart:start trigger causing duplicate renders. + foreach ( wp_scripts()->queue as $handle ) { + if ( 0 === strpos( $handle, 'visualizer-render-' ) + && 'visualizer-render-google-lib' !== $handle + && 'visualizer-render-chartjs-lib' !== $handle + && 'visualizer-render-datatables-lib' !== $handle ) { + wp_dequeue_script( $handle ); + } + } + } + + echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + if ( ! $is_editor ) { + return; + } + + // Extract the element ID generated by the shortcode (visualizer-{id}-{rand}). + if ( ! preg_match( '/\bid="(visualizer-' . $chart_id . '-\d+)"/', $html, $matches ) ) { + return; + } + $element_id = $matches[1]; + + $chart = get_post( $chart_id ); + if ( ! $chart || Visualizer_Plugin::CPT_VISUALIZER !== $chart->post_type ) { + return; + } + + $type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true ); + $series = get_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, true ); + $chart_settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true ); + $chart_data = Visualizer_Module::get_chart_data( $chart, $type ); + + if ( empty( $chart_settings['height'] ) ) { + $chart_settings['height'] = '400'; + } + + // Read library from meta and normalise to the lowercase slugs that + // render-google.js / render-chartjs.js / render-datatables.js and + // elementor-widget-preview.js expect. + $library = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_LIBRARY, true ); + $library_map = array( + 'GoogleCharts' => 'google', + 'ChartJS' => 'chartjs', + 'DataTable' => 'datatables', + ); + if ( isset( $library_map[ $library ] ) ) { + $library = $library_map[ $library ]; + } elseif ( ! $library ) { + $library = 'google'; + } + + $series = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SERIES, $series, $chart_id, $type ); + $chart_settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $chart_settings, $chart_id, $type ); + $chart_settings = $this->apply_custom_css_class_names( $chart_settings, $chart_id ); + + $chart_entry = array( + 'type' => $type, + 'series' => $series, + 'settings' => $chart_settings, + 'data' => $chart_data, + 'library' => $library, + ); + + // Elementor injects widget HTML via innerHTML, so ', + esc_attr( $element_id ), + wp_json_encode( $chart_entry ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Ensure custom CSS class mappings are present in settings for preview rendering. + * + * @param array $settings Chart settings. + * @param int $chart_id Chart ID. + * @return array + */ + private function apply_custom_css_class_names( $settings, $chart_id ) { + if ( empty( $settings['customcss'] ) || ! is_array( $settings['customcss'] ) ) { + return $settings; + } + + $classes = array(); + $id = 'visualizer-' . $chart_id; + + foreach ( $settings['customcss'] as $name => $element ) { + if ( empty( $name ) || ! is_array( $element ) ) { + continue; + } + $has_properties = false; + foreach ( $element as $property => $value ) { + if ( '' !== $property && '' !== $value && null !== $value ) { + $has_properties = true; + break; + } + } + if ( ! $has_properties ) { + continue; + } + $classes[ $name ] = $id . $name; + } + + if ( ! empty( $classes ) ) { + $settings['cssClassNames'] = $classes; + } + + return $settings; + } +} diff --git a/classes/Visualizer/Gutenberg/.eslintrc b/classes/Visualizer/Gutenberg/.eslintrc deleted file mode 100644 index c578589bd..000000000 --- a/classes/Visualizer/Gutenberg/.eslintrc +++ /dev/null @@ -1,36 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true - }, - "extends": "wordpress", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": 2018, - "sourceType": "module" - }, - "plugins": [ - "react" - ], - "rules": { - "indent": [ - "off", - "tab" - ], - "linebreak-style": [ - "off", - "unix" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "always" - ], - "no-cond-assign": "off" - } -} \ No newline at end of file diff --git a/classes/Visualizer/Gutenberg/Block.php b/classes/Visualizer/Gutenberg/Block.php index 045819b54..a77cce4d6 100644 --- a/classes/Visualizer/Gutenberg/Block.php +++ b/classes/Visualizer/Gutenberg/Block.php @@ -64,20 +64,26 @@ private function __construct() { } /** - * Enqueue front end and editor JavaScript and CSS + * Enqueue Gutenberg block assets. */ public function enqueue_gutenberg_scripts() { - global $wp_version, $pagenow; - - $blockPath = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/block.js'; - $handsontableJS = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/handsontable.js'; - $stylePath = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/block.css'; - $handsontableCSS = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/handsontable.css'; + global $pagenow; + + $blockPath = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/index.js'; + $stylePath = VISUALIZER_ABSURL . 'classes/Visualizer/Gutenberg/build/style-index.css'; + $asset_path = VISUALIZER_ABSPATH . '/classes/Visualizer/Gutenberg/build/index.asset.php'; + if ( file_exists( $asset_path ) ) { + // @phpstan-ignore-next-line + $asset = require $asset_path; + } else { + $asset = array( + 'dependencies' => array(), + 'version' => $this->version, + ); + } if ( VISUALIZER_TEST_JS_CUSTOMIZATION ) { - $version = filemtime( VISUALIZER_ABSPATH . '/classes/Visualizer/Gutenberg/build/block.js' ); - } else { - $version = $this->version; + $asset['version'] = filemtime( VISUALIZER_ABSPATH . '/classes/Visualizer/Gutenberg/build/index.js' ); } if ( ! wp_script_is( 'visualizer-datatables', 'registered' ) ) { @@ -89,32 +95,30 @@ public function enqueue_gutenberg_scripts() { } // Enqueue the bundled block JS file - wp_enqueue_script( 'handsontable', $handsontableJS ); - wp_enqueue_script( 'visualizer-gutenberg-block', $blockPath, array( 'wp-api', 'handsontable', 'visualizer-datatables', 'moment', 'lodash' ), $version, true ); - - $type = 'community'; - - if ( Visualizer_Module::is_pro() ) { - $type = 'pro'; - if ( apply_filters( 'visualizer_is_business', false ) ) { - $type = 'business'; - } + $script_deps = array( + 'wp-api', + 'wp-blocks', + 'wp-block-editor', + 'wp-components', + 'wp-editor', + 'wp-element', + 'wp-i18n', + 'lodash', + 'moment', + 'react', + 'visualizer-datatables', + ); + if ( isset( $asset['dependencies'] ) && is_array( $asset['dependencies'] ) ) { + $script_deps = array_merge( $script_deps, $asset['dependencies'] ); } - - $table_col_mapping = Visualizer_Source_Query_Params::get_all_db_tables_column_mapping( null, false ); + $script_deps = array_values( array_unique( $script_deps ) ); + wp_enqueue_script( 'visualizer-gutenberg-block', $blockPath, $script_deps, $asset['version'], true ); $translation_array = array( - 'isPro' => $type, - 'proTeaser' => tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'blockupsell'), - 'absurl' => VISUALIZER_ABSURL, - 'charts' => Visualizer_Module_Admin::_getChartTypesLocalized(), 'adminPage' => menu_page_url( 'visualizer', false ), 'createChart' => add_query_arg( array( 'action' => 'visualizer-create-chart', 'library' => 'yes', 'type' => '', 'chart-library' => '', 'tab' => 'visualizer' ), admin_url( 'admin-ajax.php' ) ), - 'sqlTable' => $table_col_mapping, 'chartsPerPage' => defined( 'TI_E2E_TESTING' ) ? 20 : 6, - 'proFeaturesLocked' => Visualizer_Module_Admin::proFeaturesLocked(), 'isFullSiteEditor' => 'site-editor.php' === $pagenow, - 'legacyBlockEdit' => apply_filters( 'visualizer_legacy_block_edit', false ), /* translators: %1$s: opening tag, %2$s: closing tag */ 'blockEditDoc' => sprintf( __( 'The editor for managing chart settings has been removed from the block editor. You can find more information in this %1$sdocumentation%2$s', 'visualizer' ), '', '' ), 'chartEditUrl' => admin_url( 'admin-ajax.php' ), @@ -122,26 +126,7 @@ public function enqueue_gutenberg_scripts() { wp_localize_script( 'visualizer-gutenberg-block', 'visualizerLocalize', $translation_array ); // Enqueue frontend and editor block styles - wp_enqueue_style( 'handsontable', $handsontableCSS ); - wp_enqueue_style( 'visualizer-gutenberg-block', $stylePath, array( 'visualizer-datatables' ), $version ); - - if ( version_compare( $wp_version, '4.9.0', '>' ) ) { - - wp_enqueue_code_editor( - array( - 'type' => 'sql', - 'codemirror' => array( - 'autofocus' => true, - 'lineWrapping' => true, - 'dragDrop' => false, - 'matchBrackets' => true, - 'autoCloseBrackets' => true, - 'extraKeys' => array( 'Shift-Space' => 'autocomplete' ), - 'hintOptions' => array( 'tables' => $table_col_mapping ), - ), - ) - ); - } + wp_enqueue_style( 'visualizer-gutenberg-block', $stylePath, array( 'visualizer-datatables' ), $asset['version'] ); } /** * Hook server side rendering into render callback @@ -186,8 +171,7 @@ public function gutenberg_block_callback( $atts ) { return ''; } - // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison - if ( $atts['lazy'] == -1 || $atts['lazy'] == false ) { + if ( $atts['lazy'] === '-1' || $atts['lazy'] === false ) { $atts['lazy'] = 'no'; } @@ -216,123 +200,6 @@ public function register_rest_endpoints() { 'get_callback' => array( $this, 'get_visualizer_data' ), ) ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/get-query-data', - array( - 'methods' => 'GET', - 'callback' => array( $this, 'get_query_data' ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/get-json-root', - array( - 'methods' => 'GET', - 'callback' => array( $this, 'get_json_root_data' ), - 'args' => array( - 'url' => array( - 'sanitize_callback' => 'esc_url_raw', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/get-json-data', - array( - 'methods' => 'GET', - 'callback' => array( $this, 'get_json_data' ), - 'args' => array( - 'url' => array( - 'sanitize_callback' => 'esc_url_raw', - ), - 'chart' => array( - 'sanitize_callback' => 'absint', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/set-json-data', - array( - 'methods' => 'GET', - 'callback' => array( $this, 'set_json_data' ), - 'args' => array( - 'url' => array( - 'sanitize_callback' => 'esc_url_raw', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/update-chart', - array( - 'methods' => 'POST', - 'callback' => array( $this, 'update_chart_data' ), - 'args' => array( - 'id' => array( - 'sanitize_callback' => 'absint', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/upload-data', - array( - 'methods' => 'POST', - 'callback' => array( $this, 'upload_csv_data' ), - 'args' => array( - 'url' => array( - 'sanitize_callback' => 'esc_url_raw', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); - - register_rest_route( - 'visualizer/v' . VISUALIZER_REST_VERSION, - '/get-permission-data', - array( - 'methods' => 'GET', - 'callback' => array( $this, 'get_permission_data' ), - 'args' => array( - 'type' => array( - 'sanitize_callback' => 'sanitize_text_field', - ), - ), - 'permission_callback' => function () { - return current_user_can( 'edit_posts' ); - }, - ) - ); } /** @@ -472,11 +339,12 @@ public function get_visualizer_data( $post ) { $permissions = get_post_meta( $post_id, Visualizer_Pro::CF_PERMISSIONS, true ); if ( empty( $permissions ) ) { - $permissions = array( 'permissions' => array( + $permissions = array( + 'permissions' => array( 'read' => 'all', 'edit' => 'roles', 'edit-specific' => array( 'administrator' ), - ), + ), ); } @@ -486,227 +354,6 @@ public function get_visualizer_data( $post ) { return $data; } - /** - * Returns the data for the query. - * - * @access public - */ - public function get_query_data( $data ) { - if ( ! current_user_can( 'administrator' ) || ( is_multisite() && ! is_super_admin() ) ) { - return false; - } - - $source = new Visualizer_Source_Query( stripslashes( $data['query'] ) ); - $html = $source->fetch( true ); - $source->fetch( false ); - $name = $source->getSourceName(); - $series = $source->getSeries(); - $data = $source->getRawData(); - $error = ''; - if ( empty( $html ) ) { - $error = $source->get_error(); - wp_send_json_error( array( 'msg' => $error ) ); - } - wp_send_json_success( array( 'table' => $html, 'name' => $name, 'series' => $series, 'data' => $data ) ); - } - - /** - * Returns the JSON root. - * - * @access public - */ - public function get_json_root_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - $source = new Visualizer_Source_Json( $data ); - - $roots = $source->fetchRoots(); - if ( empty( $roots ) ) { - wp_send_json_error( array( 'msg' => $source->get_error() ) ); - } - - wp_send_json_success( array( 'url' => $data['url'], 'roots' => $roots ) ); - } - - /** - * Returns the JSON data. - * - * @access public - */ - public function get_json_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - $chart_id = $data['chart']; - - if ( empty( $chart_id ) ) { - wp_die(); - } - - $source = new Visualizer_Source_Json( $data ); - $source->fetch(); - $table = $source->getRawData(); - - if ( empty( $table ) ) { - wp_send_json_error( array( 'msg' => esc_html__( 'Unable to fetch data from the endpoint. Please try again.', 'visualizer' ) ) ); - } - - $table = Visualizer_Render_Layout::show( 'editor-table', $table, $chart_id, 'viz-json-table', false, false ); - wp_send_json_success( array( 'table' => $table, 'root' => $data['root'], 'url' => $data['url'], 'paging' => $source->getPaginationElements() ) ); - } - - /** - * Set the JSON data. - * - * @access public - */ - public function set_json_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - $source = new Visualizer_Source_Json( $data ); - - $table = $source->fetch(); - if ( empty( $table ) ) { - wp_send_json_error( array( 'msg' => esc_html__( 'Unable to fetch data from the endpoint. Please try again.', 'visualizer' ) ) ); - } - - $source->fetchFromEditableTable(); - $name = $source->getSourceName(); - $series = json_encode( $source->getSeries() ); - $data = json_encode( $source->getRawData() ); - wp_send_json_success( array( 'name' => $name, 'series' => $series, 'data' => $data ) ); - } - - /** - * Rest Callback Method - */ - public function update_chart_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - if ( $data['id'] && ! is_wp_error( $data['id'] ) ) { - if ( get_post_type( $data['id'] ) !== Visualizer_Plugin::CPT_VISUALIZER ) { - return new WP_Error( 'invalid_post_type', 'Invalid post type.' ); - } - $chart_type = sanitize_text_field( $data['visualizer-chart-type'] ); - $source_type = sanitize_text_field( $data['visualizer-source'] ); - $default_data = (int) $data['visualizer-default-data']; - $series_data = map_deep( $data['visualizer-series'], array( $this, 'sanitize_value' ) ); - $settings_data = map_deep( $data['visualizer-settings'], array( $this, 'sanitize_value' ) ); - - update_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_TYPE, $chart_type ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_SOURCE, $source_type ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_DEFAULT_DATA, $default_data ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_SERIES, $series_data ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_SETTINGS, $settings_data ); - - if ( $data['visualizer-chart-url'] && $data['visualizer-chart-schedule'] >= 0 ) { - $chart_url = esc_url_raw( $data['visualizer-chart-url'] ); - $chart_schedule = intval( $data['visualizer-chart-schedule'] ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_URL, $chart_url ); - apply_filters( 'visualizer_pro_chart_schedule', $data['id'], $chart_url, $chart_schedule ); - } else { - delete_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_URL ); - apply_filters( 'visualizer_pro_remove_schedule', $data['id'] ); - } - - // let's check if this is not an external db chart - // as there is no support for that in the block editor interface - $external_params = get_post_meta( $data['id'], Visualizer_Plugin::CF_REMOTE_DB_PARAMS, true ); - if ( empty( $external_params ) ) { - if ( $source_type === 'Visualizer_Source_Query' ) { - $db_schedule = intval( $data['visualizer-db-schedule'] ); - $db_query = $data['visualizer-db-query']; - update_post_meta( $data['id'], Visualizer_Plugin::CF_DB_SCHEDULE, $db_schedule ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_DB_QUERY, stripslashes( $db_query ) ); - } else { - delete_post_meta( $data['id'], Visualizer_Plugin::CF_DB_SCHEDULE ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_DB_QUERY ); - } - - if ( 'Visualizer_Source_Csv_Remote' === $source_type ) { - $schedule_url = esc_url_raw( $data['visualizer-chart-url'] ); - $schedule_id = intval( $data['visualizer-chart-schedule'] ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_URL, $schedule_url ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_SCHEDULE, $schedule_id ); - } else { - delete_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_URL ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_SCHEDULE ); - } - } - - if ( $source_type === 'Visualizer_Source_Json' ) { - $json_schedule = intval( $data['visualizer-json-schedule'] ); - $json_url = esc_url_raw( $data['visualizer-json-url'] ); - $json_headers = esc_url_raw( $data['visualizer-json-headers'] ); - $json_root = sanitize_text_field( $data['visualizer-json-root'] ); - $json_paging = sanitize_text_field( $data['visualizer-json-paging'] ); - - update_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_SCHEDULE, $json_schedule ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_URL, $json_url ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_HEADERS, $json_headers ); - update_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_ROOT, $json_root ); - - if ( ! empty( $json_paging ) ) { - update_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_PAGING, $json_paging ); - } else { - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_PAGING ); - } - } else { - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_SCHEDULE ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_URL ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_HEADERS ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_ROOT ); - delete_post_meta( $data['id'], Visualizer_Plugin::CF_JSON_PAGING ); - } - - if ( Visualizer_Module::is_pro() ) { - $permissions_data = map_deep( $data['visualizer-permissions'], array( $this, 'sanitize_value' ) ); - update_post_meta( $data['id'], Visualizer_Pro::CF_PERMISSIONS, $permissions_data ); - } - - if ( $data['visualizer-chart-url'] ) { - $chart_url = esc_url_raw( $data['visualizer-chart-url'] ); - $content['source'] = $chart_url; - $content['data'] = $this->format_chart_data( $data['visualizer-data'], $data['visualizer-series'] ); - } else { - $content = $this->format_chart_data( $data['visualizer-data'], $data['visualizer-series'] ); - } - - $chart = array( - 'ID' => $data['id'], - 'post_content' => serialize( $content ), - ); - - wp_update_post( $chart ); - - // Clear existing chart cache. - $cache_key = Visualizer_Plugin::CF_CHART_CACHE . '_' . $data['id']; - if ( get_transient( $cache_key ) ) { - delete_transient( $cache_key ); - } - - $revisions = wp_get_post_revisions( $data['id'], array( 'order' => 'ASC' ) ); - - if ( count( $revisions ) > 1 ) { - $revision_ids = array_keys( $revisions ); - - // delete all revisions. - foreach ( $revision_ids as $id ) { - wp_delete_post_revision( $id ); - } - } - - return new \WP_REST_Response( array( 'success' => sprintf( 'Chart updated' ) ) ); - } - } - /** * Format chart data. * @@ -714,7 +361,7 @@ public function update_chart_data( $data ) { */ public function format_chart_data( $data, $series ) { foreach ( $series as $i => $row ) { - // if no value exists for the seires, then add null + // if no value exists for the series, then add null if ( ! isset( $series[ $i ] ) ) { $series[ $i ] = null; } @@ -768,84 +415,6 @@ public function toUTF8( $datum ) { return $datum; } - /** - * Handle remote CSV data - */ - public function upload_csv_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - $remote_data = false; - if ( isset( $data['url'] ) && function_exists( 'wp_http_validate_url' ) ) { - $remote_data = wp_http_validate_url( $data['url'] ); - } - if ( false !== $remote_data && ! is_wp_error( $remote_data ) ) { - $source = new Visualizer_Source_Csv_Remote( $remote_data ); - if ( $source->fetch() ) { - $temp = $source->getData(); - if ( is_string( $temp ) && is_array( unserialize( $temp ) ) ) { - $content['series'] = $source->getSeries(); - $content['data'] = $source->getRawData(); - return $content; - } else { - return new \WP_REST_Response( array( 'failed' => sprintf( 'Invalid CSV URL' ) ) ); - } - } else { - return new \WP_REST_Response( array( 'failed' => sprintf( 'Invalid CSV URL' ) ) ); - } - } else { - return new \WP_REST_Response( array( 'failed' => sprintf( 'Invalid CSV URL' ) ) ); - } - } - - /** - * Get permission data - */ - public function get_permission_data( $data ) { - if ( ! current_user_can( 'edit_posts' ) ) { - return false; - } - - $options = array(); - switch ( $data['type'] ) { - case 'users': - $query = new WP_User_Query( - array( - 'number' => 1000, - 'orderby' => 'display_name', - 'fields' => array( 'ID', 'display_name' ), - 'count_total' => false, - ) - ); - $users = $query->get_results(); - if ( ! empty( $users ) ) { - $i = 0; - foreach ( $users as $user ) { - $options[ $i ]['value'] = $user->ID; - $options[ $i ]['label'] = $user->display_name; - $i++; - } - } - break; - case 'roles': - if ( ! function_exists( 'get_editable_roles' ) ) { - require_once ABSPATH . 'wp-admin/includes/user.php'; - } - $roles = get_editable_roles(); - if ( ! empty( $roles ) ) { - $i = 0; - foreach ( get_editable_roles() as $name => $info ) { - $options[ $i ]['value'] = $name; - $options[ $i ]['label'] = $name; - $i++; - } - } - break; - } - return $options; - } - /** * Filter Rest Query */ @@ -867,18 +436,4 @@ public function add_rest_query_vars( $args, \WP_REST_Request $request ) { } return $args; } - - /** - * Sanitize value. - * - * @param mixed $value The value to sanitize. - * @return mixed Sanitized value. - */ - private function sanitize_value( $value ) { - if ( is_string( $value ) ) { - return sanitize_text_field( $value ); - } - - return $value; - } } diff --git a/classes/Visualizer/Gutenberg/build/block.css b/classes/Visualizer/Gutenberg/build/block.css deleted file mode 100644 index a5a300aed..000000000 --- a/classes/Visualizer/Gutenberg/build/block.css +++ /dev/null @@ -1 +0,0 @@ -.visualizer-settings{background-color:#f8f9f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;position:relative}.visualizer-settings .visualizer-settings__title{margin:0;padding:1.5rem 0;text-align:center;border-bottom:1px solid #e6eaee}.visualizer-settings .visualizer-settings__title .dashicon{vertical-align:top;margin-right:.25em}.visualizer-settings .visualizer-settings__content{padding:2.5em 0}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-description{margin:0 0 1.5em 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:18px;text-align:center}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option{display:flex;align-items:flex-start;flex-wrap:wrap;margin:0 auto;padding:1.25em 1.5em;max-width:80%;background:#fff;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee;cursor:pointer}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option.locked{cursor:default}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option.locked:hover{background:#fff}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option:hover{background:#f5f5f5}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option:last-of-type{border-bottom-width:1px}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option .visualizer-settings__content-option-title{max-width:80%;display:block;font-size:1.25em}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option .visualizer-settings__content-option-icon{align-self:center;margin-left:auto;color:#b9bcc2}.visualizer-settings .visualizer-settings__content .visualizer-settings__content-option .visualizer-settings__content-option-icon .dashicon{height:25px;width:25px}.visualizer-settings .visualizer-settings__charts{text-align:center;padding-bottom:25px}.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid{display:grid;grid-template-columns:50% 50%}.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid .visualizer-settings__charts-single{margin:25px;padding-bottom:50px;background-color:#efefef;position:relative}.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid .visualizer-settings__charts-single .visualizer-settings__charts-title{padding:10px;font-weight:bold;text-align:center}.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid .visualizer-settings__charts-single .visualizer-settings__charts-footer{font-size:small}.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid .visualizer-settings__charts-single .visualizer-settings__charts-controls{width:100%;position:absolute;bottom:0;padding:10px;font-weight:bold;text-align:center;cursor:pointer}.visualizer-settings .visualizer-settings__charts .dataTables_wrapper{background:#fff;padding:10px}.visualizer-settings .visualizer-settings__charts .visualizer-no-charts{padding-top:25px}.visualizer-settings .visualizer-settings__chart{text-align:center}.visualizer-settings .visualizer-settings__chart .dataTables_wrapper{background:#fff;padding:10px}.visualizer-settings .visualizer-settings__controls{margin:0;padding:1.5rem 0;text-align:center;border-top:1px solid #e6eaee}.visualizer-advanced-panel.components-panel__body.is-opened>.components-panel__body-title{margin-bottom:0}.visualizer-inner-sections{background:#f8f9f9}.visualizer-inner-sections .components-panel__body-toggle:hover{background:#eee}.visualizer-inner-sections ul.visualizer-list{list-style:disc;margin-left:15px}.components-panel__body-button .components-panel__body-toggle.components-button .dashicons-admin-tools{margin:-2px 6px -2px 0}.components-panel__body-button .components-panel__body-toggle.components-button .dashicons-admin-users{margin:-2px 6px -2px 0}.components-panel__body-button .components-panel__body-toggle.components-button .components-panel__arrow{width:48px;height:48px;right:0;border-top:1px solid #ddd;transform:translateY(-50%) rotate(270deg)}.components-panel__body-button.visualizer-panel-back .components-panel__body-title{background:#f3f3f3}.components-panel__body-button.visualizer-panel-back .components-panel__body-title:hover{background:#f3f3f3}.components-panel__body-button.visualizer-panel-back .components-panel__body-title .components-panel__body-toggle{margin:10px 0;background:#fff}.components-panel__body-button.visualizer-panel-back .components-panel__body-title .components-panel__body-toggle.components-button{padding-left:60px}.components-panel__body-button.visualizer-panel-back .components-panel__body-title .components-panel__body-toggle.components-button:hover .components-panel__arrow{background:#f3f3f3;border-width:1px 1px 0 1px;border-color:#ddd;border-style:solid}.components-panel__body-button.visualizer-panel-back .components-panel__body-title .components-panel__body-toggle.components-button .components-panel__arrow{left:0;transform:translateY(-50%) rotate(90deg)}.visualizer-chart-editor{max-width:100%;margin:25px 25px 0}.visualizer-chart-editor .htEditor{margin-bottom:20px}.visualizer-chart-editor .htEditor .htRowHeaders{height:auto !important;width:auto !important}.visualizer-chart-editor .htEditor .ht_master .wtHolder{height:auto !important;width:auto !important}.visualizer-json-query-modal .components-modal__content{padding-left:0;padding-right:0}.visualizer-json-query-modal .components-modal__content .components-modal__header{margin:0}.visualizer-json-query-modal .components-icon-button{margin:10px 0}.visualizer-json-query-modal .visualizer-json-query-modal-headers-panel{padding:0 0 1em 2.2em}.visualizer-json-query-modal .visualizer-json-query-modal-headers-panel .components-base-control{display:inline-block}.visualizer-json-query-modal .visualizer-json-query-modal-headers-panel .visualizer-json-query-modal-field-separator{padding:0 10px}.visualizer-json-query-modal .viz-editor-table tbody tr:first-child{background-color:#ececec !important}.visualizer-json-query-modal .viz-editor-table tr th{background-color:#ccc}.visualizer-json-query-modal .viz-editor-table thead tr th:nth-child(n+1){cursor:move !important}.visualizer-json-query-modal #visualizer-json-query-table{margin-bottom:10px}.visualizer-json-query-modal ul{list-style:disc;margin-left:10px}.visualizer-db-query-modal .CodeMirror-scroll{overflow:hidden !important;height:50%;margin:0;padding:0}.visualizer-db-query-modal .CodeMirror-wrap{height:200px;padding:15px;color:#fff;background:#282923;font-size:15px;margin-bottom:20px}.visualizer-db-query-modal .CodeMirror-wrap .CodeMirror-cursor{border-left:1px solid #fff !important}.visualizer-db-query-modal .CodeMirror-wrap .CodeMirror-placeholder{color:#fff}.visualizer-db-query-modal .CodeMirror-wrap pre{color:#fff !important}.visualizer-db-query-modal .CodeMirror-wrap .cm-keyword{color:#f92472 !important}.visualizer-db-query-modal .CodeMirror-wrap .cm-comment{color:#74705d !important}.visualizer-db-query-modal .CodeMirror-wrap .cm-number{color:#fff !important}.visualizer-db-query-modal .CodeMirror-wrap .cm-string{color:#fff !important}.visualizer-db-query-modal ul{list-style:disc;margin-left:10px}.visualizer-db-query-modal .db-wizard-error{color:red}.visualizer-db-query-modal .visualizer-db-query-actions .components-button:first-child{margin-right:10px}.htContextMenu:not(.htGhostTable){z-index:999999}.htDatepickerHolder,.CodeMirror-hints,.DTCR_clonedTable,.DTCR_pointer{z-index:999999 !important}.vz-permission-tab select.components-select-control__input{overflow:auto !important}.components-panel .components-select-control{height:auto !important}@media(min-width: 768px){.visualizer-json-query-modal{width:668px}.visualizer-db-query-modal .CodeMirror-wrap{min-width:550px}}@media(max-width: 768px){.visualizer-settings .visualizer-settings__charts .visualizer-settings__charts-grid{display:grid;grid-template-columns:100%}}.viz-edit-chart-new{display:flex;flex-direction:column;align-items:center;gap:12px}.viz-edit-chart-new p{padding:12px;padding-left:24px;color:#ff9901}.viz-edit-chart-new p a:hover{pointer:cursor} diff --git a/classes/Visualizer/Gutenberg/build/block.js b/classes/Visualizer/Gutenberg/build/block.js deleted file mode 100644 index 5e1cd447c..000000000 --- a/classes/Visualizer/Gutenberg/build/block.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{var e,t={5644:function(e,t,n){!function(e,t,n){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t,n=n&&n.hasOwnProperty("default")?n.default:n;var r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(var n=0;n-1)return t}return e}}]),e}(),l=function(e){function l(){r(this,l);var e=i(this,(l.__proto__||Object.getPrototypeOf(l)).apply(this,arguments));return e.settingsMapper=new s,e.id=null,e.hotInstance=null,e.hotElementRef=null,e}return o(l,e),a(l,[{key:"setHotElementRef",value:function(e){this.hotElementRef=e}},{key:"componentDidMount",value:function(){var e=this.settingsMapper.getSettings(this.props);this.hotInstance=new t(this.hotElementRef,e)}},{key:"shouldComponentUpdate",value:function(e,t){return this.updateHot(this.settingsMapper.getSettings(e)),!1}},{key:"componentWillUnmount",value:function(){this.hotInstance.destroy()}},{key:"render",value:function(){return this.id=this.props.id||"hot-"+Math.random().toString(36).substring(5),this.className=this.props.className||"",this.style=this.props.style||{},n.createElement("div",{ref:this.setHotElementRef.bind(this),id:this.id,className:this.className,style:this.style})}},{key:"updateHot",value:function(e){this.hotInstance.updateSettings(e,!1)}}]),l}(n.Component);e.HotTable=l,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(3748),n(6540))},2867:(e,t,n)=>{"use strict";var r=n(6540),a=n(9921),o=n.n(a),i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i(e,t)};function s(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]0){var i=Array.from({length:o-1}).map((function(e,r){var o=t.getColumnID(a,r+1);return t.state.hiddenColumns.includes(o)?"#CCCCCC":void 0!==n.colors&&null!==n.colors?n.colors[r]:h[r]}));r.setOptions(l({},n,{colors:i})),r.draw()}}},t.onResize=function(){t.props.googleChartWrapper.draw()},t}return s(t,e),t.prototype.componentDidMount=function(){this.draw(this.props),window.addEventListener("resize",this.onResize),(this.props.legend_toggle||this.props.legendToggle)&&this.listenToLegendToggle()},t.prototype.componentWillUnmount=function(){var e=this.props,t=e.google,n=e.googleChartWrapper;window.removeEventListener("resize",this.onResize),t.visualization.events.removeAllListeners(n),"Timeline"===n.getChartType()&&n.getChart()&&n.getChart().clearChart()},t.prototype.componentDidUpdate=function(){this.draw(this.props)},t.prototype.render=function(){return null},t}(r.Component),L=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t.prototype.componentDidMount=function(){},t.prototype.componentWillUnmount=function(){},t.prototype.shouldComponentUpdate=function(){return!1},t.prototype.render=function(){var e=this.props,t=e.google,n=e.googleChartWrapper,a=e.googleChartDashboard;return(0,r.createElement)(w,{render:function(e){return(0,r.createElement)(M,l({},e,{google:t,googleChartWrapper:n,googleChartDashboard:a}))}})},t}(r.Component),k=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t.prototype.shouldComponentUpdate=function(){return!1},t.prototype.listenToEvents=function(e){var t=this,n=e.chartEvents,r=e.google,a=e.googleChartWrapper;if(null!==n){r.visualization.events.removeAllListeners(a);for(var o=function(e){var n=e.eventName,o=e.callback;r.visualization.events.addListener(a,n,(function(){for(var e=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:0,n=(P[e[t+0]]+P[e[t+1]]+P[e[t+2]]+P[e[t+3]]+"-"+P[e[t+4]]+P[e[t+5]]+"-"+P[e[t+6]]+P[e[t+7]]+"-"+P[e[t+8]]+P[e[t+9]]+"-"+P[e[t+10]]+P[e[t+11]]+P[e[t+12]]+P[e[t+13]]+P[e[t+14]]+P[e[t+15]]).toLowerCase();if(!x(n))throw TypeError("Stringified UUID is invalid");return n};const z=function(e,t,n){var r=(e=e||{}).random||(e.rng||j)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var a=0;a<16;++a)t[n+a]=r[a];return t}return H(r)};function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}function N(e,t){for(var n=0;n)<[^<]*)*<\/script>/gi,""):r.series[t].format.truthy.replace(/)<[^<]*)*<\/script>/gi,"")},a=jQuery.fn.dataTable.render.extra}return a}},{key:"render",value:function(){var e=this.props.options;return wp.element.createElement(G,null,e.customcss&&wp.element.createElement("style",null,e.customcss.oddTableRow&&"#dataTable-instances-".concat(this.props.id,"-").concat(this.uniqueId," tr.odd {\n\t\t\t\t\t\t\t\t").concat(e.customcss.oddTableRow.color?"color: ".concat(e.customcss.oddTableRow.color," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.oddTableRow["background-color"]?"background-color: ".concat(e.customcss.oddTableRow["background-color"]," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.oddTableRow.transform?"transform: rotate( ".concat(e.customcss.oddTableRow.transform,"deg ) !important;"):"","\n\t\t\t\t\t\t\t}"),e.customcss.evenTableRow&&"#dataTable-instances-".concat(this.props.id,"-").concat(this.uniqueId," tr.even {\n\t\t\t\t\t\t\t\t").concat(e.customcss.evenTableRow.color?"color: ".concat(e.customcss.evenTableRow.color," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.evenTableRow["background-color"]?"background-color: ".concat(e.customcss.evenTableRow["background-color"]," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.evenTableRow.transform?"transform: rotate( ".concat(e.customcss.evenTableRow.transform,"deg ) !important;"):"","\n\t\t\t\t\t\t\t}"),e.customcss.tableCell&&"#dataTable-instances-".concat(this.props.id,"-").concat(this.uniqueId," tr td,\n\t\t\t\t\t\t\t#dataTable-instances-").concat(this.props.id,"-").concat(this.uniqueId,"_wrapper tr th {\n\t\t\t\t\t\t\t\t").concat(e.customcss.tableCell.color?"color: ".concat(e.customcss.tableCell.color," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.tableCell["background-color"]?"background-color: ".concat(e.customcss.tableCell["background-color"]," !important;"):"","\n\t\t\t\t\t\t\t\t").concat(e.customcss.tableCell.transform?"transform: rotate( ".concat(e.customcss.tableCell.transform,"deg ) !important;"):"","\n\t\t\t\t\t\t\t}")),wp.element.createElement("table",{id:"dataTable-instances-".concat(this.props.id,"-").concat(this.uniqueId)}))}}],r&&N(n.prototype,r),a&&N(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(J);const q=V;var $=n(7128),K=n.n($),Z=n(8120),Q=n.n(Z);function X(e){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},X(e)}function ee(){ee=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof y?t:y,i=Object.create(o.prototype),s=new j(r||[]);return a(i,"_invoke",{value:T(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",m="suspendedYield",h="executing",f="completed",_={};function y(){}function b(){}function v(){}var g={};u(g,i,(function(){return this}));var w=Object.getPrototypeOf,M=w&&w(w(E([])));M&&M!==n&&r.call(M,i)&&(g=M);var L=v.prototype=y.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function Y(e,t){function n(a,o,i,s){var l=d(e[a],e,o);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==X(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(c).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function T(t,n,r){var a=p;return function(o,i){if(a===h)throw Error("Generator is already running");if(a===f){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var l=D(s,r);if(l){if(l===_)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=f,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=h;var u=d(t,n,r);if("normal"===u.type){if(a=r.done?f:m,u.arg===_)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=f,r.method="throw",r.arg=u.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),_;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,_;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,_):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,_)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function E(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function te(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}var ne=wp.apiFetch,re=function(e){return Object.keys(e["visualizer-series"]).map((function(t){void 0!==e["visualizer-series"][t].type&&"date"===e["visualizer-series"][t].type&&Object.keys(e["visualizer-data"]).map((function(n){return e["visualizer-data"][n][t]=new Date(e["visualizer-data"][n][t])}))})),e},ae=function(e){var t;if(Array.isArray(e))return 0a)){e.next=14;break}return e.next=8,new Promise((function(e){return setTimeout(e,750)}));case 8:return e.next=10,ne({path:"wp/v2/visualizer/".concat(t)});case 10:n=e.sent,a++,e.next=5;break;case 14:return e.abrupt("return",{result:n,chartStatus:n.status?n.status:"auto-draft"});case 15:case"end":return e.stop()}}),e)})),fe=function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){te(o,r,a,i,s,"next",e)}function s(e){te(o,r,a,i,s,"throw",e)}i(void 0)}))},fe.apply(this,arguments)}function _e(e){return _e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_e(e)}function ye(){ye=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof y?t:y,i=Object.create(o.prototype),s=new j(r||[]);return a(i,"_invoke",{value:T(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",m="suspendedYield",h="executing",f="completed",_={};function y(){}function b(){}function v(){}var g={};u(g,i,(function(){return this}));var w=Object.getPrototypeOf,M=w&&w(w(E([])));M&&M!==n&&r.call(M,i)&&(g=M);var L=v.prototype=y.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function Y(e,t){function n(a,o,i,s){var l=d(e[a],e,o);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==_e(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(c).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function T(t,n,r){var a=p;return function(o,i){if(a===h)throw Error("Generator is already running");if(a===f){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var l=D(s,r);if(l){if(l===_)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=f,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=h;var u=d(t,n,r);if("normal"===u.type){if(a=r.done?f:m,u.arg===_)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=f,r.method="throw",r.arg=u.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),_;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,_;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,_):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,_)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function E(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function be(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function ve(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){be(o,r,a,i,s,"next",e)}function s(e){be(o,r,a,i,s,"throw",e)}i(void 0)}))}}function ge(e,t){for(var n=0;na.length&&(n=!0),this.setState({charts:this.state.charts.concat(a),isBusy:!1,chartsLoaded:n});case 9:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"render",value:function(){var e=this,t="undefined"!=typeof google?google.visualization.Version:"current",n=this.state,r=n.charts,a=n.isBusy,o=n.chartsLoaded,i=n.perPage;return wp.element.createElement("div",{className:"visualizer-settings__charts"},wp.element.createElement(ze,{status:"warning",isDismissible:!1},De("ChartJS charts are currently not available for selection here, you must visit the library, get the shortcode, and add the chart here in a shortcode tag."),wp.element.createElement(He,{href:visualizerLocalize.adminPage},De("Click here to visit Visualizer Charts Library."))),null!==r?1<=r.length?wp.element.createElement(Ee,null,wp.element.createElement("div",{className:"visualizer-settings__charts-grid"},Object.keys(r).map((function(n){var a,o,i,s=re(r[n].chart_data);if(a=s["visualizer-settings"].title?s["visualizer-settings"].title:"#".concat(r[n].id),0<=["gauge","tabular","timeline"].indexOf(s["visualizer-chart-type"])?"DataTable"===s["visualizer-chart-library"]?o=s["visualizer-chart-type"]:("tabular"===(o=s["visualizer-chart-type"])&&(o="table"),o=Te(o)):o="".concat(Te(s["visualizer-chart-type"]),"Chart"),!s["visualizer-chart-library"]||"ChartJS"!==s["visualizer-chart-library"])return s["visualizer-data-exploded"]&&(i=De("Annotations in this chart may not display here but they will display in the front end.")),wp.element.createElement("div",{className:"visualizer-settings__charts-single","data-chart-type":o,key:"chart-".concat(r[n].id)},wp.element.createElement("div",{className:"visualizer-settings__charts-title"},a),"DataTable"===s["visualizer-chart-library"]?wp.element.createElement(q,{id:r[n].id,rows:s["visualizer-data"],columns:s["visualizer-series"],chartsScreen:!0,options:s["visualizer-settings"]}):(s["visualizer-data-exploded"],wp.element.createElement(D,{chartVersion:t,chartType:o,rows:s["visualizer-data"],columns:s["visualizer-series"],options:ie(s["visualizer-settings"]),formatters:ue(s),chartPackages:me})),wp.element.createElement("div",{className:"visualizer-settings__charts-footer"},wp.element.createElement("sub",null,i)),wp.element.createElement("div",{className:"visualizer-settings__charts-controls",title:De("Insert Chart"),onClick:function(){return e.props.getChart(r[n].id)}},wp.element.createElement(Ce,{icon:"upload"})))}))),!o&&i-1=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function st(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function lt(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){st(o,r,a,i,s,"next",e)}function s(e){st(o,r,a,i,s,"throw",e)}i(void 0)}))}}function ut(e,t){for(var n=0;n/g," ➤ "),value:t.data.roots[e]}})),this.setState({isLoading:!1,isFirstStepOpen:!1,isSecondStepOpen:!0,endpointRoots:n})):(this.setState({isLoading:!1}),alert(t.data.msg));case 5:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"getJSONData",value:(i=lt(it().mark((function e(){var t,n;return it().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setState({isLoading:!0}),e.next=3,yt({path:"/visualizer/v1/get-json-data?url=".concat(this.props.chart["visualizer-json-url"],"&chart=").concat(this.props.id),data:{root:this.props.chart["visualizer-json-root"]||this.state.endpointRoots[0].value,method:this.props.chart["visualizer-json-headers"]?this.props.chart["visualizer-json-headers"].method:this.state.requestHeaders.method,username:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.username:this.state.requestHeaders.username,password:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.password:this.state.requestHeaders.password,auth:this.props.chart["visualizer-json-headers"]&&"object"!==ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth:this.state.requestHeaders.auth},method:"GET"});case 3:(t=e.sent).success?(n=[{label:ft("Don't use pagination"),value:0}],t.data.paging&&"root>next"===t.data.paging[0]&&n.push({label:ft("Get first 5 pages using root ➤ next"),value:"root>next"}),this.setState({isLoading:!1,isSecondStepOpen:!1,isFourthStepOpen:!0,endpointPaging:n,table:t.data.table}),document.querySelector("#visualizer-json-query-table").innerHTML=t.data.table,this.initTable()):(this.setState({isLoading:!1}),alert(t.data.msg));case 5:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"getTableData",value:(o=lt(it().mark((function e(){var t,n,r,a,o;return it().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setState({isLoading:!0}),t=document.querySelectorAll("#visualizer-json-query-table input"),n=document.querySelectorAll("#visualizer-json-query-table select"),r=[],a={},t.forEach((function(e){return r.push(e.value)})),n.forEach((function(e){return a[e.name]=e.value})),e.next=9,yt({path:"/visualizer/v1/set-json-data",data:rt({url:this.props.chart["visualizer-json-url"],method:this.props.chart["visualizer-json-headers"]?this.props.chart["visualizer-json-headers"].method:this.state.requestHeaders.method,username:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.username:this.state.requestHeaders.username,password:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.password:this.state.requestHeaders.password,auth:this.props.chart["visualizer-json-headers"]&&"object"!==ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth:this.state.requestHeaders.auth,root:this.props.chart["visualizer-json-root"]||this.state.endpointRoots[0].value,paging:this.props.chart["visualizer-json-paging"]||0,header:r},a),method:"GET"});case 9:(o=e.sent).success?(this.props.JSONImportData(o.data.name,JSON.parse(o.data.series),JSON.parse(o.data.data)),this.setState({isOpen:!1,isLoading:!1})):(alert(o.data.msg),this.setState({isLoading:!1}));case 11:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"render",value:function(){var e=this;return"community"!==visualizerLocalize.isPro?wp.element.createElement(kt,{title:ft("Import from JSON"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement("p",null,ft("You can choose here to import or synchronize your chart data with a remote JSON source.")),wp.element.createElement("p",null,wp.element.createElement(wt,{href:"https://docs.themeisle.com/article/1052-how-to-generate-charts-from-json-data-rest-endpoints"},ft("For more info check this tutorial."))),wp.element.createElement(Yt,{label:ft("How often do you want to check the url?"),value:this.props.chart["visualizer-json-schedule"]?this.props.chart["visualizer-json-schedule"]:1,options:[{label:ft("10 minutes"),value:"0.16"},{label:ft("One-time"),value:"-1"},{label:ft("Each hour"),value:"1"},{label:ft("Each 12 hours"),value:"12"},{label:ft("Each day"),value:"24"},{label:ft("Each 3 days"),value:"72"}],onChange:this.props.editSchedule}),wp.element.createElement(gt,{isPrimary:!0,isLarge:!0,onClick:this.openModal},ft("Modify Parameters")),this.state.isOpen&&wp.element.createElement(Lt,{title:ft("Import from JSON"),className:"visualizer-json-query-modal",shouldCloseOnClickOutside:!1,onRequestClose:function(){e.setState({isOpen:!1,isTableRendered:!1})}},wp.element.createElement(kt,{title:ft("Step 1: Specify the JSON endpoint/URL"),opened:this.state.isFirstStepOpen,onToggle:function(){return e.onToggle("isFirstStepOpen")}},wp.element.createElement("p",null,ft("If you want to add authentication, add headers to the endpoint or change the request in any way, please refer to our document here:")),wp.element.createElement("p",null,wp.element.createElement(wt,{href:"https://docs.themeisle.com/article/1043-visualizer-how-to-extend-rest-endpoints-with-json-response"},ft("How to extend REST endpoints with JSON response"))),wp.element.createElement(Tt,{placeholder:ft("Please enter the URL of your JSON file"),value:this.props.chart["visualizer-json-url"]?this.props.chart["visualizer-json-url"]:"",onChange:this.props.editJSONURL}),wp.element.createElement(Mt,{icon:"arrow-right-alt2",label:ft("Add Headers"),onClick:this.toggleHeaders},ft("Add Headers")),this.state.isHeaderPanelOpen&&wp.element.createElement("div",{className:"visualizer-json-query-modal-headers-panel"},wp.element.createElement(Yt,{label:ft("Request Type"),value:this.props.chart["visualizer-json-headers"]?this.props.chart["visualizer-json-headers"].method:this.state.requestHeaders.method,options:[{value:"GET",label:ft("GET")},{value:"POST",label:ft("POST")}],onChange:function(t){var n=rt({},e.state.requestHeaders),r=e.state.requestHeaders;n.method=t,r=rt(rt({},r),{},{method:t}),e.setState({requestHeaders:r}),e.props.editJSONHeaders(n)}}),wp.element.createElement("p",null,ft("Credentials")),wp.element.createElement(Tt,{label:ft("Username"),placeholder:ft("Username/Access Key"),value:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.username:this.state.requestHeaders.username,onChange:function(t){var n=rt({},e.state.requestHeaders),r=e.state.requestHeaders;n.auth={username:t,password:e.props.chart["visualizer-json-headers"]&&"object"===ot(e.props.chart["visualizer-json-headers"].auth)?e.props.chart["visualizer-json-headers"].auth.password:e.state.requestHeaders.password},r=rt(rt({},r),{},{username:t,password:n.password}),e.setState({requestHeaders:r}),e.props.editJSONHeaders(n)}}),wp.element.createElement("span",{className:"visualizer-json-query-modal-field-separator"},ft("&")),wp.element.createElement(Tt,{label:ft("Password"),placeholder:ft("Password/Secret Key"),type:"password",value:this.props.chart["visualizer-json-headers"]&&"object"===ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth.password:this.state.requestHeaders.password,onChange:function(t){var n=rt({},e.state.requestHeaders),r=e.state.requestHeaders;n.auth={username:e.props.chart["visualizer-json-headers"]&&"object"===ot(e.props.chart["visualizer-json-headers"].auth)?e.props.chart["visualizer-json-headers"].auth.username:e.state.requestHeaders.username,password:t},r=rt(rt({},r),{},{username:n.username,password:t}),e.setState({requestHeaders:r}),e.props.editJSONHeaders(n)}}),wp.element.createElement("p",null,ft("OR")),wp.element.createElement(Tt,{label:ft("Authorization"),placeholder:ft("e.g. SharedKey :"),value:this.props.chart["visualizer-json-headers"]&&"object"!==ot(this.props.chart["visualizer-json-headers"].auth)?this.props.chart["visualizer-json-headers"].auth:this.state.requestHeaders.auth,onChange:function(t){var n=rt({},e.state.requestHeaders),r=e.state.requestHeaders;n.auth=t,r=rt(rt({},r),{},{auth:t}),e.setState({requestHeaders:r}),e.props.editJSONHeaders(n)}})),wp.element.createElement(gt,{isPrimary:!0,isLarge:!0,isBusy:this.state.isLoading,disabled:this.state.isLoading,onClick:this.getJSONRoot},ft("Fetch Endpoint"))),wp.element.createElement(kt,{title:ft("Step 2: Choose the JSON root"),initialOpen:!1,opened:this.state.isSecondStepOpen,onToggle:function(){return e.onToggle("isSecondStepOpen")}},wp.element.createElement("p",null,ft("If you see Invalid Data, you may have selected the wrong root to fetch data from. Please select an alternative.")),wp.element.createElement(Yt,{value:this.props.chart["visualizer-json-root"],options:this.state.endpointRoots,onChange:this.props.editJSONRoot}),wp.element.createElement(gt,{isPrimary:!0,isLarge:!0,isBusy:this.state.isLoading,disabled:this.state.isLoading,onClick:this.getJSONData},ft("Parse Endpoint"))),wp.element.createElement(kt,{title:ft("Step 3: Specify miscellaneous parameters"),initialOpen:!1,opened:this.state.isThirdStepOpen,onToggle:function(){return e.onToggle("isThirdStepOpen")}},"community"!==visualizerLocalize.isPro?wp.element.createElement(Yt,{value:this.props.chart["visualizer-json-paging"]||0,options:this.state.endpointPaging,onChange:this.props.editJSONPaging}):wp.element.createElement("p",null,ft("Enable this feature in PRO version!"))),wp.element.createElement(kt,{title:ft("Step 4: Select the data to display in the chart"),initialOpen:!1,opened:this.state.isFourthStepOpen,onToggle:function(){return e.onToggle("isFourthStepOpen")}},wp.element.createElement("ul",null,wp.element.createElement("li",null,ft("Select whether to include the data in the chart. Each column selected will form one series.")),wp.element.createElement("li",null,ft("If a column is selected to be included, specify its data type.")),wp.element.createElement("li",null,ft("You can use drag/drop to reorder the columns but this column position is not saved. So when you reload the table, you may have to reorder again.")),wp.element.createElement("li",null,ft("You can select any number of columns but the chart type selected will determine how many will display in the chart."))),wp.element.createElement("div",{id:"visualizer-json-query-table"}),wp.element.createElement(gt,{isPrimary:!0,isLarge:!0,isBusy:this.state.isLoading,disabled:this.state.isLoading,onClick:this.getTableData},ft("Save & Show Chart"))))):wp.element.createElement(kt,{title:ft("Import from JSON"),icon:"lock",initialOpen:!1},wp.element.createElement("p",null,ft("Enable this feature in PRO version!")),wp.element.createElement(gt,{isPrimary:!0,href:visualizerLocalize.proTeaser,target:"_blank"},ft("Upgrade Now")))}}],r&&ut(n.prototype,r),a&&ut(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a,o,i,s,l,u}(bt);const St=Dt;function Ot(e){return Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(e)}function jt(e,t){for(var n=0;n=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function Vt(e){return Vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vt(e)}function qt(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function $t(e,t){for(var n=0;n=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function yn(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function bn(e,t){for(var n=0;n=["timeline"].indexOf(t)&&(r[1]={label:Hr("The tooltip will be displayed when the user selects an element"),value:"selection"}),r[2]={label:Hr("The tooltip will not be displayed"),value:"none"};var a=[{label:Hr("Left of the chart"),value:"left"},{label:Hr("Right of the chart"),value:"right"},{label:Hr("Above the chart"),value:"top"},{label:Hr("Below the chart"),value:"bottom"},{label:Hr("Omit the legend"),value:"none"}];"pie"!==t&&a.push({label:Hr("Inside the chart"),value:"in"}),"bubble"===t&&(a=a.filter((function(e){return"left"!==e.value})));var o=Hr("Text to display above the chart.");return 0<=["tabular","dataTable","gauge","geo","timeline"].indexOf(t)&&(o=Hr("Text to display in the back-end admin area")),wp.element.createElement(Wr,{title:Hr("General Settings"),initialOpen:!1,className:"visualizer-advanced-panel"},wp.element.createElement(Wr,{title:Hr("Title"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Br,{label:Hr("Chart Title"),help:o,value:n.title,onChange:function(t){n.title=t,e.props.edit(n)}}),-1>=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(t)&&wp.element.createElement(Ir,{label:Hr("Chart Title Position"),help:Hr("Where to place the chart title, compared to the chart area."),value:n.titlePosition?n.titlePosition:"out",options:[{label:Hr("Inside the chart"),value:"in"},{label:Hr("Outside the chart"),value:"out"},{label:Hr("None"),value:"none"}],onChange:function(t){n.titlePosition=t,e.props.edit(n)}}),-1>=["tabular","dataTable","gauge","geo","timeline"].indexOf(t)&&wp.element.createElement(Fr,{label:Hr("Chart Title Color")},wp.element.createElement(Ar,{value:n.titleTextStyle.color,onChange:function(t){n.titleTextStyle.color=t,e.props.edit(n)}})),-1>=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(t)&&wp.element.createElement(Ir,{label:Hr("Axes Titles Position"),help:Hr("Determines where to place the axis titles, compared to the chart area."),value:n.axisTitlesPosition?n.axisTitlesPosition:"out",options:[{label:Hr("Inside the chart"),value:"in"},{label:Hr("Outside the chart"),value:"out"},{label:Hr("None"),value:"none"}],onChange:function(t){n.axisTitlesPosition=t,e.props.edit(n)}})),-1>=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(t)&&wp.element.createElement(Wr,{title:Hr("Font Styles"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ir,{label:Hr("Font Family"),help:Hr("The default font family for all text in the chart."),value:n.fontName?n.fontName:"Arial",options:[{label:Hr("Arial"),value:"Arial"},{label:Hr("Sans Serif"),value:"Sans Serif"},{label:Hr("Serif"),value:"serif"},{label:Hr("Arial"),value:"Arial"},{label:Hr("Wide"),value:"Arial black"},{label:Hr("Narrow"),value:"Arial Narrow"},{label:Hr("Comic Sans MS"),value:"Comic Sans MS"},{label:Hr("Courier New"),value:"Courier New"},{label:Hr("Garamond"),value:"Garamond"},{label:Hr("Georgia"),value:"Georgia"},{label:Hr("Tahoma"),value:"Tahoma"},{label:Hr("Verdana"),value:"Verdana"}],onChange:function(t){n.fontName=t,e.props.edit(n)}}),wp.element.createElement(Ir,{label:Hr("Font Size"),help:Hr("The default font size for all text in the chart."),value:n.fontSize?n.fontSize:"15",options:[{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"},{label:"13",value:"13"},{label:"14",value:"14"},{label:"15",value:"15"},{label:"16",value:"16"},{label:"17",value:"17"},{label:"18",value:"18"},{label:"19",value:"19"},{label:"20",value:"20"}],onChange:function(t){n.fontSize=t,e.props.edit(n)}})),-1>=["tabular","dataTable","gauge","geo","timeline"].indexOf(t)&&wp.element.createElement(Wr,{title:Hr("Legend"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ir,{label:Hr("Position"),help:Hr("Determines where to place the legend, compared to the chart area."),value:n.legend.position?n.legend.position:"right",options:a,onChange:function(r){if("pie"!==t){var a="left"===r?1:0;n.series&&Object.keys(n.series).map((function(e){n.series[e].targetAxisIndex=a}))}n.legend.position=r,e.props.edit(n)}}),wp.element.createElement(Ir,{label:Hr("Alignment"),help:Hr("Determines the alignment of the legend."),value:n.legend.alignment?n.legend.alignment:"15",options:[{label:Hr("Aligned to the start of the allocated area"),value:"start"},{label:Hr("Centered in the allocated area"),value:"center"},{label:Hr("Aligned to the end of the allocated area"),value:"end"}],onChange:function(t){n.legend.alignment=t,e.props.edit(n)}}),wp.element.createElement(Fr,{label:Hr("Font Color")},wp.element.createElement(Ar,{value:n.legend.textStyle.color,onChange:function(t){n.legend.textStyle.color=t,e.props.edit(n)}}))),-1>=["tabular","gauge","geo","dataTable","timeline"].indexOf(t)&&wp.element.createElement(Wr,{title:Hr("Tooltip"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ir,{label:Hr("Trigger"),help:Hr("Determines the user interaction that causes the tooltip to be displayed."),value:n.tooltip.trigger?n.tooltip.trigger:"focus",options:r,onChange:function(t){n.tooltip.trigger=t,e.props.edit(n)}}),wp.element.createElement(Ir,{label:Hr("Show Color Code"),help:Hr("If set to yes, will show colored squares next to the slice information in the tooltip."),value:n.tooltip.showColorCode?n.tooltip.showColorCode:"0",options:[{label:Hr("Yes"),value:"1"},{label:Hr("No"),value:"0"}],onChange:function(t){n.tooltip.showColorCode=t,e.props.edit(n)}}),0<=["pie"].indexOf(t)&&wp.element.createElement(Ir,{label:Hr("Text"),help:Hr("Determines what information to display when the user hovers over a pie slice."),value:n.tooltip.text?n.tooltip.text:"both",options:[{label:Hr("Display both the absolute value of the slice and the percentage of the whole"),value:"both"},{label:Hr("Display only the absolute value of the slice"),value:"value"},{label:Hr("Display only the percentage of the whole represented by the slice"),value:"percentage"}],onChange:function(t){n.tooltip.text=t,e.props.edit(n)}})),-1>=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(t)&&wp.element.createElement(Wr,{title:Hr("Animation"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Rr,{label:Hr("Animate on startup?"),help:Hr("Determines if the chart will animate on the initial draw."),checked:Number(n.animation.startup),onChange:function(t){n.animation.startup=t?"1":"0",e.props.edit(n)}}),wp.element.createElement(Br,{label:Hr("Duration"),help:Hr("The duration of the animation, in milliseconds."),type:"number",value:n.animation.duration,onChange:function(t){n.animation.duration=t,e.props.edit(n)}}),wp.element.createElement(Ir,{label:Hr("Easing"),help:Hr("The easing function applied to the animation."),value:n.animation.easing?n.animation.easing:"linear",options:[{label:Hr("Constant speed"),value:"linear"},{label:Hr("Start slow and speed up"),value:"in"},{label:Hr("Start fast and slow down"),value:"out"},{label:Hr("Start slow, speed up, then slow down"),value:"inAndOut"}],onChange:function(t){n.animation.easing=t,e.props.edit(n)}})))}}],r&&Or(n.prototype,r),a&&Or(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(zr);const Jr=Ur;function Gr(e){return Gr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Gr(e)}function Vr(e,t){for(var n=0;n=["column"].indexOf(t)&&wp.element.createElement(ya,null,wp.element.createElement(ka,{label:ha("Number Format"),help:ha("Enter custom format pattern to apply to horizontal axis labels."),value:n.hAxis.format,onChange:function(t){n.hAxis.format=t,e.props.edit(n)}}),wp.element.createElement("p",null,ha("For number axis labels, this is a subset of the formatting "),wp.element.createElement(wa,{href:"http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details"},ha("ICU pattern set.")),ha(" For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use #%% percentage format then your values will be multiplied by 100.")),wp.element.createElement("p",null,ha("For date axis labels, this is a subset of the date formatting "),wp.element.createElement(wa,{href:"https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax"},ha("ICU date and time format."))))),-1>=["column"].indexOf(t)&&wp.element.createElement(ya,null,wp.element.createElement(Ma,{title:ha("Grid Lines"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(ka,{label:ha("Count"),help:ha("The approximate number of horizontal gridlines inside the chart area. You can specify a value of -1 to automatically compute the number of gridlines, 0 or 1 to draw no gridlines, or 2 or more to only draw gridline. Any number greater than 2 will be used to compute the minSpacing between gridlines."),value:n.hAxis.gridlines?n.hAxis.gridlines.count:"",onChange:function(t){n.hAxis.gridlines||(n.hAxis.gridlines={}),n.hAxis.gridlines.count=t,e.props.edit(n)}}),wp.element.createElement(ga,{label:ha("Color")},wp.element.createElement(ba,{value:n.hAxis.gridlines?n.hAxis.gridlines.color:"",onChange:function(t){n.hAxis.gridlines||(n.hAxis.gridlines={}),n.hAxis.gridlines.color=t,e.props.edit(n)}}))),wp.element.createElement(Ma,{title:ha("Minor Grid Lines"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(ka,{label:ha("Count"),help:ha("Specify 0 to disable the minor gridlines."),value:n.hAxis.minorGridlines?n.hAxis.minorGridlines.count:"",onChange:function(t){n.hAxis.minorGridlines||(n.hAxis.minorGridlines={}),n.hAxis.minorGridlines.count=t,e.props.edit(n)}}),wp.element.createElement(ga,{label:ha("Color")},wp.element.createElement(ba,{value:n.hAxis.minorGridlines?n.hAxis.minorGridlines.color:"",onChange:function(t){n.hAxis.minorGridlines||(n.hAxis.minorGridlines={}),n.hAxis.minorGridlines.color=t,e.props.edit(n)}}))),wp.element.createElement(Ma,{title:ha("View Window"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(ka,{label:ha("Maximun Value"),help:ha("The maximum vertical data value to render."),value:n.hAxis.viewWindow?n.hAxis.viewWindow.max:"",onChange:function(t){n.hAxis.viewWindow||(n.hAxis.viewWindow={}),n.hAxis.viewWindow.max=t,e.props.edit(n)}}),wp.element.createElement(ka,{label:ha("Minimum Value"),help:ha("The minimum vertical data value to render."),value:n.hAxis.viewWindow?n.hAxis.viewWindow.min:"",onChange:function(t){n.hAxis.viewWindow||(n.hAxis.viewWindow={}),n.hAxis.viewWindow.min=t,e.props.edit(n)}}))))}}],r&&la(n.prototype,r),a&&la(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(_a);const Ta=Ya;function Da(e){return Da="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Da(e)}function Sa(e,t){for(var n=0;n=["bar"].indexOf(t)&&wp.element.createElement(Aa,null,wp.element.createElement(Ua,{label:Ca("Number Format"),help:Ca("Enter custom format pattern to apply to Vertical axis labels."),value:n.vAxis.format,onChange:function(t){n.vAxis.format=t,e.props.edit(n)}}),wp.element.createElement("p",null,Ca("For number axis labels, this is a subset of the formatting "),wp.element.createElement(Wa,{href:"http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details"},Ca("ICU pattern set.")),Ca(" For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use #%% percentage format then your values will be multiplied by 100.")),wp.element.createElement("p",null,Ca("For date axis labels, this is a subset of the date formatting "),wp.element.createElement(Wa,{href:"https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax"},Ca("ICU date and time format."))))),-1>=["bar"].indexOf(t)&&wp.element.createElement(Aa,null,wp.element.createElement(Ia,{title:Ca("Grid Lines"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ua,{label:Ca("Count"),help:Ca("The approximate number of vertical gridlines inside the chart area. You can specify a value of -1 to automatically compute the number of gridlines, 0 or 1 to draw no gridlines, or 2 or more to only draw gridline. Any number greater than 2 will be used to compute the minSpacing between gridlines."),value:n.vAxis.gridlines?n.vAxis.gridlines.count:"",onChange:function(t){n.vAxis.gridlines||(n.vAxis.gridlines={}),n.vAxis.gridlines.count=t,e.props.edit(n)}}),wp.element.createElement(Ra,{label:Ca("Color")},wp.element.createElement(Na,{value:n.vAxis.gridlines?n.vAxis.gridlines.color:"",onChange:function(t){n.vAxis.gridlines||(n.vAxis.gridlines={}),n.vAxis.gridlines.color=t,e.props.edit(n)}}))),wp.element.createElement(Ia,{title:Ca("Minor Grid Lines"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ua,{label:Ca("Count"),help:Ca("Specify 0 to disable the minor gridlines."),value:n.vAxis.minorGridlines?n.vAxis.minorGridlines.count:"",onChange:function(t){n.vAxis.minorGridlines||(n.vAxis.minorGridlines={}),n.vAxis.minorGridlines.count=t,e.props.edit(n)}}),wp.element.createElement(Ra,{label:Ca("Color")},wp.element.createElement(Na,{value:n.vAxis.minorGridlines?n.vAxis.minorGridlines.color:"",onChange:function(t){n.vAxis.minorGridlines||(n.vAxis.minorGridlines={}),n.vAxis.minorGridlines.color=t,e.props.edit(n)}}))),wp.element.createElement(Ia,{title:Ca("View Window"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Ua,{label:Ca("Maximun Value"),help:Ca("The maximum vertical data value to render."),value:n.vAxis.viewWindow?n.vAxis.viewWindow.max:"",onChange:function(t){n.vAxis.viewWindow||(n.vAxis.viewWindow={}),n.vAxis.viewWindow.max=t,e.props.edit(n)}}),wp.element.createElement(Ua,{label:Ca("Minimum Value"),help:Ca("The minimum vertical data value to render."),value:n.vAxis.viewWindow?n.vAxis.viewWindow.min:"",onChange:function(t){n.vAxis.viewWindow||(n.vAxis.viewWindow={}),n.vAxis.viewWindow.min=t,e.props.edit(n)}}))))}}],r&&Sa(n.prototype,r),a&&Sa(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(za);const Ga=Ja;function Va(e){return Va="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Va(e)}function qa(e,t){for(var n=0;n=["area"].indexOf(t)&&wp.element.createElement(Bo,{label:Ao("Curve Type"),help:Ao("Determines whether the series has to be presented in the legend or not."),value:n.curveType?n.curveType:"none",options:[{label:Ao("Straight line without curve"),value:"none"},{label:Ao("The angles of the line will be smoothed"),value:"function"}],onChange:function(t){n.curveType=t,e.props.edit(n)}}),-1>=["scatter"].indexOf(t)&&wp.element.createElement(Bo,{label:Ao("Focus Target"),help:Ao("The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click."),value:n.focusTarget?n.focusTarget:"datum",options:[{label:Ao("Focus on a single data point."),value:"datum"},{label:Ao("Focus on a grouping of all data points along the major axis."),value:"category"}],onChange:function(t){n.focusTarget=t,e.props.edit(n)}}),wp.element.createElement(Bo,{label:Ao("Selection Mode"),help:Ao("Determines how many data points an user can select on a chart."),value:n.selectionMode?n.selectionMode:"single",options:[{label:Ao("Single data point"),value:"single"},{label:Ao("Multiple data points"),value:"multiple"}],onChange:function(t){n.selectionMode=t,e.props.edit(n)}}),wp.element.createElement(Bo,{label:Ao("Aggregation Target"),help:Ao("Determines how multiple data selections are rolled up into tooltips. To make it working you need to set multiple selection mode and tooltip trigger to display it when an user selects an element."),value:n.aggregationTarget?n.aggregationTarget:"auto",options:[{label:Ao("Group selected data by x-value"),value:"category"},{label:Ao("Group selected data by series"),value:"series"},{label:Ao("Group selected data by x-value if all selections have the same x-value, and by series otherwise"),value:"auto"},{label:Ao("Show only one tooltip per selection"),value:"none"}],onChange:function(t){n.aggregationTarget=t,e.props.edit(n)}}),wp.element.createElement(Uo,{label:Ao("Point Opacity"),help:Ao("The transparency of data points, with 1.0 being completely opaque and 0.0 fully transparent."),value:n.dataOpacity,onChange:function(t){n.dataOpacity=t,e.props.edit(n)}}),-1>=["scatter","line"].indexOf(t)&&wp.element.createElement(Ro,null,wp.element.createElement(Uo,{label:Ao("Area Opacity"),help:Ao("The default opacity of the colored area under an area chart series, where 0.0 is fully transparent and 1.0 is fully opaque. To specify opacity for an individual series, set the area opacity value in the series property."),value:n.areaOpacity,onChange:function(t){n.areaOpacity=t,e.props.edit(n)}}),wp.element.createElement(Bo,{label:Ao("Is Stacked"),help:Ao("If set to yes, series elements are stacked."),value:n.isStacked?n.isStacked:"0",options:[{label:Ao("Yes"),value:"1"},{label:Ao("No"),value:"0"}],onChange:function(t){n.isStacked=t,e.props.edit(n)}})),-1>=["scatter","area"].indexOf(t)&&wp.element.createElement(Bo,{label:Ao("Interpolate Nulls"),help:Ao("Whether to guess the value of missing points. If yes, it will guess the value of any missing data based on neighboring points. If no, it will leave a break in the line at the unknown point."),value:n.interpolateNulls?n.interpolateNulls:"0",options:[{label:Ao("Yes"),value:"1"},{label:Ao("No"),value:"0"}],onChange:function(t){n.interpolateNulls=t,e.props.edit(n)}}))}}],r&&Eo(n.prototype,r),a&&Eo(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(Fo);const Go=Jo;function Vo(e){return Vo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vo(e)}function qo(e,t){for(var n=0;n=["tabular","pie"].indexOf(s)&&wp.element.createElement(Su,{label:vu("Visible In Legend"),help:vu("Determines whether the series has to be presented in the legend or not."),value:t.series[a].visibleInLegend?t.series[a].visibleInLegend:"1",options:[{label:vu("Yes"),value:"1"},{label:vu("No"),value:"0"}],onChange:function(n){t.series[a].visibleInLegend=n,e.props.edit(t)}}),-1>=["tabular","candlestick","combo","column","bar"].indexOf(s)&&wp.element.createElement(Mu,null,wp.element.createElement(Ou,{label:vu("Line Width"),help:vu("Overrides the global line width value for this series."),value:t.series[a].lineWidth,onChange:function(n){t.series[a].lineWidth=n,e.props.edit(t)},onKeyUp:function(n){clearTimeout(l),l=setTimeout((function(){""!=t.series[a].lineWidth&&0>=t.series[a].lineWidth&&(t.series[a].lineWidth="0.1",e.props.edit(t))}),700)}}),wp.element.createElement(Ou,{label:vu("Point Size"),help:vu("Overrides the global point size value for this series."),value:t.series[a].pointSize,onChange:function(n){t.series[a].pointSize=n,e.props.edit(t)}})),-1>=["candlestick"].indexOf(s)&&s&&"number"===s?wp.element.createElement(Mu,null,wp.element.createElement(Ou,{label:vu("Format"),help:vu("Enter custom format pattern to apply to this series value."),value:t.series[o].format,onChange:function(n){t.series[o].format=n,e.props.edit(t)}}),wp.element.createElement("p",null,vu("For number axis labels, this is a subset of the formatting "),wp.element.createElement(Tu,{href:"http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details"},vu("ICU pattern set.")),vu(" For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use #%% percentage format then your values will be multiplied by 100."))):0<=["date","datetime","timeofday"].indexOf(s)&&wp.element.createElement(Mu,null,wp.element.createElement(Ou,{label:vu("Date Format"),help:vu("Enter custom format pattern to apply to this series value."),placeholder:"dd LLLL yyyy",value:t.series[o].format,onChange:function(n){t.series[o].format=n,e.props.edit(t)}}),wp.element.createElement("p",null,vu("This is a subset of the date formatting "),wp.element.createElement(Tu,{href:"https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax"},vu("ICU date and time format.")))),0<=["scatter","line"].indexOf(s)&&wp.element.createElement(Su,{label:vu("Curve Type"),help:vu("Determines whether the series has to be presented in the legend or not."),value:t.series[a].curveType?t.series[a].curveType:"none",options:[{label:vu("Straight line without curve"),value:"none"},{label:vu("The angles of the line will be smoothed"),value:"function"}],onChange:function(n){t.series[a].curveType=n,e.props.edit(t)}}),0<=["area"].indexOf(s)&&wp.element.createElement(Ou,{label:vu("Area Opacity"),help:vu("The opacity of the colored area, where 0.0 is fully transparent and 1.0 is fully opaque."),value:t.series[a].areaOpacity,onChange:function(n){t.series[a].areaOpacity=n,e.props.edit(t)}}),0<=["combo"].indexOf(s)&&wp.element.createElement(Su,{label:vu("Chart Type"),help:vu("Select the type of chart to show for this series."),value:t.series[a].type?t.series[a].type:"area",options:[{label:vu("Area"),value:"area"},{label:vu("Bar"),value:"bars"},{label:vu("Candlesticks"),value:"candlesticks"},{label:vu("Line"),value:"line"},{label:vu("Stepped Area"),value:"steppedArea"}],onChange:function(n){t.series[a].type=n,e.props.edit(t)}}),-1>=["tabular"].indexOf(s)&&wp.element.createElement(Yu,{label:vu("Color")},wp.element.createElement(Lu,{value:t.series[a].color,onChange:function(n){t.series[a].color=n,e.props.edit(t)}})))})))}}],r&&mu(n.prototype,r),a&&mu(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(wu);const Eu=ju;function xu(e){return xu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xu(e)}function Pu(e,t){for(var n=0;n=["gauge","tabular"].indexOf(t)&&wp.element.createElement(Nc,null,wp.element.createElement(Jc,{label:Hc("Stroke Width"),help:Hc("The chart border width in pixels."),value:n.backgroundColor.strokeWidth,onChange:function(t){n.backgroundColor.strokeWidth=t,e.props.edit(n)}}),wp.element.createElement(Wc,{label:Hc("Stroke Color")},wp.element.createElement(Fc,{value:n.backgroundColor.stroke,onChange:function(t){n.backgroundColor.stroke=t,e.props.edit(n)}})),wp.element.createElement(Wc,{label:Hc("Background Color")},wp.element.createElement(Fc,{value:n.backgroundColor.fill,onChange:function(t){n.backgroundColor.fill=t,e.props.edit(n)}})),wp.element.createElement(Ic,{label:Hc("Transparent Background?"),checked:"transparent"===n.backgroundColor.fill,onChange:function(t){n.backgroundColor.fill="transparent"===n.backgroundColor.fill?"":"transparent",e.props.edit(n)}}))),-1>=["geo","gauge","tabular"].indexOf(t)&&wp.element.createElement(Bc,{title:Hc("Chart Area"),className:"visualizer-inner-sections",initialOpen:!1},wp.element.createElement(Jc,{label:Hc("Left Margin"),help:Hc("Determines how far to draw the chart from the left border."),value:n.chartArea.left,onChange:function(t){n.chartArea.left=t,e.props.edit(n)}}),wp.element.createElement(Jc,{label:Hc("Top Margin"),help:Hc("Determines how far to draw the chart from the top border."),value:n.chartArea.top,onChange:function(t){n.chartArea.top=t,e.props.edit(n)}}),wp.element.createElement(Jc,{label:Hc("Width Of Chart Area"),help:Hc("Determines the width of the chart area."),value:n.chartArea.width,onChange:function(t){n.chartArea.width=t,e.props.edit(n)}}),wp.element.createElement(Jc,{label:Hc("Height Of Chart Area"),help:Hc("Determines the hight of the chart area."),value:n.chartArea.height,onChange:function(t){n.chartArea.height=t,e.props.edit(n)}})))}}],r&&Oc(n.prototype,r),a&&Oc(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(Ac);const Vc=Gc;function qc(e){return qc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qc(e)}function $c(e,t){for(var n=0;n=["dataTable","tabular","gauge","table"].indexOf(n)&&wp.element.createElement(sd,{label:td("Download Image"),help:td("To download the chart as an image."),checked:0<=t.actions.indexOf("image"),onChange:function(n){if(0<=t.actions.indexOf("image")){var r=t.actions.indexOf("image");-1!==r&&t.actions.splice(r,1)}else t.actions.push("image");e.props.edit(t)}}))):wp.element.createElement(ld,{title:td("Frontend Actions"),initialOpen:!1,icon:"lock",className:"visualizer-advanced-panel"},wp.element.createElement("p",null,td("Enable this feature in PRO version!")),wp.element.createElement(id,{isPrimary:!0,href:visualizerLocalize.proTeaser,target:"_blank"},td("Upgrade Now")))}}],r&&$c(n.prototype,r),a&&$c(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(rd);const cd=ud;function dd(e){return dd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dd(e)}function pd(e){var t=function(e,t){if("object"!=dd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=dd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==dd(t)?t:t+""}function md(e,t,n){return(t=pd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hd(e){for(var t=1;t{var t=(new Error).stack.replace(/^Error\s+/,"");return t=(t=t.split("\n")[e]).replace(/^\s+at Object./,"").replace(/^\s+at /,"").replace(/ \(.+\)$/,"")},throwError:(e="unknown function",t="unknown parameter",n="to be defined")=>{throw["@",e,"(): Expected parameter '",t,"' ",n].join("")},isUndefined:(e="",t)=>{[null,void 0].indexOf(t)>-1&&yd.throwError(yd.getCaller(2),e)},isFalsy:(e="",t)=>{t||yd.throwError(yd.getCaller(2),e)},isNoneOf:(e="",t,n=[])=>{-1===n.indexOf(t)&&yd.throwError(yd.getCaller(2),e,"to be any of"+JSON.stringify(n))},isAnyOf:(e="",t,n=[])=>{n.indexOf(t)>-1&&yd.throwError(yd.getCaller(2),e,"not to be any of"+JSON.stringify(n))},isNotType:(e="",t,n="")=>{(0,_d.getType)(t)!==n.toLowerCase()&&yd.throwError(yd.getCaller(2),e,"to be type "+n.toLowerCase())},isAnyTypeOf:(e="",t,n=[])=>{n.forEach((n=>{(0,_d.getType)(t)===n&&yd.throwError(yd.getCaller(2),e,"not to be type of "+n.toLowerCase())}))},missingKey:(e="",t,n="")=>{yd.isUndefined(e,t),-1===Object.keys(t).indexOf(n)&&yd.throwError(yd.getCaller(2),e,"to contain '"+n+"' key")},missingAnyKeys:(e="",t,n=[""])=>{yd.isUndefined(e,t);const r=Object.keys(t);n.forEach((t=>{-1===r.indexOf(t)&&yd.throwError(yd.getCaller(2),e,"to contain '"+t+"' key")}))},containsUndefined:(e="",t)=>{[void 0,null].forEach((n=>{const r=(0,_d.locate)(t,n);r&&yd.throwError(yd.getCaller(2),e,"not to contain '"+JSON.stringify(n)+"' at "+r)}))},isInvalidPath:(e="",t)=>{yd.isUndefined(e,t),yd.isNotType(e,t,"string"),yd.isAnyOf(e,t,["","/"]),".$[]#".split().forEach((n=>{t.indexOf(n)>-1&&yd.throwError(yd.getCaller(2),e,"not to contain invalid character '"+n+"'")})),t.match(/\/{2,}/g)&&yd.throwError(yd.getCaller(2),e,"not to contain consecutive forward slash characters")},isInvalidWriteData:(e="",t)=>{yd.isUndefined(e,t),yd.containsUndefined(e,t)}},bd=yd,vd=(e,t)=>t?Object.keys(t).reduce(((e,n)=>e.replace(new RegExp(`\\{${n}\\}`,"gi"),(e=>Array.isArray(e)?e.join(", "):"string"==typeof e?e:""+e)(t[n]))),e):e,gd={format:"{reason} at line {line}",symbols:{colon:"colon",comma:"comma",semicolon:"semicolon",slash:"slash",backslash:"backslash",brackets:{round:"round brackets",square:"square brackets",curly:"curly brackets",angle:"angle brackets"},period:"period",quotes:{single:"single quote",double:"double quote",grave:"grave accent"},space:"space",ampersand:"ampersand",asterisk:"asterisk",at:"at sign",equals:"equals sign",hash:"hash",percent:"percent",plus:"plus",minus:"minus",dash:"dash",hyphen:"hyphen",tilde:"tilde",underscore:"underscore",bar:"vertical bar"},types:{key:"key",value:"value",number:"number",string:"string",primitive:"primitive",boolean:"boolean",character:"character",integer:"integer",array:"array",float:"float"},invalidToken:{tokenSequence:{prohibited:"'{firstToken}' token cannot be followed by '{secondToken}' token(s)",permitted:"'{firstToken}' token can only be followed by '{secondToken}' token(s)"},termSequence:{prohibited:"A {firstTerm} cannot be followed by a {secondTerm}",permitted:"A {firstTerm} can only be followed by a {secondTerm}"},double:"'{token}' token cannot be followed by another '{token}' token",useInstead:"'{badToken}' token is not accepted. Use '{goodToken}' instead",unexpected:"Unexpected '{token}' token found"},brace:{curly:{missingOpen:"Missing '{' open curly brace",missingClose:"Open '{' curly brace is missing closing '}' curly brace",cannotWrap:"'{token}' token cannot be wrapped in '{}' curly braces"},square:{missingOpen:"Missing '[' open square brace",missingClose:"Open '[' square brace is missing closing ']' square brace",cannotWrap:"'{token}' token cannot be wrapped in '[]' square braces"}},string:{missingOpen:"Missing/invalid opening string '{quote}' token",missingClose:"Missing/invalid closing string '{quote}' token",mustBeWrappedByQuotes:"Strings must be wrapped by quotes",nonAlphanumeric:"Non-alphanumeric token '{token}' is not allowed outside string notation",unexpectedKey:"Unexpected key found at string position"},key:{numberAndLetterMissingQuotes:"Key beginning with number and containing letters must be wrapped by quotes",spaceMissingQuotes:"Key containing space must be wrapped by quotes",unexpectedString:"Unexpected string found at key position"},noTrailingOrLeadingComma:"Trailing or leading commas in arrays and objects are not permitted"};class wd extends r.Component{constructor(e){super(e),this.updateInternalProps=this.updateInternalProps.bind(this),this.createMarkup=this.createMarkup.bind(this),this.onClick=this.onClick.bind(this),this.onBlur=this.onBlur.bind(this),this.update=this.update.bind(this),this.getCursorPosition=this.getCursorPosition.bind(this),this.setCursorPosition=this.setCursorPosition.bind(this),this.scheduledUpdate=this.scheduledUpdate.bind(this),this.setUpdateTime=this.setUpdateTime.bind(this),this.renderLabels=this.renderLabels.bind(this),this.newSpan=this.newSpan.bind(this),this.renderErrorMessage=this.renderErrorMessage.bind(this),this.onScroll=this.onScroll.bind(this),this.showPlaceholder=this.showPlaceholder.bind(this),this.tokenize=this.tokenize.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onPaste=this.onPaste.bind(this),this.stopEvent=this.stopEvent.bind(this),this.refContent=null,this.refLabels=null,this.updateInternalProps(),this.renderCount=1,this.state={prevPlaceholder:"",markupText:"",plainText:"",json:"",jsObject:void 0,lines:!1,error:!1},this.props.locale||console.warn("[react-json-editor-ajrm - Deprecation Warning] You did not provide a 'locale' prop for your JSON input - This will be required in a future version. English has been set as a default.")}updateInternalProps(){let e={},t={},n=fd.dark_vscode_tribute;"theme"in this.props&&"string"==typeof this.props.theme&&this.props.theme in fd&&(n=fd[this.props.theme]),e=n,"colors"in this.props&&(e={default:"default"in this.props.colors?this.props.colors.default:e.default,string:"string"in this.props.colors?this.props.colors.string:e.string,number:"number"in this.props.colors?this.props.colors.number:e.number,colon:"colon"in this.props.colors?this.props.colors.colon:e.colon,keys:"keys"in this.props.colors?this.props.colors.keys:e.keys,keys_whiteSpace:"keys_whiteSpace"in this.props.colors?this.props.colors.keys_whiteSpace:e.keys_whiteSpace,primitive:"primitive"in this.props.colors?this.props.colors.primitive:e.primitive,error:"error"in this.props.colors?this.props.colors.error:e.error,background:"background"in this.props.colors?this.props.colors.background:e.background,background_warning:"background_warning"in this.props.colors?this.props.colors.background_warning:e.background_warning}),this.colors=e,t="style"in this.props?{outerBox:"outerBox"in this.props.style?this.props.style.outerBox:{},container:"container"in this.props.style?this.props.style.container:{},warningBox:"warningBox"in this.props.style?this.props.style.warningBox:{},errorMessage:"errorMessage"in this.props.style?this.props.style.errorMessage:{},body:"body"in this.props.style?this.props.style.body:{},labelColumn:"labelColumn"in this.props.style?this.props.style.labelColumn:{},labels:"labels"in this.props.style?this.props.style.labels:{},contentBox:"contentBox"in this.props.style?this.props.style.contentBox:{}}:{outerBox:{},container:{},warningBox:{},errorMessage:{},body:{},labelColumn:{},labels:{},contentBox:{}},this.style=t,this.confirmGood=!("confirmGood"in this.props)||this.props.confirmGood;const r=this.props.height||"610px",a=this.props.width||"479px";this.totalHeight=r,this.totalWidth=a,!("onKeyPressUpdate"in this.props)||this.props.onKeyPressUpdate?this.timer||(this.timer=setInterval(this.scheduledUpdate,100)):this.timer&&(clearInterval(this.timer),this.timer=!1),this.updateTime=!1,this.waitAfterKeyPress="waitAfterKeyPress"in this.props?this.props.waitAfterKeyPress:1e3,this.resetConfiguration="reset"in this.props&&this.props.reset}render(){const e=this.props.id,t=this.state.markupText,n=this.props.error||this.state.error,a=this.colors,o=this.style,i=this.confirmGood,s=this.totalHeight,l=this.totalWidth,u=!!this.props.error||!!n&&"token"in n;return this.renderCount++,r.createElement("div",{name:"outer-box",id:e&&e+"-outer-box",style:hd({display:"block",overflow:"none",height:s,width:l,margin:0,boxSizing:"border-box",position:"relative"},o.outerBox)},i?r.createElement("div",{style:{opacity:u?0:1,height:"30px",width:"30px",position:"absolute",top:0,right:0,transform:"translate(-25%,25%)",pointerEvents:"none",transitionDuration:"0.2s",transitionTimingFunction:"cubic-bezier(0, 1, 0.5, 1)"}},r.createElement("svg",{height:"30px",width:"30px",viewBox:"0 0 100 100"},r.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",fill:"green",opacity:"0.85",d:"M39.363,79L16,55.49l11.347-11.419L39.694,56.49L72.983,23L84,34.085L39.363,79z"}))):void 0,r.createElement("div",{name:"container",id:e&&e+"-container",style:hd({display:"block",height:s,width:l,margin:0,boxSizing:"border-box",overflow:"hidden",fontFamily:"Roboto, sans-serif"},o.container),onClick:this.onClick},r.createElement("div",{name:"warning-box",id:e&&e+"-warning-box",style:hd({display:"block",overflow:"hidden",height:u?"60px":"0px",width:"100%",margin:0,backgroundColor:a.background_warning,transitionDuration:"0.2s",transitionTimingFunction:"cubic-bezier(0, 1, 0.5, 1)"},o.warningBox),onClick:this.onClick},r.createElement("span",{style:{display:"inline-block",height:"60px",width:"60px",margin:0,boxSizing:"border-box",overflow:"hidden",verticalAlign:"top",pointerEvents:"none"},onClick:this.onClick},r.createElement("div",{style:{position:"relative",top:0,left:0,height:"60px",width:"60px",margin:0,pointerEvents:"none"},onClick:this.onClick},r.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",pointerEvents:"none"},onClick:this.onClick},r.createElement("svg",{height:"25px",width:"25px",viewBox:"0 0 100 100"},r.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",fill:"red",d:"M73.9,5.75c0.467-0.467,1.067-0.7,1.8-0.7c0.7,0,1.283,0.233,1.75,0.7l16.8,16.8 c0.467,0.5,0.7,1.084,0.7,1.75c0,0.733-0.233,1.334-0.7,1.801L70.35,50l23.9,23.95c0.5,0.467,0.75,1.066,0.75,1.8 c0,0.667-0.25,1.25-0.75,1.75l-16.8,16.75c-0.534,0.467-1.117,0.7-1.75,0.7s-1.233-0.233-1.8-0.7L50,70.351L26.1,94.25 c-0.567,0.467-1.167,0.7-1.8,0.7c-0.667,0-1.283-0.233-1.85-0.7L5.75,77.5C5.25,77,5,76.417,5,75.75c0-0.733,0.25-1.333,0.75-1.8 L29.65,50L5.75,26.101C5.25,25.667,5,25.066,5,24.3c0-0.666,0.25-1.25,0.75-1.75l16.8-16.8c0.467-0.467,1.05-0.7,1.75-0.7 c0.733,0,1.333,0.233,1.8,0.7L50,29.65L73.9,5.75z"}))))),r.createElement("span",{style:{display:"inline-block",height:"60px",width:"calc(100% - 60px)",margin:0,overflow:"hidden",verticalAlign:"top",position:"absolute",pointerEvents:"none"},onClick:this.onClick},this.renderErrorMessage())),r.createElement("div",{name:"body",id:e&&e+"-body",style:hd({display:"flex",overflow:"none",height:u?"calc(100% - 60px)":"100%",width:"",margin:0,resize:"none",fontFamily:"Roboto Mono, Monaco, monospace",fontSize:"11px",backgroundColor:a.background,transitionDuration:"0.2s",transitionTimingFunction:"cubic-bezier(0, 1, 0.5, 1)"},o.body),onClick:this.onClick},r.createElement("span",{name:"labels",id:e&&e+"-labels",ref:e=>this.refLabels=e,style:hd({display:"inline-block",boxSizing:"border-box",verticalAlign:"top",height:"100%",width:"44px",margin:0,padding:"5px 0px 5px 10px",overflow:"hidden",color:"#D4D4D4"},o.labelColumn),onClick:this.onClick},this.renderLabels()),r.createElement("span",{id:e,ref:e=>this.refContent=e,contentEditable:!0,style:hd({display:"inline-block",boxSizing:"border-box",verticalAlign:"top",height:"100%",width:"",flex:1,margin:0,padding:"5px",overflowX:"hidden",overflowY:"auto",wordWrap:"break-word",whiteSpace:"pre-line",color:"#D4D4D4",outline:"none"},o.contentBox),dangerouslySetInnerHTML:this.createMarkup(t),onKeyPress:this.onKeyPress,onKeyDown:this.onKeyDown,onClick:this.onClick,onBlur:this.onBlur,onScroll:this.onScroll,onPaste:this.onPaste,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1}))))}renderErrorMessage(){const e=this.props.locale||gd,t=this.props.error||this.state.error,n=this.style;if(t)return r.createElement("p",{style:hd({color:"red",fontSize:"12px",position:"absolute",width:"calc(100% - 60px)",height:"60px",boxSizing:"border-box",margin:0,padding:0,paddingRight:"10px",overflowWrap:"break-word",display:"flex",flexDirection:"column",justifyContent:"center"},n.errorMessage)},vd(e.format,t))}renderLabels(){const e=this.colors,t=this.style,n=this.props.error||this.state.error,a=n?n.line:-1,o=this.state.lines?this.state.lines:1;let i=new Array(o);for(var s=0;s{const o=n!==a?e.default:"red";return r.createElement("div",{key:n,style:hd({},t.labels,{color:o})},n)}))}createMarkup(e){return void 0===e?{__html:""}:{__html:""+e}}newSpan(e,t,n){let r=this.colors,a=t.type,o=t.string,i="";switch(a){case"string":case"number":case"primitive":case"error":i=r[t.type];break;case"key":i=" "===o?r.keys_whiteSpace:r.keys;break;case"symbol":i=":"===o?r.colon:r.default;break;default:i=r.default}return o.length!==o.replace(//g,"").length&&(o=""+o+""),''+o+""}getCursorPosition(e){let t,n=window.getSelection(),r=-1,a=0;if(n.focusNode&&(e=>{for(;null!==e;){if(e===this.refContent)return!0;e=e.parentNode}return!1})(n.focusNode))for(t=n.focusNode,r=n.focusOffset;t&&t!==this.refContent;)if(t.previousSibling)t=t.previousSibling,e&&"BR"===t.nodeName&&a++,r+=t.textContent.length;else if(t=t.parentNode,null===t)break;return r+a}setCursorPosition(e){if([!1,null,void 0].indexOf(e)>-1)return;const t=(e,n,r)=>{if(r||((r=document.createRange()).selectNode(e),r.setStart(e,0)),0===n.count)r.setEnd(e,n.count);else if(e&&n.count>0)if(e.nodeType===Node.TEXT_NODE)e.textContent.length0?(e=>{if(e<0)return;let n=window.getSelection(),r=t(this.refContent,{count:e});r&&(r.collapse(!1),n.removeAllRanges(),n.addRange(r))})(e):this.refContent.focus()}update(e=0,t=!0){const n=this.refContent,r=this.tokenize(n);"onChange"in this.props&&this.props.onChange({plainText:r.indented,markupText:r.markup,json:r.json,jsObject:r.jsObject,lines:r.lines,error:r.error});let a=this.getCursorPosition(r.error)+e;this.setState({plainText:r.indented,markupText:r.markup,json:r.json,jsObject:r.jsObject,lines:r.lines,error:r.error}),this.updateTime=!1,t&&this.setCursorPosition(a)}scheduledUpdate(){if("onKeyPressUpdate"in this.props&&!1===this.props.onKeyPressUpdate)return;const{updateTime:e}=this;!1!==e&&(e>(new Date).getTime()||this.update())}setUpdateTime(){"onKeyPressUpdate"in this.props&&!1===this.props.onKeyPressUpdate||(this.updateTime=(new Date).getTime()+this.waitAfterKeyPress)}stopEvent(e){e&&(e.preventDefault(),e.stopPropagation())}onKeyPress(e){const t=e.ctrlKey||e.metaKey;this.props.viewOnly&&!t&&this.stopEvent(e),t||this.setUpdateTime()}onKeyDown(e){const t=!!this.props.viewOnly,n=e.ctrlKey||e.metaKey;switch(e.key){case"Tab":if(this.stopEvent(e),t)break;document.execCommand("insertText",!1," "),this.setUpdateTime();break;case"Backspace":case"Delete":t&&this.stopEvent(e),this.setUpdateTime();break;case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":this.setUpdateTime();break;case"a":case"c":t&&!n&&this.stopEvent(e);break;default:t&&this.stopEvent(e)}}onPaste(e){if(this.props.viewOnly)this.stopEvent(e);else{e.preventDefault();var t=e.clipboardData.getData("text/plain");document.execCommand("insertText",!1,t)}this.update()}onClick(){!("viewOnly"in this.props)||this.props.viewOnly}onBlur(){if("viewOnly"in this.props&&this.props.viewOnly)return;const e=this.refContent,t=this.tokenize(e);"onBlur"in this.props&&this.props.onBlur({plainText:t.indented,markupText:t.markup,json:t.json,jsObject:t.jsObject,lines:t.lines,error:t.error})}onScroll(e){this.refLabels.scrollTop=e.target.scrollTop}componentDidUpdate(){this.updateInternalProps(),this.showPlaceholder()}componentDidMount(){this.showPlaceholder()}componentWillUnmount(){this.timer&&clearInterval(this.timer)}showPlaceholder(){if(!("placeholder"in this.props))return;const{placeholder:e}=this.props;if([void 0,null].indexOf(e)>-1)return;const{prevPlaceholder:t,jsObject:n}=this.state,{resetConfiguration:r}=this,a=(0,_d.getType)(e);-1===["object","array"].indexOf(a)&&bd.throwError("showPlaceholder","placeholder","either an object or an array");let o=!(0,_d.identical)(e,t);if(o||r&&void 0!==n&&(o=!(0,_d.identical)(e,n)),!o)return;const i=this.tokenize(e);this.setState({prevPlaceholder:e,plainText:i.indentation,markupText:i.markup,lines:i.lines,error:i.error})}tokenize(e){if("object"!=typeof e)return console.error("tokenize() expects object type properties only. Got '"+typeof e+"' type instead.");const t=this.props.locale||gd,n=this.newSpan;if("nodeType"in e){const c=e.cloneNode(!0);if(!c.hasChildNodes())return"";const d=c.childNodes;let p={tokens_unknown:[],tokens_proto:[],tokens_split:[],tokens_fallback:[],tokens_normalize:[],tokens_merge:[],tokens_plainText:"",indented:"",json:"",jsObject:void 0,markup:""};for(var r=0;r-1?(n.active&&n.quarks.push({string:n[n.active],type:t+"-"+n.active}),n[n.active]="",n.active=r,n[n.active]=e):n[r]+=e}}for(var a=0;a-1){r(t,"number");break}case".":if(a0&&"0123456789".indexOf(e.charAt(a+1))>-1&&"0123456789".indexOf(e.charAt(a-1))>-1){r(t,"number");break}default:r(t,"string")}}return n.active&&(n.quarks.push({string:n[n.active],type:t+"-"+n.active}),n[n.active]="",n.active=!1),n.quarks}for(r=0;r0&&i-1){if(1===e.length)return!1;if(r!==a)return!1;for(i=0;i0&&i=~*%\\|/-+!?@^  ";for(i=0;i-1)return!1}}break;case"number":for(i=0;i1)return!1;if(-1==="{[:]},".indexOf(e))return!1;break;case"colon":if(e.length>1)return!1;if(":"!==e)return!1;break;default:return!0}return!0}for(r=0;r-1&&(H=H.slice(H.indexOf("-")+1),"string"!==H&&N.push("string"),N.push("key"),N.push("error"));let F={string:z,length:A,type:H,fallback:N};p.tokens_fallback.push(F)}function f(){const e=p.tokens_normalize.length-1;if(e<1)return!1;for(var t=e;t>=0;t--){const e=p.tokens_normalize[t];switch(e.type){case"space":case"linebreak":break;default:return e}}return!1}let _={brackets:[],stringOpen:!1,isValue:!1};for(r=0;r0){const U=p.tokens_fallback[r-1],J=U.string,G=U.type,V=J.charAt(J.length-1);if("string"===G&&"\\"===V)break}if(_.stringOpen===I){_.stringOpen=!1;break}break;case"primitive":case"string":if(["false","true","null","undefined"].indexOf(I)>-1){const q=p.tokens_normalize.length-1;if(q>=0){if("string"!==p.tokens_normalize[q].type){B.type="primitive";break}B.type="string";break}B.type="primitive";break}if("\n"===I&&!_.stringOpen){B.type="linebreak";break}_.isValue?B.type="string":B.type="key";break;case"space":case"number":_.stringOpen&&(_.isValue?B.type="string":B.type="key")}p.tokens_normalize.push(B)}for(r=0;r0?1:0;function v(e,t,n=0){o={token:e,line:i,reason:t},p.tokens_merge[e+n].type="error"}function g(e,t){if(void 0===e&&console.error("tokenID argument must be an integer."),void 0===t&&console.error("options argument must be an array."),e===p.tokens_merge.length-1)return!1;for(var n=e+1;n-1&&n;default:return!1}}return!1}function w(e,t){if(void 0===e&&console.error("tokenID argument must be an integer."),void 0===t&&console.error("options argument must be an array."),0===e)return!1;for(var n=e-1;n>=0;n--){const e=p.tokens_merge[n];switch(e.type){case"space":case"linebreak":break;case"symbol":case"colon":return t.indexOf(e.string)>-1;default:return!1}}return!1}function M(e){if(void 0===e&&console.error("tokenID argument must be an integer."),0===e)return!1;for(var t=e-1;t>=0;t--){const e=p.tokens_merge[t];switch(e.type){case"space":case"linebreak":break;default:return e.type}}return!1}_={brackets:[],stringOpen:!1,isValue:!1};let L=[];for(r=0;r0&&!w(r,[":","[",","])){v(r,vd(t.invalidToken.tokenSequence.permitted,{firstToken:"[",secondToken:[":","[",","]}));break}if("{"===ee&&w(r,["{"])){v(r,vd(t.invalidToken.double,{token:"{"}));break}_.brackets.push(ee),_.isValue="["===_.brackets[_.brackets.length-1],L.push({i:r,line:i,string:ee});break;case"}":case"]":if("}"===ee&&"{"!==_.brackets[_.brackets.length-1]){v(r,vd(t.brace.curly.missingOpen));break}if("}"===ee&&w(r,[","])){v(r,vd(t.invalidToken.tokenSequence.prohibited,{firstToken:",",secondToken:"}"}));break}if("]"===ee&&"["!==_.brackets[_.brackets.length-1]){v(r,vd(t.brace.square.missingOpen));break}if("]"===ee&&w(r,[":"])){v(r,vd(t.invalidToken.tokenSequence.prohibited,{firstToken:":",secondToken:"]"}));break}_.brackets.pop(),_.isValue="["===_.brackets[_.brackets.length-1],L.push({i:r,line:i,string:ee});break;case",":if(ne=w(r,["{"]),ne){if(g(r,["}"])){v(r,vd(t.brace.curly.cannotWrap,{token:","}));break}v(r,vd(t.invalidToken.tokenSequence.prohibited,{firstToken:"{",secondToken:","}));break}if(g(r,["}",",","]"])){v(r,vd(t.noTrailingOrLeadingComma));break}switch(ne=M(r),ne){case"key":case"colon":v(r,vd(t.invalidToken.termSequence.prohibited,{firstTerm:"key"===ne?t.types.key:t.symbols.colon,secondTerm:t.symbols.comma}));break;case"symbol":if(w(r,["{"])){v(r,vd(t.invalidToken.tokenSequence.prohibited,{firstToken:"{",secondToken:","}));break}}_.isValue="["===_.brackets[_.brackets.length-1]}p.json+=ee;break;case"colon":if(ne=w(r,["["]),ne&&g(r,["]"])){v(r,vd(t.brace.square.cannotWrap,{token:":"}));break}if(ne){v(r,vd(t.invalidToken.tokenSequence.prohibited,{firstToken:"[",secondToken:":"}));break}if("key"!==M(r)){v(r,vd(t.invalidToken.termSequence.permitted,{firstTerm:t.symbols.colon,secondTerm:t.types.key}));break}if(g(r,["}","]"])){v(r,vd(t.invalidToken.termSequence.permitted,{firstTerm:t.symbols.colon,secondTerm:t.types.value}));break}_.isValue=!0,p.json+=ee;break;case"key":case"string":let re=ee.charAt(0),ae=ee.charAt(ee.length-1);y.indexOf(re);if(-1===y.indexOf(re)&&-1!==y.indexOf(ae)){v(r,vd(t.string.missingOpen,{quote:re}));break}if(-1===y.indexOf(ae)&&-1!==y.indexOf(re)){v(r,vd(t.string.missingClose,{quote:re}));break}if(y.indexOf(re)>-1&&re!==ae){v(r,vd(t.string.missingClose,{quote:re}));break}if("string"===te&&-1===y.indexOf(re)&&-1===y.indexOf(ae)){v(r,vd(t.string.mustBeWrappedByQuotes));break}if("key"===te&&g(r,["}","]"])&&v(r,vd(t.invalidToken.termSequence.permitted,{firstTerm:t.types.key,secondTerm:t.symbols.colon})),-1===y.indexOf(re)&&-1===y.indexOf(ae))for(var s=0;s0&&!isNaN(p.tokens_merge[r-1])){p.tokens_merge[r-1]+=p.tokens_merge[r],v(r,vd(t.key.numberAndLetterMissingQuotes));break}v(r,vd(t.key.spaceMissingQuotes));break}if("key"===te&&!w(r,["{",","])){v(r,vd(t.invalidToken.tokenSequence.permitted,{firstToken:te,secondToken:["{",","]}));break}if("string"===te&&!w(r,["[",":",","])){v(r,vd(t.invalidToken.tokenSequence.permitted,{firstToken:te,secondToken:["[",":",","]}));break}if("key"===te&&_.isValue){v(r,vd(t.string.unexpectedKey));break}if("string"===te&&!_.isValue){v(r,vd(t.key.unexpectedString));break}p.json+=ee;break;case"number":case"primitive":if(w(r,["{"]))p.tokens_merge[r].type="key",te=p.tokens_merge[r].type,ee='"'+ee+'"';else if("key"===M(r))p.tokens_merge[r].type="key",te=p.tokens_merge[r].type;else if(!w(r,["[",":",","])){v(r,vd(t.invalidToken.tokenSequence.permitted,{firstToken:te,secondToken:["[",":",","]}));break}"key"!==te&&(_.isValue||(p.tokens_merge[r].type="key",te=p.tokens_merge[r].type,ee='"'+ee+'"')),"primitive"===te&&"undefined"===ee&&v(r,vd(t.invalidToken.useInstead,{badToken:"undefined",goodToken:"null"})),p.json+=ee}}let k="";for(r=0;r0;){ce=!1;for(var l=0;l-1&&de(l)}if(ue++,!ce)break;if(ue>=le)break}if(L.length>0){const me=L[0].string,he=L[0].i,fe="["===me?"]":"}";i=L[0].line,v(he,vd(t.brace["]"===fe?"square":"curly"].missingClose))}}if(!o&&-1===[void 0,""].indexOf(p.json))try{p.jsObject=JSON.parse(p.json)}catch(_e){const ye=_e.message,be=ye.indexOf("position");if(-1===be)throw new Error("Error parsing failed");const ve=ye.substring(be+9,ye.length),ge=parseInt(ve);let we=0,Me=0,Le=!1,ke=1,Ye=!1;for(;we=ge));)Me++,p.tokens_merge[Me+1]||(Ye=!0);i=ke;let Te=0;for(let De=0;De0?Te+1:1:(Te%2==0&&0!==Te||-1==="'\"bfnrt".indexOf(Se)&&v(Me,vd(t.invalidToken.unexpected,{token:"\\"})),Te=0)}o||v(Me,vd(t.invalidToken.unexpected,{token:Le.string}))}let Y=1,T=0;function D(){for(var e=[],t=0;t<2*T;t++)e.push(" ");return e.join("")}function S(e=!1){return Y++,T>0||e?"
":""}function O(e=!1){return S(e)+D()}if(!o)for(r=0;r0?["[","{"].indexOf(p.tokens_merge[r-1].string)>-1?"":O(Ee):"";p.markup+=xe+n(r,Oe,T);break;case",":p.markup+=n(r,Oe,T)}}}if(o){let Pe=1;function Ce(e){let t=0;for(var n=0;n-1&&t++;return t}Y=1;for(r=0;r{let t="",n="",r="";switch(e){case",":t="symbol",n=e,r=e,Je.isValue="["===Je.brackets[Je.brackets.length-1];break;case":":t="symbol",n=e,r=e,Je.isValue=!0;break;case"{":case"[":t="symbol",n=e,r=e,Je.brackets.push(e),Je.isValue="["===Je.brackets[Je.brackets.length-1];break;case"}":case"]":t="symbol",n=e,r=e,Je.brackets.pop(),Je.isValue="["===Je.brackets[Je.brackets.length-1];break;case"undefined":t="primitive",n=e,r=void 0;break;case"null":t="primitive",n=e,r=null;break;case"false":t="primitive",n=e,r=!1;break;case"true":t="primitive",n=e,r=!0;break;default:const o=e.charAt(0);function i(e){if(0===e.length)return e;if(['""',"''"].indexOf(e)>-1)return"''";let t=!1;for(var n=0;n<2;n++)if([e.charAt(0),e.charAt(e.length-1)].indexOf(['"',"'"][n])>-1){t=!0;break}t&&e.length>=2&&(e=e.slice(1,-1));const r=e.replace(/\w/g,""),a=(e.replace(/\W+/g,""),((e,t)=>{let n=!1;for(var r=0;r0||n)})(r,e)),o=(e=>{for(var t=0;t-1)return!0;return!1})(r);if(o){let t="";const n=e.split("");for(var i=0;i-1&&(e="\\"+e),t+=e}e=t}return a?e:"'"+e+"'"}if("'\"".indexOf(o)>-1){if(t=Je.isValue?"string":"key","key"===t&&(n=i(e)),"string"===t){n="";const s=e.slice(1,-1).split("");for(var a=0;a-1&&(l="\\"+l),n+=l}n="'"+n+"'"}r=n;break}if(!isNaN(e)){t="number",n=e,r=Number(e);break}if(e.length>0&&!Je.isValue){t="key",n=e,n.indexOf(" ")>-1&&(n="'"+n+"'"),r=n;break}}return{type:t,string:n,value:r,depth:Je.brackets.length}}));let Ge="";for(r=0;r0?"\n":"")+t.join("")}let qe="";for(r=0;r0?Je.tokens[r-1]:"";-1==="[{".indexOf(at.string)?qe+=Ve(nt.depth)+nt.string:qe+=nt.string;break;case":":qe+=nt.string+" ";break;case",":qe+=nt.string+Ve(nt.depth);break;default:qe+=nt.string}}let $e=1;function Ke(e){var t=[];e>0&&$e++;for(var n=0;n<2*e;n++)t.push(" ");return(e>0?"
":"")+t.join("")}let Ze="";const Qe=Je.tokens.length-1;for(r=0;r0?Je.tokens[r-1]:"";-1==="[{".indexOf(lt.string)?Ze+=Ke(ot.depth)+(Qe===r?"
":"")+it:Ze+=it;break;case":":Ze+=it+" ";break;case",":Ze+=it+Ke(ot.depth);break;default:Ze+=it}}return $e+=2,{tokens:Je.tokens,noSpaces:Ge,indented:qe,json:JSON.stringify(e),jsObject:e,markup:Ze,lines:$e}}}}const Md=wd;var Ld=n(3826);function kd(e){return kd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kd(e)}function Yd(e,t){for(var n=0;n=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(e)&&wp.element.createElement(Ta,{chart:this.props.chart,edit:this.props.edit}),-1>=["tabular","dataTable","gauge","geo","pie","timeline"].indexOf(e)&&wp.element.createElement(Ga,{chart:this.props.chart,edit:this.props.edit}),0<=["pie"].indexOf(e)&&wp.element.createElement(Vd,null,wp.element.createElement(mo,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(Oo,{chart:this.props.chart,edit:this.props.edit})),0<=["area","scatter","line"].indexOf(e)&&wp.element.createElement(Go,{chart:this.props.chart,edit:this.props.edit}),0<=["bar","column"].indexOf(e)&&wp.element.createElement(si,{chart:this.props.chart,edit:this.props.edit}),0<=["candlestick"].indexOf(e)&&wp.element.createElement(ki,{chart:this.props.chart,edit:this.props.edit}),0<=["geo"].indexOf(e)&&wp.element.createElement(Vd,null,wp.element.createElement(Ri,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(ns,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(vs,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(Cs,{chart:this.props.chart,edit:this.props.edit})),0<=["gauge"].indexOf(e)&&wp.element.createElement(Xs,{chart:this.props.chart,edit:this.props.edit}),0<=["timeline"].indexOf(e)&&wp.element.createElement(fl,{chart:this.props.chart,edit:this.props.edit}),0<=["tabular","dataTable"].indexOf(e)&&wp.element.createElement(Vd,null,wp.element.createElement(Pl,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(Zl,{chart:this.props.chart,edit:this.props.edit})),0<=["combo"].indexOf(e)&&wp.element.createElement(du,{chart:this.props.chart,edit:this.props.edit}),-1>=["timeline","bubble","gauge","geo","pie","tabular","dataTable"].indexOf(e)&&wp.element.createElement(Eu,{chart:this.props.chart,edit:this.props.edit}),"tabular"===e&&"GoogleCharts"===t&&wp.element.createElement(Eu,{chart:this.props.chart,edit:this.props.edit}),0<=["bubble"].indexOf(e)&&wp.element.createElement(cc,{chart:this.props.chart,edit:this.props.edit}),0<=["pie"].indexOf(e)&&wp.element.createElement(Vu,{chart:this.props.chart,edit:this.props.edit}),"DataTable"===t&&wp.element.createElement(Dc,{chart:this.props.chart,edit:this.props.edit}),"DataTable"!==t&&wp.element.createElement(Vc,{chart:this.props.chart,edit:this.props.edit}),wp.element.createElement(cd,{chart:this.props.chart,edit:this.props.edit}),"DataTable"!==t&&wp.element.createElement(Ad,{chart:this.props.chart,edit:this.props.edit}))}}])&&Fd(n.prototype,r),a&&Fd(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a}(Gd);function $d(e){return $d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$d(e)}function Kd(){Kd=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof y?t:y,i=Object.create(o.prototype),s=new j(r||[]);return a(i,"_invoke",{value:T(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",m="suspendedYield",h="executing",f="completed",_={};function y(){}function b(){}function v(){}var g={};u(g,i,(function(){return this}));var w=Object.getPrototypeOf,M=w&&w(w(E([])));M&&M!==n&&r.call(M,i)&&(g=M);var L=v.prototype=y.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function Y(e,t){function n(a,o,i,s){var l=d(e[a],e,o);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==$d(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(c).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function T(t,n,r){var a=p;return function(o,i){if(a===h)throw Error("Generator is already running");if(a===f){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var l=D(s,r);if(l){if(l===_)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=f,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=h;var u=d(t,n,r);if("normal"===u.type){if(a=r.done?f:m,u.arg===_)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=f,r.method="throw",r.arg=u.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),_;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,_;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,_):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,_)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function E(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function Zd(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Qd(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Zd(o,r,a,i,s,"next",e)}function s(e){Zd(o,r,a,i,s,"throw",e)}i(void 0)}))}}function Xd(e,t){for(var n=0;n=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function jp(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Ep(e,t){for(var n=0;n=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;O(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),_}},t}function vm(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function gm(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){vm(o,r,a,i,s,"next",e)}function s(e){vm(o,r,a,i,s,"throw",e)}i(void 0)}))}}function wm(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];this.setState({isLoading:"uploadData",isScheduled:t}),jm({path:"/visualizer/v1/upload-data?url=".concat(this.state.chart["visualizer-chart-url"]),method:"POST"}).then((function(t){if(2<=Object.keys(t).length){var n=_m({},e.state.chart);n["visualizer-source"]="Visualizer_Source_Csv_Remote",n["visualizer-default-data"]=0,n["visualizer-series"]=t.series,n["visualizer-data"]=t.data;var r=n["visualizer-series"],a=n["visualizer-settings"],o=r,i="series";return"pie"===n["visualizer-chart-type"]&&(o=n["visualizer-data"],i="slices"),o.map((function(e,t){if("pie"===n["visualizer-chart-type"]||0!==t){var r="pie"!==n["visualizer-chart-type"]?t-1:t;void 0===a[i][r]&&(a[i][r]={},a[i][r].temp=1)}})),a[i]=a[i].filter((function(e,t){return t<("pie"!==n["visualizer-chart-type"]?o.length-1:o.length)})),n["visualizer-settings"]=a,e.setState({chart:n,isModified:!0,isLoading:!1}),t}e.setState({isLoading:!1})}),(function(t){return e.setState({isLoading:!1}),t}))}},{key:"getChartData",value:(i=gm(bm().mark((function e(t){var n,r;return bm().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setState({isLoading:"getChartData"});case 2:return e.next=4,Om({path:"wp/v2/visualizer/".concat(t)});case 4:n=e.sent,(r=_m({},this.state.chart))["visualizer-source"]="Visualizer_Source_Csv",r["visualizer-default-data"]=0,r["visualizer-series"]=n.chart_data["visualizer-series"],r["visualizer-data"]=n.chart_data["visualizer-data"],this.setState({isLoading:!1,chart:r});case 11:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"editChartData",value:function(e,t){var n=_m({},this.state.chart),r=[],a=_m({},n["visualizer-settings"]),o=n["visualizer-chart-type"];e[0].map((function(t,n){r[n]={label:t,type:e[1][n]}})),e.splice(0,2);var i=r,s="series";switch(o){case"pie":i=e,s="slices",e.map((function(e,t){"number"===r[1].type&&(e[1]=parseFloat(e[1]))}));break;case"tabular":e.map((function(e,t){r.map((function(t,n){"boolean"===t.type&&"string"==typeof e[n]&&(e[n]="true"===e[n])}))}))}i.map((function(e,t){if("pie"===o||0!==t){var n="pie"!==o?t-1:t;Array.isArray(a[s])&&void 0===a[s][n]&&(a[s][n]={},a[s][n].temp=1)}})),Array.isArray(a[s])&&(a[s]=a[s].filter((function(e,t){return t<(-1>=["pie","tabular","dataTable"].indexOf(o)?i.length-1:i.length)}))),n["visualizer-source"]=t,n["visualizer-default-data"]=0,n["visualizer-data"]=e,n["visualizer-series"]=r,n["visualizer-settings"]=a,n["visualizer-chart-url"]="",this.setState({chart:n,isModified:!0,isScheduled:!1})}},{key:"updateChart",value:function(){var e=this;this.setState({isLoading:"updateChart"});var t=this.state.chart;!1===this.state.isScheduled&&(t["visualizer-chart-schedule"]="");var n="series";"pie"===t["visualizer-chart-type"]&&(n="slices"),void 0!==t["visualizer-settings"][n]&&-1>=["bubble","timeline"].indexOf(t["visualizer-chart-type"])&&Object.keys(t["visualizer-settings"][n]).map((function(e){void 0!==t["visualizer-settings"][n][e]&&void 0!==t["visualizer-settings"][n][e].temp&&delete t["visualizer-settings"][n][e].temp})),jm({path:"/visualizer/v1/update-chart?id=".concat(this.props.attributes.id),method:"POST",data:t}).then((function(t){return e.setState({isLoading:!1,isModified:!1}),t}),(function(e){return e}))}},{key:"createChart",value:(o=gm(bm().mark((function e(){var t,n=this;return bm().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=new(wp.media.view.MediaFrame.extend({initialize:function(){var e=this;_.defaults(e.options,{action:"",id:"visualizer",state:"iframe:visualizer",title:"Visualizer"}),wp.media.view.MediaFrame.prototype.initialize.apply(e,arguments),wp.media.view.settings.tab="Visualizer",wp.media.view.settings.tabUrl=e.options.action,e.createIframeStates()},createIframeStates:function(e){var t=this;wp.media.view.MediaFrame.prototype.createIframeStates.apply(t,arguments),t.state(t.options.state).set(_.defaults({tab:t.options.id,src:t.options.action+"&tab="+t.options.id,title:t.options.title,content:"iframe",menu:"default"},e))},open:function(){try{wp.media.view.MediaFrame.prototype.open.apply(this,arguments)}catch(e){console.error(e)}}}))({action:visualizerLocalize.createChart}),window.send_to_editor=function(){t.close()},window.parent.addEventListener("message",(function(e){if("visualizer:mediaframe:close"===e.data)t.close();else if(e.data.chartID&&null===n.state.chart){var r=parseInt(e.data.chartID,10);n.getChart(r)}}),!1),t.open();case 4:case"end":return e.stop()}}),e)}))),function(){return o.apply(this,arguments)})},{key:"render",value:function(){var e=this;return"error"===this.state.route?wp.element.createElement(Fm,{status:"error",isDismissible:!1},wp.element.createElement(Am,{icon:"chart-pie"}),Dm("This chart is not available; it might have been deleted. Please delete this block and resubmit your chart.")):"1"===visualizerLocalize.isFullSiteEditor?wp.element.createElement(Fm,{status:"error",isDismissible:!1},wp.element.createElement(Am,{icon:"chart-pie"}),Dm("Visualizer block charts are currently not available for selection here, you must visit the library, get the shortcode, and add the chart here in a shortcode tag.")):"renderChart"===this.state.route&&null!==this.state.chart?wp.element.createElement(mm,{id:this.props.attributes.id,chart:this.state.chart,className:this.props.className,editChart:this.editChart}):wp.element.createElement("div",{className:"visualizer-settings"},wp.element.createElement("div",{className:"visualizer-settings__title"},wp.element.createElement(Am,{icon:"chart-pie"}),Dm("Visualizer")),"home"===this.state.route&&wp.element.createElement("div",{className:"visualizer-settings__content"},wp.element.createElement("div",{className:"visualizer-settings__content-description"},Dm("Make a new chart or display an existing one?")),wp.element.createElement("a",{onClick:this.createChart,target:"_blank",className:"visualizer-settings__content-option"},wp.element.createElement("span",{className:"visualizer-settings__content-option-title"},Dm("Create a new chart")),wp.element.createElement("div",{className:"visualizer-settings__content-option-icon"},wp.element.createElement(Am,{icon:"arrow-right-alt2"}))),wp.element.createElement("div",{className:"visualizer-settings__content-option",onClick:function(){e.setState({route:"showCharts"}),e.props.setAttributes({route:"showCharts"})}},wp.element.createElement("span",{className:"visualizer-settings__content-option-title"},Dm("Display an existing chart")),wp.element.createElement("div",{className:"visualizer-settings__content-option-icon"},wp.element.createElement(Am,{icon:"arrow-right-alt2"})))),("getChart"===this.state.isLoading||"chartSelect"===this.state.route&&null===this.state.chart||"renderChart"===this.state.route&&null===this.state.chart)&&wp.element.createElement(Nm,null,wp.element.createElement(Rm,null)),"showCharts"===this.state.route&&!1===this.state.isLoading&&wp.element.createElement(Re,{getChart:this.getChart}),"chartSelect"===this.state.route&&null!==this.state.chart&&wp.element.createElement(qp,{id:this.props.attributes.id,attributes:this.props.attributes,chart:this.state.chart,editSettings:this.editSettings,editPermissions:this.editPermissions,url:this.state.url,readUploadedFile:this.readUploadedFile,editURL:this.editURL,editSchedule:this.editSchedule,editJSONURL:this.editJSONURL,editJSONHeaders:this.editJSONHeaders,editJSONSchedule:this.editJSONSchedule,editJSONRoot:this.editJSONRoot,editJSONPaging:this.editJSONPaging,JSONImportData:this.JSONImportData,editDatabaseSchedule:this.editDatabaseSchedule,databaseImportData:this.databaseImportData,uploadData:this.uploadData,getChartData:this.getChartData,editChartData:this.editChartData,isLoading:this.state.isLoading}),wp.element.createElement("div",{className:"visualizer-settings__controls"},("showCharts"===this.state.route||"chartSelect"===this.state.route)&&wp.element.createElement(zm,null,wp.element.createElement(Hm,{variant:"secondary",isLarge:!0,onClick:function(){var t;"showCharts"===e.state.route?t="home":"chartSelect"===e.state.route&&(t="showCharts"),e.setState({route:t,isLoading:!1}),e.props.setAttributes({route:t})}},Dm("Back")),"chartSelect"===this.state.route&&wp.element.createElement(Pm,null,!1===this.state.isModified?wp.element.createElement(Hm,{variant:"secondary",isLarge:!0,className:"visualizer-bttn-done",onClick:function(){e.setState({route:"renderChart",isModified:!0}),e.props.setAttributes({route:"renderChart"})}},Dm("Done")):wp.element.createElement(Hm,{isPrimary:!0,isLarge:!0,className:"visualizer-bttn-save",isBusy:"updateChart"===this.state.isLoading,disabled:"updateChart"===this.state.isLoading,onClick:this.updateChart},Dm("Save"))))))}}],r&&wm(n.prototype,r),a&&wm(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,a,o,i,s,l}(xm);const Im=Wm;var Bm=wp.i18n.__;(0,wp.blocks.registerBlockType)("visualizer/chart",{title:Bm("Visualizer Chart"),description:Bm("A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages."),category:"common",icon:"chart-pie",keywords:[Bm("Visualizer"),Bm("Chart"),Bm("Google Charts")],attributes:{id:{type:"number"},lazy:{default:"-1",type:"string"},route:{type:"string"}},supports:{customClassName:!1},edit:Im,save:function(){return null}})},8120:(e,t,n)=>{"use strict";var r=n(7128);function a(e,t){return Array.isArray(e)?function(e,t){var n=[];return e.forEach((function(e,r,i){e=a(e,t),t.call(i,e,r,i)&&(e===i[r]||o(e)||(e=i[r]),n.push(e))})),n}(e,t):r(e)?function(e,t){var n,r,i={};for(n in e)r=a(e[n],t),t.call(e,r,n,e)&&(r===e[n]||o(r)||(r=e[n]),i[n]=r);return i}(e,t):e}function o(e){return Array.isArray(e)||r(e)}e.exports=a},7128:(e,t,n)=>{"use strict";var r=n(3798);function a(e){return!0===r(e)&&"[object Object]"===Object.prototype.toString.call(e)}e.exports=function(e){var t,n;return!1!==a(e)&&("function"==typeof(t=e.constructor)&&(!1!==a(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}},3798:e=>{"use strict";e.exports=function(e){return null!=e&&"object"==typeof e&&!1===Array.isArray(e)}},9155:(e,t,n)=>{!function(t){var n=function(e){return a(!0===e,!1,arguments)};function r(e,t){if("object"!==o(e))return t;for(var n in t)"object"===o(e[n])&&"object"===o(t[n])?e[n]=r(e[n],t[n]):e[n]=t[n];return e}function a(e,t,a){var i=a[0],s=a.length;(e||"object"!==o(i))&&(i={});for(var l=0;l=20?"ste":"de")},week:{dow:1,doy:4}})}(n(5093))},1488:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})}(n(5093))},8676:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(5093))},2353:function(e,t,n){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,o,i){var s=n(t),l=r[e][n(t)];return 2===s&&(l=l[a?0:1]),l.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(5093))},4496:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n(5093))},2682:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(5093))},9756:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(5093))},1509:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},o=function(e){return function(t,n,o,i){var s=r(t),l=a[e][r(t)];return 2===s&&(l=l[n?0:1]),l.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:o("s"),ss:o("s"),m:o("m"),mm:o("m"),h:o("h"),hh:o("h"),d:o("d"),dd:o("d"),M:o("M"),MM:o("M"),y:o("y"),yy:o("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(5093))},5533:function(e,t,n){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10,r=e%100-n,a=e>=100?100:null;return e+(t[n]||t[r]||t[a])},week:{dow:1,doy:7}})}(n(5093))},8959:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвіліна":"хвіліну":"h"===r?n?"гадзіна":"гадзіну":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[r],+e)}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(5093))},7777:function(e,t,n){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(5093))},4903:function(e,t,n){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(5093))},1290:function(e,t,n){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(5093))},1545:function(e,t,n){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(5093))},1470:function(e,t,n){!function(e){"use strict";function t(e,t,n){return e+" "+a({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}function n(e){switch(r(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}function r(e){return e>9?r(e%10):e}function a(e,t){return 2===t?o(e):e}function o(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}e.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}})}(n(5093))},4429:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},7306:function(e,t,n){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(5093))},6464:function(e,t,n){!function(e){"use strict";var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");function r(e){return e>1&&e<5&&1!=~~(e/10)}function a(e,t,n,a){var o=e+" ";switch(n){case"s":return t||a?"pár sekund":"pár sekundami";case"ss":return t||a?o+(r(e)?"sekundy":"sekund"):o+"sekundami";case"m":return t?"minuta":a?"minutu":"minutou";case"mm":return t||a?o+(r(e)?"minuty":"minut"):o+"minutami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?o+(r(e)?"hodiny":"hodin"):o+"hodinami";case"d":return t||a?"den":"dnem";case"dd":return t||a?o+(r(e)?"dny":"dní"):o+"dny";case"M":return t||a?"měsíc":"měsícem";case"MM":return t||a?o+(r(e)?"měsíce":"měsíců"):o+"měsíci";case"y":return t||a?"rok":"rokem";case"yy":return t||a?o+(r(e)?"roky":"let"):o+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsParse:function(e,t){var n,r=[];for(n=0;n<12;n++)r[n]=new RegExp("^"+e[n]+"$|^"+t[n]+"$","i");return r}(t,n),shortMonthsParse:function(e){var t,n=[];for(t=0;t<12;t++)n[t]=new RegExp("^"+e[t]+"$","i");return n}(n),longMonthsParse:function(e){var t,n=[];for(t=0;t<12;t++)n[t]=new RegExp("^"+e[t]+"$","i");return n}(t),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},3635:function(e,t,n){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(5093))},4226:function(e,t,n){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(5093))},3601:function(e,t,n){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},6111:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},4697:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},7853:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},708:function(e,t,n){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(5093))},4691:function(e,t,n){!function(e){"use strict";function t(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,n){var r=this._calendarEl[e],a=n&&n.hours();return t(r)&&(r=r.apply(n)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(5093))},3872:function(e,t,n){!function(e){"use strict";e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},8298:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(5093))},6195:function(e,t,n){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},6584:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},9402:function(e,t,n){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},2934:function(e,t,n){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(5093))},838:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},6575:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(5093))},7650:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},3035:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},3508:function(e,t,n){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},119:function(e,t,n){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(5093))},527:function(e,t,n){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,t,n,r){var o="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":o=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":o=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":o=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":o=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":o=r?"vuoden":"vuotta"}return o=a(e,r)+" "+o}function a(e,r){return e<10?r?n[e]:t[e]:e}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},2477:function(e,t,n){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},6435:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(5093))},7892:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(5093))},5498:function(e,t,n){!function(e){"use strict";e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(5093))},7071:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(5093))},217:function(e,t,n){!function(e){"use strict";var t=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],r=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],a=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],o=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];e.defineLocale("gd",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:o,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(5093))},7329:function(e,t,n){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},3383:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka horan","ek hor"],hh:[e+" horanim",e+" hor"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}})}(n(5093))},5050:function(e,t,n){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(5093))},1713:function(e,t,n){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(5093))},3861:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(5093))},6308:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},609:function(e,t,n){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},7160:function(e,t,n){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(5093))},4063:function(e,t,n){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(5093))},9374:function(e,t,n){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var o=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?o+(n||a?"sekúndur":"sekúndum"):o+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?o+(n||a?"mínútur":"mínútum"):n?o+"mínúta":o+"mínútu";case"hh":return t(e)?o+(n||a?"klukkustundir":"klukkustundum"):o+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?o+"dagar":o+(a?"daga":"dögum"):n?o+"dagur":o+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?o+"mánuðir":o+(a?"mánuði":"mánuðum"):n?o+"mánuður":o+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?o+(n||a?"ár":"árum"):o+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},8383:function(e,t,n){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},3827:function(e,t,n){!function(e){"use strict";e.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(5093))},9722:function(e,t,n){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(5093))},1794:function(e,t,n){!function(e){"use strict";e.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(წამი|წუთი|საათი|წელი)/.test(e)?e.replace(/ი$/,"ში"):e+"ში"},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის უკან"):/წელი/.test(e)?e.replace(/წელი$/,"წლის უკან"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(5093))},7088:function(e,t,n){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(5093))},6870:function(e,t,n){!function(e){"use strict";e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}})}(n(5093))},4451:function(e,t,n){!function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(5093))},3164:function(e,t,n){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(5093))},8474:function(e,t,n){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кече саат] LT",lastWeek:"[Өткен аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(5093))},9680:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?a[n][0]:a[n][1]}function n(e){return a(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e}function r(e){return a(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e}function a(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return a(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return a(e)}return a(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:r,s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},5867:function(e,t,n){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(5093))},5766:function(e,t,n){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"}function r(e,t,n,r){return t?o(n)[0]:r?o(n)[1]:o(n)[2]}function a(e){return e%10==0||e>10&&e<20}function o(e){return t[e].split("_")}function i(e,t,n,i){var s=e+" ";return 1===e?s+r(e,t,n[0],i):t?s+(a(e)?o(n)[1]:o(n)[0]):i?s+o(n)[1]:s+(a(e)?o(n)[1]:o(n)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,ss:i,m:r,mm:i,h:r,hh:i,d:r,dd:i,M:r,MM:i,y:r,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(5093))},9532:function(e,t,n){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}function o(e,t){return t?"dažas sekundes":"dažām sekundēm"}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:o,ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},8076:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},1848:function(e,t,n){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},306:function(e,t,n){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(5093))},3739:function(e,t,n){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(5093))},6169:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?e>=10?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(5093))},2297:function(e,t,n){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(5093))},3386:function(e,t,n){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(5093))},7075:function(e,t,n){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},2264:function(e,t,n){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(5093))},2274:function(e,t,n){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},8235:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(5093))},3784:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(5093))},2572:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(5093))},4566:function(e,t,n){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},9849:function(e,t,n){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(5093))},4418:function(e,t,n){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function a(e,t,n){var a=e+" ";switch(n){case"ss":return a+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return a+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return a+(r(e)?"godziny":"godzin");case"MM":return a+(r(e)?"miesiące":"miesięcy");case"yy":return a+(r(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?""===r?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},8303:function(e,t,n){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n(5093))},9834:function(e,t,n){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(5093))},4457:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(5093))},2271:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"минута":"минуту":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[r],+e)}var r=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(5093))},1221:function(e,t,n){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(5093))},3478:function(e,t,n){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},7538:function(e,t,n){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(5093))},5784:function(e,t,n){!function(e){"use strict";var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(e){return e>1&&e<5}function a(e,t,n,a){var o=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?o+(r(e)?"sekundy":"sekúnd"):o+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?o+(r(e)?"minúty":"minút"):o+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?o+(r(e)?"hodiny":"hodín"):o+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?o+(r(e)?"dni":"dní"):o+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?o+(r(e)?"mesiace":"mesiacov"):o+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?o+(r(e)?"roky":"rokov"):o+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},6637:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},6794:function(e,t,n){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},3322:function(e,t,n){!function(e){"use strict";var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},5719:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(5093))},6e3:function(e,t,n){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(5093))},1011:function(e,t,n){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t||2===t?"a":"e")},week:{dow:1,doy:4}})}(n(5093))},748:function(e,t,n){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(5093))},1025:function(e,t,n){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(5093))},1885:function(e,t,n){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(5093))},8861:function(e,t,n){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sext_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Sex_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutus %d",h:"horas ida",hh:"horas %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},5802:function(e,t,n){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(5093))},9231:function(e,t,n){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(5093))},1052:function(e,t,n){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"}function r(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"}function a(e,t,n,r){var a=o(e);switch(n){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}function o(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,o="";return n>0&&(o+=t[n]+"vatlh"),r>0&&(o+=(""!==o?" ":"")+t[r]+"maH"),a>0&&(o+=(""!==o?" ":"")+t[a]),""===o?"pagh":o}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:n,past:r,s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},5096:function(e,t,n){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(e){if(0===e)return e+"'ıncı";var n=e%10,r=e%100-n,a=e>=100?100:null;return e+(t[n]||t[r]||t[a])},week:{dow:1,doy:7}})}(n(5093))},9846:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(5093))},7711:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(5093))},1765:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(5093))},6618:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвилина":"хвилину":"h"===r?n?"година":"годину":e+" "+t({ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[r],+e)}function r(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:r,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(5093))},158:function(e,t,n){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(5093))},2475:function(e,t,n){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(5093))},7609:function(e,t,n){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(5093))},1135:function(e,t,n){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(5093))},4051:function(e,t,n){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(5093))},2218:function(e,t,n){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(5093))},2648:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(5093))},1632:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(5093))},304:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(5093))},5358:(e,t,n)=>{var r={"./af":5177,"./af.js":5177,"./ar":1509,"./ar-dz":1488,"./ar-dz.js":1488,"./ar-kw":8676,"./ar-kw.js":8676,"./ar-ly":2353,"./ar-ly.js":2353,"./ar-ma":4496,"./ar-ma.js":4496,"./ar-sa":2682,"./ar-sa.js":2682,"./ar-tn":9756,"./ar-tn.js":9756,"./ar.js":1509,"./az":5533,"./az.js":5533,"./be":8959,"./be.js":8959,"./bg":7777,"./bg.js":7777,"./bm":4903,"./bm.js":4903,"./bn":1290,"./bn.js":1290,"./bo":1545,"./bo.js":1545,"./br":1470,"./br.js":1470,"./bs":4429,"./bs.js":4429,"./ca":7306,"./ca.js":7306,"./cs":6464,"./cs.js":6464,"./cv":3635,"./cv.js":3635,"./cy":4226,"./cy.js":4226,"./da":3601,"./da.js":3601,"./de":7853,"./de-at":6111,"./de-at.js":6111,"./de-ch":4697,"./de-ch.js":4697,"./de.js":7853,"./dv":708,"./dv.js":708,"./el":4691,"./el.js":4691,"./en-au":3872,"./en-au.js":3872,"./en-ca":8298,"./en-ca.js":8298,"./en-gb":6195,"./en-gb.js":6195,"./en-ie":6584,"./en-ie.js":6584,"./en-nz":9402,"./en-nz.js":9402,"./eo":2934,"./eo.js":2934,"./es":7650,"./es-do":838,"./es-do.js":838,"./es-us":6575,"./es-us.js":6575,"./es.js":7650,"./et":3035,"./et.js":3035,"./eu":3508,"./eu.js":3508,"./fa":119,"./fa.js":119,"./fi":527,"./fi.js":527,"./fo":2477,"./fo.js":2477,"./fr":5498,"./fr-ca":6435,"./fr-ca.js":6435,"./fr-ch":7892,"./fr-ch.js":7892,"./fr.js":5498,"./fy":7071,"./fy.js":7071,"./gd":217,"./gd.js":217,"./gl":7329,"./gl.js":7329,"./gom-latn":3383,"./gom-latn.js":3383,"./gu":5050,"./gu.js":5050,"./he":1713,"./he.js":1713,"./hi":3861,"./hi.js":3861,"./hr":6308,"./hr.js":6308,"./hu":609,"./hu.js":609,"./hy-am":7160,"./hy-am.js":7160,"./id":4063,"./id.js":4063,"./is":9374,"./is.js":9374,"./it":8383,"./it.js":8383,"./ja":3827,"./ja.js":3827,"./jv":9722,"./jv.js":9722,"./ka":1794,"./ka.js":1794,"./kk":7088,"./kk.js":7088,"./km":6870,"./km.js":6870,"./kn":4451,"./kn.js":4451,"./ko":3164,"./ko.js":3164,"./ky":8474,"./ky.js":8474,"./lb":9680,"./lb.js":9680,"./lo":5867,"./lo.js":5867,"./lt":5766,"./lt.js":5766,"./lv":9532,"./lv.js":9532,"./me":8076,"./me.js":8076,"./mi":1848,"./mi.js":1848,"./mk":306,"./mk.js":306,"./ml":3739,"./ml.js":3739,"./mr":6169,"./mr.js":6169,"./ms":3386,"./ms-my":2297,"./ms-my.js":2297,"./ms.js":3386,"./mt":7075,"./mt.js":7075,"./my":2264,"./my.js":2264,"./nb":2274,"./nb.js":2274,"./ne":8235,"./ne.js":8235,"./nl":2572,"./nl-be":3784,"./nl-be.js":3784,"./nl.js":2572,"./nn":4566,"./nn.js":4566,"./pa-in":9849,"./pa-in.js":9849,"./pl":4418,"./pl.js":4418,"./pt":9834,"./pt-br":8303,"./pt-br.js":8303,"./pt.js":9834,"./ro":4457,"./ro.js":4457,"./ru":2271,"./ru.js":2271,"./sd":1221,"./sd.js":1221,"./se":3478,"./se.js":3478,"./si":7538,"./si.js":7538,"./sk":5784,"./sk.js":5784,"./sl":6637,"./sl.js":6637,"./sq":6794,"./sq.js":6794,"./sr":5719,"./sr-cyrl":3322,"./sr-cyrl.js":3322,"./sr.js":5719,"./ss":6e3,"./ss.js":6e3,"./sv":1011,"./sv.js":1011,"./sw":748,"./sw.js":748,"./ta":1025,"./ta.js":1025,"./te":1885,"./te.js":1885,"./tet":8861,"./tet.js":8861,"./th":5802,"./th.js":5802,"./tl-ph":9231,"./tl-ph.js":9231,"./tlh":1052,"./tlh.js":1052,"./tr":5096,"./tr.js":5096,"./tzl":9846,"./tzl.js":9846,"./tzm":1765,"./tzm-latn":7711,"./tzm-latn.js":7711,"./tzm.js":1765,"./uk":6618,"./uk.js":6618,"./ur":158,"./ur.js":158,"./uz":7609,"./uz-latn":2475,"./uz-latn.js":2475,"./uz.js":7609,"./vi":1135,"./vi.js":1135,"./x-pseudo":4051,"./x-pseudo.js":4051,"./yo":2218,"./yo.js":2218,"./zh-cn":2648,"./zh-cn.js":2648,"./zh-hk":1632,"./zh-hk.js":1632,"./zh-tw":304,"./zh-tw.js":304};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=5358},5093:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function o(e){t=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function s(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function u(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function p(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n0?"future":"past"];return P(n)?n(t):n.replace(/%s/i,t)}var $={};function K(e,t){var n=e.toLowerCase();$[n]=$[n+"s"]=$[t]=e}function Z(e){return"string"==typeof e?$[e]||$[e.toLowerCase()]:void 0}function Q(e){var t,n,r={};for(n in e)m(e,n)&&(t=Z(n))&&(r[t]=e[n]);return r}var X={};function ee(e,t){X[e]=t}function te(e){var t=[];for(var n in e)t.push({unit:n,priority:X[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}function ne(e,t,n){var r=""+Math.abs(e),a=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var re=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ae=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,oe={},ie={};function se(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(ie[e]=a),t&&(ie[t[0]]=function(){return ne(a.apply(this,arguments),t[1],t[2])}),n&&(ie[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function le(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function ue(e){var t,n,r=e.match(re);for(t=0,n=r.length;t=0&&ae.test(e);)e=e.replace(ae,r),ae.lastIndex=0,n-=1;return e}var pe=/\d/,me=/\d\d/,he=/\d{3}/,fe=/\d{4}/,_e=/[+-]?\d{6}/,ye=/\d\d?/,be=/\d\d\d\d?/,ve=/\d\d\d\d\d\d?/,ge=/\d{1,3}/,we=/\d{1,4}/,Me=/[+-]?\d{1,6}/,Le=/\d+/,ke=/[+-]?\d+/,Ye=/Z|[+-]\d\d:?\d\d/gi,Te=/Z|[+-]\d\d(?::?\d\d)?/gi,De=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Oe={};function je(e,t,n){Oe[e]=P(t)?t:function(e,r){return e&&n?n:t}}function Ee(e,t){return m(Oe,e)?Oe[e](t._strict,t._locale):new RegExp(xe(e))}function xe(e){return Pe(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a})))}function Pe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Ce={};function He(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),c(t)&&(r=function(e,n){n[t]=T(e)}),n=0;n68?1900:2e3)};var $e,Ke=Qe("FullYear",!0);function Ze(){return qe(this.year())}function Qe(e,t){return function(n){return null!=n?(et(this,e,n),a.updateOffset(this,t),this):Xe(this,e)}}function Xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function et(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&qe(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),at(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function tt(e){return P(this[e=Z(e)])?this[e]():this}function nt(e,t){if("object"==typeof e)for(var n=te(e=Q(e)),r=0;r=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function wt(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Mt(e,t,n){var r=7+t-n;return-(7+wt(e,0,r).getUTCDay()-t)%7+r-1}function Lt(e,t,n,r,a){var o,i,s=1+7*(t-1)+(7+n-r)%7+Mt(e,r,a);return s<=0?i=Ve(o=e-1)+s:s>Ve(e)?(o=e+1,i=s-Ve(e)):(o=e,i=s),{year:o,dayOfYear:i}}function kt(e,t,n){var r,a,o=Mt(e.year(),t,n),i=Math.floor((e.dayOfYear()-o-1)/7)+1;return i<1?r=i+Yt(a=e.year()-1,t,n):i>Yt(e.year(),t,n)?(r=i-Yt(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function Yt(e,t,n){var r=Mt(e,t,n),a=Mt(e+1,t,n);return(Ve(e)-r+a)/7}function Tt(e){return kt(e,this._week.dow,this._week.doy).week}se("w",["ww",2],"wo","week"),se("W",["WW",2],"Wo","isoWeek"),K("week","w"),K("isoWeek","W"),ee("week",5),ee("isoWeek",5),je("w",ye),je("ww",ye,me),je("W",ye),je("WW",ye,me),ze(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=T(e)}));var Dt={dow:0,doy:6};function St(){return this._week.dow}function Ot(){return this._week.doy}function jt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Et(e){var t=kt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function xt(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Pt(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}se("d",0,"do","day"),se("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),se("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),se("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),se("e",0,0,"weekday"),se("E",0,0,"isoWeekday"),K("day","d"),K("weekday","e"),K("isoWeekday","E"),ee("day",11),ee("weekday",11),ee("isoWeekday",11),je("d",ye),je("e",ye),je("E",ye),je("dd",(function(e,t){return t.weekdaysMinRegex(e)})),je("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),je("dddd",(function(e,t){return t.weekdaysRegex(e)})),ze(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:y(n).invalidWeekday=e})),ze(["d","e","E"],(function(e,t,n,r){t[r]=T(e)}));var Ct="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function Ht(e,t){return e?i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}var zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function At(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}var Nt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Ft(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Rt(e,t,n){var r,a,o,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=f([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=$e.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=$e.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=$e.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=$e.call(this._weekdaysParse,i))||-1!==(a=$e.call(this._shortWeekdaysParse,i))||-1!==(a=$e.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=$e.call(this._shortWeekdaysParse,i))||-1!==(a=$e.call(this._weekdaysParse,i))||-1!==(a=$e.call(this._minWeekdaysParse,i))?a:null:-1!==(a=$e.call(this._minWeekdaysParse,i))||-1!==(a=$e.call(this._weekdaysParse,i))||-1!==(a=$e.call(this._shortWeekdaysParse,i))?a:null}function Wt(e,t,n){var r,a,o;if(this._weekdaysParseExact)return Rt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=f([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function It(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=xt(e,this.localeData()),this.add(e-t,"d")):t}function Bt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Ut(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pt(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}var Jt=Se;function Gt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=Jt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}var Vt=Se;function qt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Vt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var $t=Se;function Kt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=$t),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Zt(){function e(e,t){return t.length-e.length}var t,n,r,a,o,i=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=f([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),o=this.weekdays(n,""),i.push(r),s.push(a),l.push(o),u.push(r),u.push(a),u.push(o);for(i.sort(e),s.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)s[t]=Pe(s[t]),l[t]=Pe(l[t]),u[t]=Pe(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Qt(){return this.hours()%12||12}function Xt(){return this.hours()||24}function en(e,t){se(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function tn(e,t){return t._meridiemParse}function nn(e){return"p"===(e+"").toLowerCase().charAt(0)}se("H",["HH",2],0,"hour"),se("h",["hh",2],0,Qt),se("k",["kk",2],0,Xt),se("hmm",0,0,(function(){return""+Qt.apply(this)+ne(this.minutes(),2)})),se("hmmss",0,0,(function(){return""+Qt.apply(this)+ne(this.minutes(),2)+ne(this.seconds(),2)})),se("Hmm",0,0,(function(){return""+this.hours()+ne(this.minutes(),2)})),se("Hmmss",0,0,(function(){return""+this.hours()+ne(this.minutes(),2)+ne(this.seconds(),2)})),en("a",!0),en("A",!1),K("hour","h"),ee("hour",13),je("a",tn),je("A",tn),je("H",ye),je("h",ye),je("k",ye),je("HH",ye,me),je("hh",ye,me),je("kk",ye,me),je("hmm",be),je("hmmss",ve),je("Hmm",be),je("Hmmss",ve),He(["H","HH"],We),He(["k","kk"],(function(e,t,n){var r=T(e);t[We]=24===r?0:r})),He(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),He(["h","hh"],(function(e,t,n){t[We]=T(e),y(n).bigHour=!0})),He("hmm",(function(e,t,n){var r=e.length-2;t[We]=T(e.substr(0,r)),t[Ie]=T(e.substr(r)),y(n).bigHour=!0})),He("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=T(e.substr(0,r)),t[Ie]=T(e.substr(r,2)),t[Be]=T(e.substr(a)),y(n).bigHour=!0})),He("Hmm",(function(e,t,n){var r=e.length-2;t[We]=T(e.substr(0,r)),t[Ie]=T(e.substr(r))})),He("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=T(e.substr(0,r)),t[Ie]=T(e.substr(r,2)),t[Be]=T(e.substr(a))}));var rn=/[ap]\.?m?\.?/i;function an(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var on,sn=Qe("Hours",!0),ln={calendar:A,longDateFormat:F,invalidDate:W,ordinal:B,dayOfMonthOrdinalParse:U,relativeTime:G,months:it,monthsShort:lt,week:Dt,weekdays:Ct,weekdaysMin:Nt,weekdaysShort:zt,meridiemParse:rn},un={},cn={};function dn(e){return e?e.toLowerCase().replace("_","-"):e}function pn(e){for(var t,n,r,a,o=0;o0;){if(r=mn(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&D(a,n,!0)>=t-1)break;t--}o++}return null}function mn(t){var r=null;if(!un[t]&&e&&e.exports)try{r=on._abbr,n(5358)("./"+t),hn(r)}catch(e){}return un[t]}function hn(e,t){var n;return e&&(n=u(t)?yn(e):fn(e,t))&&(on=n),on._abbr}function fn(e,t){if(null!==t){var n=ln;if(t.abbr=e,null!=un[e])x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=un[e]._config;else if(null!=t.parentLocale){if(null==un[t.parentLocale])return cn[t.parentLocale]||(cn[t.parentLocale]=[]),cn[t.parentLocale].push({name:e,config:t}),null;n=un[t.parentLocale]._config}return un[e]=new z(H(n,t)),cn[e]&&cn[e].forEach((function(e){fn(e.name,e.config)})),hn(e),un[e]}return delete un[e],null}function _n(e,t){if(null!=t){var n,r,a=ln;null!=(r=mn(e))&&(a=r._config),(n=new z(t=H(a,t))).parentLocale=un[e],un[e]=n,hn(e)}else null!=un[e]&&(null!=un[e].parentLocale?un[e]=un[e].parentLocale:null!=un[e]&&delete un[e]);return un[e]}function yn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return on;if(!i(e)){if(t=mn(e))return t;e=[e]}return pn(e)}function bn(){return j(un)}function vn(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[Fe]<0||n[Fe]>11?Fe:n[Re]<1||n[Re]>at(n[Ne],n[Fe])?Re:n[We]<0||n[We]>24||24===n[We]&&(0!==n[Ie]||0!==n[Be]||0!==n[Ue])?We:n[Ie]<0||n[Ie]>59?Ie:n[Be]<0||n[Be]>59?Be:n[Ue]<0||n[Ue]>999?Ue:-1,y(e)._overflowDayOfYear&&(tRe)&&(t=Re),y(e)._overflowWeeks&&-1===t&&(t=Je),y(e)._overflowWeekday&&-1===t&&(t=Ge),y(e).overflow=t),e}function gn(e,t,n){return null!=e?e:null!=t?t:n}function wn(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Mn(e){var t,n,r,a,o,i=[];if(!e._d){for(r=wn(e),e._w&&null==e._a[Re]&&null==e._a[Fe]&&Ln(e),null!=e._dayOfYear&&(o=gn(e._a[Ne],r[Ne]),(e._dayOfYear>Ve(o)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=wt(o,0,e._dayOfYear),e._a[Fe]=n.getUTCMonth(),e._a[Re]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[We]&&0===e._a[Ie]&&0===e._a[Be]&&0===e._a[Ue]&&(e._nextDay=!0,e._a[We]=0),e._d=(e._useUTC?wt:gt).apply(null,i),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[We]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(y(e).weekdayMismatch=!0)}}function Ln(e){var t,n,r,a,o,i,s,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)o=1,i=4,n=gn(t.GG,e._a[Ne],kt(qn(),1,4).year),r=gn(t.W,1),((a=gn(t.E,1))<1||a>7)&&(l=!0);else{o=e._locale._week.dow,i=e._locale._week.doy;var u=kt(qn(),o,i);n=gn(t.gg,e._a[Ne],u.year),r=gn(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+o,(t.e<0||t.e>6)&&(l=!0)):a=o}r<1||r>Yt(n,o,i)?y(e)._overflowWeeks=!0:null!=l?y(e)._overflowWeekday=!0:(s=Lt(n,r,a,o,i),e._a[Ne]=s.year,e._dayOfYear=s.dayOfYear)}var kn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Tn=/Z|[+-]\d\d(?::?\d\d)?/,Dn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Sn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((\-?\d+)/i;function jn(e){var t,n,r,a,o,i,s=e._i,l=kn.exec(s)||Yn.exec(s);if(l){for(y(e).iso=!0,t=0,n=Dn.length;t0&&y(e).unusedInput.push(i),s=s.slice(s.indexOf(n)+n.length),u+=n.length),ie[o]?(n?y(e).empty=!1:y(e).unusedTokens.push(o),Ae(o,n,e)):e._strict&&!n&&y(e).unusedTokens.push(o);y(e).charsLeftOver=l-u,s.length>0&&y(e).unusedInput.push(s),e._a[We]<=12&&!0===y(e).bigHour&&e._a[We]>0&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[We]=Wn(e._locale,e._a[We],e._meridiem),Mn(e),vn(e)}else Nn(e);else jn(e)}function Wn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function In(e){var t,n,r,a,o;if(0===e._f.length)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:v()}));function Zn(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return qn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function gr(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Jn(e))._a){var t=e._isUTC?f(e._a):qn(e._a);this._isDSTShifted=this.isValid()&&D(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function wr(){return!!this.isValid()&&!this._isUTC}function Mr(){return!!this.isValid()&&this._isUTC}function Lr(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var kr=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Yr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Tr(e,t){var n,r,a,o=e,i=null;return ir(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(o={},t?o[t]=e:o.milliseconds=e):(i=kr.exec(e))?(n="-"===i[1]?-1:1,o={y:0,d:T(i[Re])*n,h:T(i[We])*n,m:T(i[Ie])*n,s:T(i[Be])*n,ms:T(sr(1e3*i[Ue]))*n}):(i=Yr.exec(e))?(n="-"===i[1]?-1:(i[1],1),o={y:Dr(i[2],n),M:Dr(i[3],n),w:Dr(i[4],n),d:Dr(i[5],n),h:Dr(i[6],n),m:Dr(i[7],n),s:Dr(i[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(a=Or(qn(o.from),qn(o.to)),(o={}).ms=a.milliseconds,o.M=a.months),r=new or(o),ir(e)&&m(e,"_locale")&&(r._locale=e._locale),r}function Dr(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Sr(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Or(e,t){var n;return e.isValid()&&t.isValid()?(t=dr(t,e),e.isBefore(t)?n=Sr(e,t):((n=Sr(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function jr(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(x(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Er(this,Tr(n="string"==typeof n?+n:n,r),e),this}}function Er(e,t,n,r){var o=t._milliseconds,i=sr(t._days),s=sr(t._months);e.isValid()&&(r=null==r||r,s&&pt(e,Xe(e,"Month")+s*n),i&&et(e,"Date",Xe(e,"Date")+i*n),o&&e._d.setTime(e._d.valueOf()+o*n),r&&a.updateOffset(e,i||s))}Tr.fn=or.prototype,Tr.invalid=ar;var xr=jr(1,"add"),Pr=jr(-1,"subtract");function Cr(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Hr(e,t){var n=e||qn(),r=dr(n,this).startOf("day"),o=a.calendarFormat(this,r)||"sameElse",i=t&&(P(t[o])?t[o].call(this,n):t[o]);return this.format(i||this.localeData().calendar(o,this,qn(n)))}function zr(){return new L(this)}function Ar(e,t){var n=k(e)?e:qn(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=Z(u(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()9999?ce(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):P(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this._d.valueOf()).toISOString().replace("Z",ce(n,"Z")):ce(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Vr(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",o=t+'[")]';return this.format(n+r+a+o)}function qr(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=ce(this,e);return this.localeData().postformat(t)}function $r(e,t){return this.isValid()&&(k(e)&&e.isValid()||qn(e).isValid())?Tr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Kr(e){return this.from(qn(),e)}function Zr(e,t){return this.isValid()&&(k(e)&&e.isValid()||qn(e).isValid())?Tr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Qr(e){return this.to(qn(),e)}function Xr(e){var t;return void 0===e?this._locale._abbr:(null!=(t=yn(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ea=O("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function ta(){return this._locale}function na(e){switch(e=Z(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function ra(e){return void 0===(e=Z(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function aa(){return this._d.valueOf()-6e4*(this._offset||0)}function oa(){return Math.floor(this.valueOf()/1e3)}function ia(){return new Date(this.valueOf())}function sa(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function la(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function ua(){return this.isValid()?this.toISOString():null}function ca(){return b(this)}function da(){return h({},y(this))}function pa(){return y(this).overflow}function ma(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function ha(e,t){se(0,[e,e.length],0,t)}function fa(e){return va.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function _a(e){return va.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function ya(){return Yt(this.year(),1,4)}function ba(){var e=this.localeData()._week;return Yt(this.year(),e.dow,e.doy)}function va(e,t,n,r,a){var o;return null==e?kt(this,r,a).year:(t>(o=Yt(e,r,a))&&(t=o),ga.call(this,e,t,n,r,a))}function ga(e,t,n,r,a){var o=Lt(e,t,n,r,a),i=wt(o.year,0,o.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}function wa(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}se(0,["gg",2],0,(function(){return this.weekYear()%100})),se(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ha("gggg","weekYear"),ha("ggggg","weekYear"),ha("GGGG","isoWeekYear"),ha("GGGGG","isoWeekYear"),K("weekYear","gg"),K("isoWeekYear","GG"),ee("weekYear",1),ee("isoWeekYear",1),je("G",ke),je("g",ke),je("GG",ye,me),je("gg",ye,me),je("GGGG",we,fe),je("gggg",we,fe),je("GGGGG",Me,_e),je("ggggg",Me,_e),ze(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=T(e)})),ze(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),se("Q",0,"Qo","quarter"),K("quarter","Q"),ee("quarter",7),je("Q",pe),He("Q",(function(e,t){t[Fe]=3*(T(e)-1)})),se("D",["DD",2],"Do","date"),K("date","D"),ee("date",9),je("D",ye),je("DD",ye,me),je("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),He(["D","DD"],Re),He("Do",(function(e,t){t[Re]=T(e.match(ye)[0])}));var Ma=Qe("Date",!0);function La(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}se("DDD",["DDDD",3],"DDDo","dayOfYear"),K("dayOfYear","DDD"),ee("dayOfYear",4),je("DDD",ge),je("DDDD",he),He(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=T(e)})),se("m",["mm",2],0,"minute"),K("minute","m"),ee("minute",14),je("m",ye),je("mm",ye,me),He(["m","mm"],Ie);var ka=Qe("Minutes",!1);se("s",["ss",2],0,"second"),K("second","s"),ee("second",15),je("s",ye),je("ss",ye,me),He(["s","ss"],Be);var Ya,Ta=Qe("Seconds",!1);for(se("S",0,0,(function(){return~~(this.millisecond()/100)})),se(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),se(0,["SSS",3],0,"millisecond"),se(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),se(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),se(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),se(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),se(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),se(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),K("millisecond","ms"),ee("millisecond",16),je("S",ge,pe),je("SS",ge,me),je("SSS",ge,he),Ya="SSSS";Ya.length<=9;Ya+="S")je(Ya,Le);function Da(e,t){t[Ue]=T(1e3*("0."+e))}for(Ya="S";Ya.length<=9;Ya+="S")He(Ya,Da);var Sa=Qe("Milliseconds",!1);function Oa(){return this._isUTC?"UTC":""}function ja(){return this._isUTC?"Coordinated Universal Time":""}se("z",0,0,"zoneAbbr"),se("zz",0,0,"zoneName");var Ea=L.prototype;function xa(e){return qn(1e3*e)}function Pa(){return qn.apply(null,arguments).parseZone()}function Ca(e){return e}Ea.add=xr,Ea.calendar=Hr,Ea.clone=zr,Ea.diff=Br,Ea.endOf=ra,Ea.format=qr,Ea.from=$r,Ea.fromNow=Kr,Ea.to=Zr,Ea.toNow=Qr,Ea.get=tt,Ea.invalidAt=pa,Ea.isAfter=Ar,Ea.isBefore=Nr,Ea.isBetween=Fr,Ea.isSame=Rr,Ea.isSameOrAfter=Wr,Ea.isSameOrBefore=Ir,Ea.isValid=ca,Ea.lang=ea,Ea.locale=Xr,Ea.localeData=ta,Ea.max=Kn,Ea.min=$n,Ea.parsingFlags=da,Ea.set=nt,Ea.startOf=na,Ea.subtract=Pr,Ea.toArray=sa,Ea.toObject=la,Ea.toDate=ia,Ea.toISOString=Gr,Ea.inspect=Vr,Ea.toJSON=ua,Ea.toString=Jr,Ea.unix=oa,Ea.valueOf=aa,Ea.creationData=ma,Ea.year=Ke,Ea.isLeapYear=Ze,Ea.weekYear=fa,Ea.isoWeekYear=_a,Ea.quarter=Ea.quarters=wa,Ea.month=mt,Ea.daysInMonth=ht,Ea.week=Ea.weeks=jt,Ea.isoWeek=Ea.isoWeeks=Et,Ea.weeksInYear=ba,Ea.isoWeeksInYear=ya,Ea.date=Ma,Ea.day=Ea.days=It,Ea.weekday=Bt,Ea.isoWeekday=Ut,Ea.dayOfYear=La,Ea.hour=Ea.hours=sn,Ea.minute=Ea.minutes=ka,Ea.second=Ea.seconds=Ta,Ea.millisecond=Ea.milliseconds=Sa,Ea.utcOffset=mr,Ea.utc=fr,Ea.local=_r,Ea.parseZone=yr,Ea.hasAlignedHourOffset=br,Ea.isDST=vr,Ea.isLocal=wr,Ea.isUtcOffset=Mr,Ea.isUtc=Lr,Ea.isUTC=Lr,Ea.zoneAbbr=Oa,Ea.zoneName=ja,Ea.dates=O("dates accessor is deprecated. Use date instead.",Ma),Ea.months=O("months accessor is deprecated. Use month instead",mt),Ea.years=O("years accessor is deprecated. Use year instead",Ke),Ea.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",hr),Ea.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",gr);var Ha=z.prototype;function za(e,t,n,r){var a=yn(),o=f().set(r,t);return a[n](o,e)}function Aa(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return za(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=za(e,r,n,"month");return a}function Na(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,o=yn(),i=e?o._week.dow:0;if(null!=n)return za(t,(n+i)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=za(t,(a+i)%7,r,"day");return s}function Fa(e,t){return Aa(e,t,"months")}function Ra(e,t){return Aa(e,t,"monthsShort")}function Wa(e,t,n){return Na(e,t,n,"weekdays")}function Ia(e,t,n){return Na(e,t,n,"weekdaysShort")}function Ba(e,t,n){return Na(e,t,n,"weekdaysMin")}Ha.calendar=N,Ha.longDateFormat=R,Ha.invalidDate=I,Ha.ordinal=J,Ha.preparse=Ca,Ha.postformat=Ca,Ha.relativeTime=V,Ha.pastFuture=q,Ha.set=C,Ha.months=st,Ha.monthsShort=ut,Ha.monthsParse=dt,Ha.monthsRegex=bt,Ha.monthsShortRegex=_t,Ha.week=Tt,Ha.firstDayOfYear=Ot,Ha.firstDayOfWeek=St,Ha.weekdays=Ht,Ha.weekdaysMin=Ft,Ha.weekdaysShort=At,Ha.weekdaysParse=Wt,Ha.weekdaysRegex=Gt,Ha.weekdaysShortRegex=qt,Ha.weekdaysMinRegex=Kt,Ha.isPM=nn,Ha.meridiem=an,hn("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===T(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=O("moment.lang is deprecated. Use moment.locale instead.",hn),a.langData=O("moment.langData is deprecated. Use moment.localeData instead.",yn);var Ua=Math.abs;function Ja(){var e=this._data;return this._milliseconds=Ua(this._milliseconds),this._days=Ua(this._days),this._months=Ua(this._months),e.milliseconds=Ua(e.milliseconds),e.seconds=Ua(e.seconds),e.minutes=Ua(e.minutes),e.hours=Ua(e.hours),e.months=Ua(e.months),e.years=Ua(e.years),this}function Ga(e,t,n,r){var a=Tr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function Va(e,t){return Ga(this,e,t,1)}function qa(e,t){return Ga(this,e,t,-1)}function $a(e){return e<0?Math.floor(e):Math.ceil(e)}function Ka(){var e,t,n,r,a,o=this._milliseconds,i=this._days,s=this._months,l=this._data;return o>=0&&i>=0&&s>=0||o<=0&&i<=0&&s<=0||(o+=864e5*$a(Qa(s)+i),i=0,s=0),l.milliseconds=o%1e3,e=Y(o/1e3),l.seconds=e%60,t=Y(e/60),l.minutes=t%60,n=Y(t/60),l.hours=n%24,i+=Y(n/24),s+=a=Y(Za(i)),i-=$a(Qa(a)),r=Y(s/12),s%=12,l.days=i,l.months=s,l.years=r,this}function Za(e){return 4800*e/146097}function Qa(e){return 146097*e/4800}function Xa(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=Z(e))||"year"===e)return t=this._days+r/864e5,n=this._months+Za(t),"month"===e?n:n/12;switch(t=this._days+Math.round(Qa(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function eo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*T(this._months/12):NaN}function to(e){return function(){return this.as(e)}}var no=to("ms"),ro=to("s"),ao=to("m"),oo=to("h"),io=to("d"),so=to("w"),lo=to("M"),uo=to("y");function co(){return Tr(this)}function po(e){return e=Z(e),this.isValid()?this[e+"s"]():NaN}function mo(e){return function(){return this.isValid()?this._data[e]:NaN}}var ho=mo("milliseconds"),fo=mo("seconds"),_o=mo("minutes"),yo=mo("hours"),bo=mo("days"),vo=mo("months"),go=mo("years");function wo(){return Y(this.days()/7)}var Mo=Math.round,Lo={ss:44,s:45,m:45,h:22,d:26,M:11};function ko(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function Yo(e,t,n){var r=Tr(e).abs(),a=Mo(r.as("s")),o=Mo(r.as("m")),i=Mo(r.as("h")),s=Mo(r.as("d")),l=Mo(r.as("M")),u=Mo(r.as("y")),c=a<=Lo.ss&&["s",a]||a0,c[4]=n,ko.apply(null,c)}function To(e){return void 0===e?Mo:"function"==typeof e&&(Mo=e,!0)}function Do(e,t){return void 0!==Lo[e]&&(void 0===t?Lo[e]:(Lo[e]=t,"s"===e&&(Lo.ss=t-1),!0))}function So(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=Yo(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}var Oo=Math.abs;function jo(e){return(e>0)-(e<0)||+e}function Eo(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Oo(this._milliseconds)/1e3,r=Oo(this._days),a=Oo(this._months);e=Y(n/60),t=Y(e/60),n%=60,e%=60;var o=Y(a/12),i=a%=12,s=r,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var p=d<0?"-":"",m=jo(this._months)!==jo(d)?"-":"",h=jo(this._days)!==jo(d)?"-":"",f=jo(this._milliseconds)!==jo(d)?"-":"";return p+"P"+(o?m+o+"Y":"")+(i?m+i+"M":"")+(s?h+s+"D":"")+(l||u||c?"T":"")+(l?f+l+"H":"")+(u?f+u+"M":"")+(c?f+c+"S":"")}var xo=or.prototype;return xo.isValid=rr,xo.abs=Ja,xo.add=Va,xo.subtract=qa,xo.as=Xa,xo.asMilliseconds=no,xo.asSeconds=ro,xo.asMinutes=ao,xo.asHours=oo,xo.asDays=io,xo.asWeeks=so,xo.asMonths=lo,xo.asYears=uo,xo.valueOf=eo,xo._bubble=Ka,xo.clone=co,xo.get=po,xo.milliseconds=ho,xo.seconds=fo,xo.minutes=_o,xo.hours=yo,xo.days=bo,xo.weeks=wo,xo.months=vo,xo.years=go,xo.humanize=So,xo.toISOString=Eo,xo.toString=Eo,xo.toJSON=Eo,xo.locale=Xr,xo.localeData=ta,xo.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Eo),xo.lang=ea,se("X",0,0,"unix"),se("x",0,0,"valueOf"),je("x",ke),je("X",De),He("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),He("x",(function(e,t,n){n._d=new Date(T(e))})),a.version="2.20.1",o(qn),a.fn=Ea,a.min=Qn,a.max=Xn,a.now=er,a.utc=f,a.unix=xa,a.months=Fa,a.isDate=d,a.locale=hn,a.invalid=v,a.duration=Tr,a.isMoment=k,a.weekdays=Wa,a.parseZone=Pa,a.localeData=yn,a.isDuration=ir,a.monthsShort=Ra,a.weekdaysMin=Ba,a.defineLocale=fn,a.updateLocale=_n,a.locales=bn,a.weekdaysShort=Ia,a.normalizeUnits=Z,a.relativeTimeRounding=To,a.relativeTimeThreshold=Do,a.calendarFormat=Cr,a.prototype=Ea,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},a}()},3333:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>$});var r,a,o,i,s,l,u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{};function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d(){return a?r:(a=1,r={languageTag:"en-US",delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},spaceSeparated:!1,ordinal:function(e){let t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},bytes:{binarySuffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],decimalSuffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},currency:{symbol:"$",position:"prefix",code:"USD"},currencyFormat:{thousandSeparated:!0,totalLength:4,spaceSeparated:!0,spaceSeparatedCurrency:!0},formats:{fourDigits:{totalLength:4,spaceSeparated:!0},fullWithTwoDecimals:{output:"currency",thousandSeparated:!0,mantissa:2},fullWithTwoDecimalsNoCurrency:{thousandSeparated:!0,mantissa:2},fullWithNoDecimals:{output:"currency",thousandSeparated:!0,mantissa:0}}})}function p(){if(i)return o;i=1;const e=[{key:"ZiB",factor:Math.pow(1024,7)},{key:"ZB",factor:Math.pow(1e3,7)},{key:"YiB",factor:Math.pow(1024,8)},{key:"YB",factor:Math.pow(1e3,8)},{key:"TiB",factor:Math.pow(1024,4)},{key:"TB",factor:Math.pow(1e3,4)},{key:"PiB",factor:Math.pow(1024,5)},{key:"PB",factor:Math.pow(1e3,5)},{key:"MiB",factor:Math.pow(1024,2)},{key:"MB",factor:Math.pow(1e3,2)},{key:"KiB",factor:Math.pow(1024,1)},{key:"KB",factor:Math.pow(1e3,1)},{key:"GiB",factor:Math.pow(1024,3)},{key:"GB",factor:Math.pow(1e3,3)},{key:"EiB",factor:Math.pow(1024,6)},{key:"EB",factor:Math.pow(1e3,6)},{key:"B",factor:1}];function t(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}function n(r,a,o,i,s,l,u){if(!isNaN(+r))return+r;let c="",d=r.replace(/(^[^(]*)\((.*)\)([^)]*$)/,"$1$2$3");if(d!==r)return-1*n(d,a,o,i,s,l);for(let t=0;t{h[l[e]]=e}));let f=Object.keys(h).sort().reverse(),_=f.length;for(let e=0;e<_;e++){let t=f[e],u=h[t];if(c=r.replace(t,""),c!==r){let e;switch(u){case"thousand":e=Math.pow(10,3);break;case"million":e=Math.pow(10,6);break;case"billion":e=Math.pow(10,9);break;case"trillion":e=Math.pow(10,12)}return n(c,a,o,i,s,l)*e}}}function r(e,r,a="",o,i,s,l){if(""===e)return;if(e===i)return 0;let u=function(e,n,r){let a=e.replace(r,"");return a=a.replace(new RegExp(`([0-9])${t(n.thousands)}([0-9])`,"g"),"$1$2"),a=a.replace(n.decimal,"."),a}(e,r,a);return n(u,r,a,o,i,s)}return o={unformat:function(e,t){const n=y();let a,o=n.currentDelimiters(),i=n.currentCurrency().symbol,s=n.currentOrdinal(),l=n.getZeroFormat(),u=n.currentAbbreviations();if("string"==typeof e)a=function(e,t){if(!e.indexOf(":")||":"===t.thousands)return!1;let n=e.split(":");if(3!==n.length)return!1;let r=+n[0],a=+n[1],o=+n[2];return!isNaN(r)&&!isNaN(a)&&!isNaN(o)}(e,o)?function(e){let t=e.split(":"),n=+t[0],r=+t[1];return+t[2]+60*r+3600*n}(e):r(e,o,i,s,l,u);else{if("number"!=typeof e)return;a=e}if(void 0!==a)return a}},o}function m(){if(l)return s;l=1;let e=p();const t=/^[a-z]{2,3}(-[a-zA-Z]{4})?(-([A-Z]{2}|[0-9]{3}))?$/,n={output:{type:"string",validValues:["currency","percent","byte","time","ordinal","number"]},base:{type:"string",validValues:["decimal","binary","general"],restriction:(e,t)=>"byte"===t.output,message:"`base` must be provided only when the output is `byte`",mandatory:e=>"byte"===e.output},characteristic:{type:"number",restriction:e=>e>=0,message:"value must be positive"},prefix:"string",postfix:"string",forceAverage:{type:"string",validValues:["trillion","billion","million","thousand"]},average:"boolean",lowPrecision:{type:"boolean",restriction:(e,t)=>!0===t.average,message:"`lowPrecision` must be provided only when the option `average` is set"},currencyPosition:{type:"string",validValues:["prefix","infix","postfix"]},currencySymbol:"string",totalLength:{type:"number",restrictions:[{restriction:e=>e>=0,message:"value must be positive"},{restriction:(e,t)=>!t.exponential,message:"`totalLength` is incompatible with `exponential`"}]},mantissa:{type:"number",restriction:e=>e>=0,message:"value must be positive"},optionalMantissa:"boolean",trimMantissa:"boolean",roundingFunction:"function",optionalCharacteristic:"boolean",thousandSeparated:"boolean",spaceSeparated:"boolean",spaceSeparatedCurrency:"boolean",spaceSeparatedAbbreviation:"boolean",abbreviations:{type:"object",children:{thousand:"string",million:"string",billion:"string",trillion:"string"}},negative:{type:"string",validValues:["sign","parenthesis"]},forceSign:"boolean",exponential:{type:"boolean"},prefixSymbol:{type:"boolean",restriction:(e,t)=>"percent"===t.output,message:"`prefixSymbol` can be provided only when the output is `percent`"}},r={languageTag:{type:"string",mandatory:!0,restriction:e=>e.match(t),message:"the language tag must follow the BCP 47 specification (see https://tools.ieft.org/html/bcp47)"},delimiters:{type:"object",children:{thousands:"string",decimal:"string",thousandsSize:"number"},mandatory:!0},abbreviations:{type:"object",children:{thousand:{type:"string",mandatory:!0},million:{type:"string",mandatory:!0},billion:{type:"string",mandatory:!0},trillion:{type:"string",mandatory:!0}},mandatory:!0},spaceSeparated:"boolean",spaceSeparatedCurrency:"boolean",ordinal:{type:"function",mandatory:!0},bytes:{type:"object",children:{binarySuffixes:"object",decimalSuffixes:"object"}},currency:{type:"object",children:{symbol:"string",position:"string",code:"string"},mandatory:!0},defaults:"format",ordinalFormat:"format",byteFormat:"format",percentageFormat:"format",currencyFormat:"format",timeDefaults:"format",formats:{type:"object",children:{fourDigits:{type:"format",mandatory:!0},fullWithTwoDecimals:{type:"format",mandatory:!0},fullWithTwoDecimalsNoCurrency:{type:"format",mandatory:!0},fullWithNoDecimals:{type:"format",mandatory:!0}}}};function a(t){return void 0!==e.unformat(t)}function o(e,t,r,a=!1){let i=Object.keys(e).map((a=>{if(!t[a])return console.error(`${r} Invalid key: ${a}`),!1;let i=e[a],s=t[a];if("string"==typeof s&&(s={type:s}),"format"===s.type){if(!o(i,n,`[Validate ${a}]`,!0))return!1}else if(typeof i!==s.type)return console.error(`${r} ${a} type mismatched: "${s.type}" expected, "${typeof i}" provided`),!1;if(s.restrictions&&s.restrictions.length){let t=s.restrictions.length;for(let n=0;n{let a=t[n];if("string"==typeof a&&(a={type:a}),a.mandatory){let t=a.mandatory;if("function"==typeof t&&(t=t(e)),t&&void 0===e[n])return console.error(`${r} Missing mandatory key "${n}"`),!1}return!0}))),i.reduce(((e,t)=>e&&t),!0)}function i(e){return o(e,n,"[Validate format]")}return s={validate:function(e,t){let n=a(e),r=i(t);return n&&r},validateFormat:i,validateInput:a,validateLanguage:function(e){return o(e,r,"[Validate language]")}},s}var h,f,_={parseFormat:function(e,t={}){return"string"!=typeof e?e:(function(e,t){if(-1===e.indexOf("$")){if(-1===e.indexOf("%"))return-1!==e.indexOf("bd")?(t.output="byte",void(t.base="general")):-1!==e.indexOf("b")?(t.output="byte",void(t.base="binary")):-1!==e.indexOf("d")?(t.output="byte",void(t.base="decimal")):void(-1===e.indexOf(":")?-1!==e.indexOf("o")&&(t.output="ordinal"):t.output="time");t.output="percent"}else t.output="currency"}(e=function(e,t){let n=e.match(/{([^}]*)}$/);return n?(t.postfix=n[1],e.slice(0,-n[0].length)):e}(e=function(e,t){let n=e.match(/^{([^}]*)}/);return n?(t.prefix=n[1],e.slice(n[0].length)):e}(e,t),t),t),function(e,t){let n=e.match(/[1-9]+[0-9]*/);n&&(t.totalLength=+n[0])}(e,t),function(e,t){let n=e.split(".")[0].match(/0+/);n&&(t.characteristic=n[0].length)}(e,t),function(e,t){if(-1!==e.indexOf(".")){let n=e.split(".")[0];t.optionalCharacteristic=-1===n.indexOf("0")}}(e,t),function(e,t){-1!==e.indexOf("a")&&(t.average=!0)}(e,t),function(e,t){-1!==e.indexOf("K")?t.forceAverage="thousand":-1!==e.indexOf("M")?t.forceAverage="million":-1!==e.indexOf("B")?t.forceAverage="billion":-1!==e.indexOf("T")&&(t.forceAverage="trillion")}(e,t),function(e,t){let n=e.split(".")[1];if(n){let e=n.match(/0+/);e&&(t.mantissa=e[0].length)}}(e,t),function(e,t){e.match(/\[\.]/)?t.optionalMantissa=!0:e.match(/\./)&&(t.optionalMantissa=!1)}(e,t),function(e,t){const n=e.split(".")[1];n&&(t.trimMantissa=-1!==n.indexOf("["))}(e,t),function(e,t){-1!==e.indexOf(",")&&(t.thousandSeparated=!0)}(e,t),function(e,t){-1!==e.indexOf(" ")&&(t.spaceSeparated=!0,t.spaceSeparatedCurrency=!0,(t.average||t.forceAverage)&&(t.spaceSeparatedAbbreviation=!0))}(e,t),function(e,t){e.match(/^\+?\([^)]*\)$/)&&(t.negative="parenthesis"),e.match(/^\+?-/)&&(t.negative="sign")}(e,t),function(e,t){e.match(/^\+/)&&(t.forceSign=!0)}(e,t),t)}};function y(){if(f)return h;f=1;const e=d(),t=m(),n=_;let r,a={},o={},i=null,s={};function l(e){r=e}function u(){return o[r]}return a.languages=()=>Object.assign({},o),a.currentLanguage=()=>r,a.currentBytes=()=>u().bytes||{},a.currentCurrency=()=>u().currency,a.currentAbbreviations=()=>u().abbreviations,a.currentDelimiters=()=>u().delimiters,a.currentOrdinal=()=>u().ordinal,a.currentDefaults=()=>Object.assign({},u().defaults,s),a.currentOrdinalDefaultFormat=()=>Object.assign({},a.currentDefaults(),u().ordinalFormat),a.currentByteDefaultFormat=()=>Object.assign({},a.currentDefaults(),u().byteFormat),a.currentPercentageDefaultFormat=()=>Object.assign({},a.currentDefaults(),u().percentageFormat),a.currentCurrencyDefaultFormat=()=>Object.assign({},a.currentDefaults(),u().currencyFormat),a.currentTimeDefaultFormat=()=>Object.assign({},a.currentDefaults(),u().timeFormat),a.setDefaults=e=>{e=n.parseFormat(e),t.validateFormat(e)&&(s=e)},a.getZeroFormat=()=>i,a.setZeroFormat=e=>i="string"==typeof e?e:null,a.hasZeroFormat=()=>null!==i,a.languageData=e=>{if(e){if(o[e])return o[e];throw new Error(`Unknown tag "${e}"`)}return u()},a.registerLanguage=(e,n=!1)=>{if(!t.validateLanguage(e))throw new Error("Invalid language data");o[e.languageTag]=e,n&&l(e.languageTag)},a.setLanguage=(t,n=e.languageTag)=>{if(!o[t]){let e=t.split("-")[0],r=Object.keys(o).find((t=>t.split("-")[0]===e));return o[r]?void l(r):void l(n)}l(t)},a.registerLanguage(e),r=e.languageTag,h=a}function b(e,t){e.forEach((e=>{let n;try{n=function(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}(`../languages/${e}`)}catch(t){console.error(`Unable to load "${e}". No matching language file found.`)}n&&t.registerLanguage(n)}))}var v,g={exports:{}};v=g,function(e){var t,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,r=Math.ceil,a=Math.floor,o="[BigNumber Error] ",i=o+"Number primitive has more than 15 significant digits: ",s=1e14,l=14,u=9007199254740991,c=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,p=1e9;function m(e){var t=0|e;return e>0||e===t?t:t-1}function h(e){for(var t,n,r=1,a=e.length,o=e[0]+"";ru^n?1:-1;for(s=(l=a.length)<(u=o.length)?l:u,i=0;io[i]^n?1:-1;return l==u?0:l>u^n?1:-1}function _(e,t,n,r){if(en||e!==a(e))throw Error(o+(r||"Argument")+("number"==typeof e?en?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function y(e){var t=e.c.length-1;return m(e.e/l)==t&&e.c[t]%2!=0}function b(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function g(e,t,n){var r,a;if(t<0){for(a=n+".";++t;a+=n);e=a+e}else if(++t>(r=e.length)){for(a=n,t-=r;--t;a+=n);e+=a}else tA?f.c=f.e=null:e.e=10;d/=10,c++);return void(c>A?f.c=f.e=null:(f.e=c,f.c=[e]))}h=String(e)}else{if(!n.test(h=String(e)))return M(f,h,p);f.s=45==h.charCodeAt(0)?(h=h.slice(1),-1):1}(c=h.indexOf("."))>-1&&(h=h.replace(".","")),(d=h.search(/e/i))>0?(c<0&&(c=d),c+=+h.slice(d+1),h=h.substring(0,d)):c<0&&(c=h.length)}else{if(_(t,2,I.length,"Base"),10==t&&B)return q(f=new U(e),x+f.e+1,P);if(h=String(e),p="number"==typeof e){if(0*e!=0)return M(f,h,p,t);if(f.s=1/e<0?(h=h.slice(1),-1):1,U.DEBUG&&h.replace(/^0\.0*|\./,"").length>15)throw Error(i+e)}else f.s=45===h.charCodeAt(0)?(h=h.slice(1),-1):1;for(r=I.slice(0,t),c=d=0,m=h.length;dc){c=m;continue}}else if(!s&&(h==h.toUpperCase()&&(h=h.toLowerCase())||h==h.toLowerCase()&&(h=h.toUpperCase()))){s=!0,d=-1,c=0;continue}return M(f,String(e),p,t)}p=!1,(c=(h=w(h,t,10,f.s)).indexOf("."))>-1?h=h.replace(".",""):c=h.length}for(d=0;48===h.charCodeAt(d);d++);for(m=h.length;48===h.charCodeAt(--m););if(h=h.slice(d,++m)){if(m-=d,p&&U.DEBUG&&m>15&&(e>u||e!==a(e)))throw Error(i+f.s*e);if((c=c-d-1)>A)f.c=f.e=null;else if(c=H)?b(l,i):g(l,i,"0");else if(o=(e=q(new U(e),t,n)).e,s=(l=h(e.c)).length,1==r||2==r&&(t<=o||o<=C)){for(;ss){if(--t>0)for(l+=".";t--;l+="0");}else if((t+=o-s)>0)for(o+1==s&&(l+=".");t--;l+="0");return e.s<0&&a?"-"+l:l}function G(e,t){for(var n,r,a=1,o=new U(e[0]);a=10;a/=10,r++);return(n=r+n*l-1)>A?e.c=e.e=null:n=10;p/=10,i++);if((u=t-i)<0)u+=l,d=t,m=_[h=0],f=a(m/y[i-d-1]%10);else if((h=r((u+1)/l))>=_.length){if(!o)break e;for(;_.length<=h;_.push(0));m=f=0,i=1,d=(u%=l)-l+1}else{for(m=p=_[h],i=1;p>=10;p/=10,i++);f=(d=(u%=l)-l+i)<0?0:a(m/y[i-d-1]%10)}if(o=o||t<0||null!=_[h+1]||(d<0?m:m%y[i-d-1]),o=n<4?(f||o)&&(0==n||n==(e.s<0?3:2)):f>5||5==f&&(4==n||o||6==n&&(u>0?d>0?m/y[i-d]:0:_[h-1])%10&1||n==(e.s<0?8:7)),t<1||!_[0])return _.length=0,o?(t-=e.e+1,_[0]=y[(l-t%l)%l],e.e=-t||0):_[0]=e.e=0,e;if(0==u?(_.length=h,p=1,h--):(_.length=h+1,p=y[l-u],_[h]=d>0?a(m/y[i-d]%y[d])*p:0),o)for(;;){if(0==h){for(u=1,d=_[0];d>=10;d/=10,u++);for(d=_[0]+=p,p=1;d>=10;d/=10,p++);u!=p&&(e.e++,_[0]==s&&(_[0]=1));break}if(_[h]+=p,_[h]!=s)break;_[h--]=0,p=1}for(u=_.length;0===_[--u];_.pop());}e.e>A?e.c=e.e=null:e.e=H?b(t,n):g(t,n,"0"),e.s<0?"-"+t:t)}return U.clone=e,U.ROUND_UP=0,U.ROUND_DOWN=1,U.ROUND_CEIL=2,U.ROUND_FLOOR=3,U.ROUND_HALF_UP=4,U.ROUND_HALF_DOWN=5,U.ROUND_HALF_EVEN=6,U.ROUND_HALF_CEIL=7,U.ROUND_HALF_FLOOR=8,U.EUCLID=9,U.config=U.set=function(e){var t,n;if(null!=e){if("object"!=typeof e)throw Error(o+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(_(n=e[t],0,p,t),x=n),e.hasOwnProperty(t="ROUNDING_MODE")&&(_(n=e[t],0,8,t),P=n),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((n=e[t])&&n.pop?(_(n[0],-p,0,t),_(n[1],0,p,t),C=n[0],H=n[1]):(_(n,-p,p,t),C=-(H=n<0?-n:n))),e.hasOwnProperty(t="RANGE"))if((n=e[t])&&n.pop)_(n[0],-p,-1,t),_(n[1],1,p,t),z=n[0],A=n[1];else{if(_(n,-p,p,t),!n)throw Error(o+t+" cannot be zero: "+n);z=-(A=n<0?-n:n)}if(e.hasOwnProperty(t="CRYPTO")){if((n=e[t])!==!!n)throw Error(o+t+" not true or false: "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw N=!n,Error(o+"crypto unavailable");N=n}else N=n}if(e.hasOwnProperty(t="MODULO_MODE")&&(_(n=e[t],0,9,t),F=n),e.hasOwnProperty(t="POW_PRECISION")&&(_(n=e[t],0,p,t),R=n),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(n=e[t]))throw Error(o+t+" not an object: "+n);W=n}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(n=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(n))throw Error(o+t+" invalid: "+n);B="0123456789"==n.slice(0,10),I=n}}return{DECIMAL_PLACES:x,ROUNDING_MODE:P,EXPONENTIAL_AT:[C,H],RANGE:[z,A],CRYPTO:N,MODULO_MODE:F,POW_PRECISION:R,FORMAT:W,ALPHABET:I}},U.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!U.DEBUG)return!0;var t,n,r=e.c,i=e.e,u=e.s;e:if("[object Array]"=={}.toString.call(r)){if((1===u||-1===u)&&i>=-p&&i<=p&&i===a(i)){if(0===r[0]){if(0===i&&1===r.length)return!0;break e}if((t=(i+1)%l)<1&&(t+=l),String(r[0]).length==t){for(t=0;t=s||n!==a(n))break e;if(0!==n)return!0}}}else if(null===r&&null===i&&(null===u||1===u||-1===u))return!0;throw Error(o+"Invalid BigNumber: "+e)},U.maximum=U.max=function(){return G(arguments,-1)},U.minimum=U.min=function(){return G(arguments,1)},U.random=(L=9007199254740992,k=Math.random()*L&2097151?function(){return a(Math.random()*L)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,n,i,s,u,d=0,m=[],h=new U(E);if(null==e?e=x:_(e,0,p),s=r(e/l),N)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(s*=2));d>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[d]=n[0],t[d+1]=n[1]):(m.push(u%1e14),d+=2);d=s/2}else{if(!crypto.randomBytes)throw N=!1,Error(o+"crypto unavailable");for(t=crypto.randomBytes(s*=7);d=9e15?crypto.randomBytes(7).copy(t,d):(m.push(u%1e14),d+=7);d=s/7}if(!N)for(;d=10;u/=10,d++);dn-1&&(null==i[a+1]&&(i[a+1]=0),i[a+1]+=i[a]/n|0,i[a]%=n)}return i.reverse()}return function(n,r,a,o,i){var s,l,u,c,d,p,m,f,_=n.indexOf("."),y=x,b=P;for(_>=0&&(c=R,R=0,n=n.replace(".",""),p=(f=new U(r)).pow(n.length-_),R=c,f.c=t(g(h(p.c),p.e,"0"),10,a,e),f.e=f.c.length),u=c=(m=t(n,r,a,i?(s=I,e):(s=e,I))).length;0==m[--c];m.pop());if(!m[0])return s.charAt(0);if(_<0?--u:(p.c=m,p.e=u,p.s=o,m=(p=v(p,f,y,b,a)).c,d=p.r,u=p.e),_=m[l=u+y+1],c=a/2,d=d||l<0||null!=m[l+1],d=b<4?(null!=_||d)&&(0==b||b==(p.s<0?3:2)):_>c||_==c&&(4==b||d||6==b&&1&m[l-1]||b==(p.s<0?8:7)),l<1||!m[0])n=d?g(s.charAt(1),-y,s.charAt(0)):s.charAt(0);else{if(m.length=l,d)for(--a;++m[--l]>a;)m[l]=0,l||(++u,m=[1].concat(m));for(c=m.length;!m[--c];);for(_=0,n="";_<=c;n+=s.charAt(m[_++]));n=g(n,u,s.charAt(0))}return n}}(),v=function(){function e(e,t,n){var r,a,o,i,s=0,l=e.length,u=t%d,c=t/d|0;for(e=e.slice();l--;)s=((a=u*(o=e[l]%d)+(r=c*o+(i=e[l]/d|0)*u)%d*d+s)/n|0)+(r/d|0)+c*i,e[l]=a%n;return s&&(e=[s].concat(e)),e}function t(e,t,n,r){var a,o;if(n!=r)o=n>r?1:-1;else for(a=o=0;at[a]?1:-1;break}return o}function n(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;e.splice(0,1));}return function(r,o,i,u,c){var d,p,h,f,_,y,b,v,g,w,M,L,k,Y,T,D,S,O=r.s==o.s?1:-1,j=r.c,E=o.c;if(!(j&&j[0]&&E&&E[0]))return new U(r.s&&o.s&&(j?!E||j[0]!=E[0]:E)?j&&0==j[0]||!E?0*O:O/0:NaN);for(g=(v=new U(O)).c=[],O=i+(p=r.e-o.e)+1,c||(c=s,p=m(r.e/l)-m(o.e/l),O=O/l|0),h=0;E[h]==(j[h]||0);h++);if(E[h]>(j[h]||0)&&p--,O<0)g.push(1),f=!0;else{for(Y=j.length,D=E.length,h=0,O+=2,(_=a(c/(E[0]+1)))>1&&(E=e(E,_,c),j=e(j,_,c),D=E.length,Y=j.length),k=D,M=(w=j.slice(0,D)).length;M=c/2&&T++;do{if(_=0,(d=t(E,w,D,M))<0){if(L=w[0],D!=M&&(L=L*c+(w[1]||0)),(_=a(L/T))>1)for(_>=c&&(_=c-1),b=(y=e(E,_,c)).length,M=w.length;1==t(y,w,b,M);)_--,n(y,D=10;O/=10,h++);q(v,i+(v.e=h+p*l-1)+1,u,f)}else v.e=p,v.r=+f;return v}}(),Y=/^(-?)0([xbo])(?=\w[\w.]*$)/i,T=/^([^.]+)\.$/,D=/^\.([^.]+)$/,S=/^-?(Infinity|NaN)$/,O=/^\s*\+(?=[\w.])|^\s+|\s+$/g,M=function(e,t,n,r){var a,i=n?t:t.replace(O,"");if(S.test(i))e.s=isNaN(i)?null:i<0?-1:1;else{if(!n&&(i=i.replace(Y,(function(e,t,n){return a="x"==(n=n.toLowerCase())?16:"b"==n?2:8,r&&r!=a?e:t})),r&&(a=r,i=i.replace(T,"$1").replace(D,"0.$1")),t!=i))return new U(i,a);if(U.DEBUG)throw Error(o+"Not a"+(r?" base "+r:"")+" number: "+t);e.s=null}e.c=e.e=null},j.absoluteValue=j.abs=function(){var e=new U(this);return e.s<0&&(e.s=1),e},j.comparedTo=function(e,t){return f(this,new U(e,t))},j.decimalPlaces=j.dp=function(e,t){var n,r,a,o=this;if(null!=e)return _(e,0,p),null==t?t=P:_(t,0,8),q(new U(o),e+o.e+1,t);if(!(n=o.c))return null;if(r=((a=n.length-1)-m(this.e/l))*l,a=n[a])for(;a%10==0;a/=10,r--);return r<0&&(r=0),r},j.dividedBy=j.div=function(e,t){return v(this,new U(e,t),x,P)},j.dividedToIntegerBy=j.idiv=function(e,t){return v(this,new U(e,t),0,1)},j.exponentiatedBy=j.pow=function(e,t){var n,i,s,u,c,d,p,m,h=this;if((e=new U(e)).c&&!e.isInteger())throw Error(o+"Exponent not an integer: "+$(e));if(null!=t&&(t=new U(t)),c=e.e>14,!h.c||!h.c[0]||1==h.c[0]&&!h.e&&1==h.c.length||!e.c||!e.c[0])return m=new U(Math.pow(+$(h),c?e.s*(2-y(e)):+$(e))),t?m.mod(t):m;if(d=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new U(NaN);(i=!d&&h.isInteger()&&t.isInteger())&&(h=h.mod(t))}else{if(e.e>9&&(h.e>0||h.e<-1||(0==h.e?h.c[0]>1||c&&h.c[1]>=24e7:h.c[0]<8e13||c&&h.c[0]<=9999975e7)))return u=h.s<0&&y(e)?-0:0,h.e>-1&&(u=1/u),new U(d?1/u:u);R&&(u=r(R/l+2))}for(c?(n=new U(.5),d&&(e.s=1),p=y(e)):p=(s=Math.abs(+$(e)))%2,m=new U(E);;){if(p){if(!(m=m.times(h)).c)break;u?m.c.length>u&&(m.c.length=u):i&&(m=m.mod(t))}if(s){if(0===(s=a(s/2)))break;p=s%2}else if(q(e=e.times(n),e.e+1,1),e.e>14)p=y(e);else{if(0==(s=+$(e)))break;p=s%2}h=h.times(h),u?h.c&&h.c.length>u&&(h.c.length=u):i&&(h=h.mod(t))}return i?m:(d&&(m=E.div(m)),t?m.mod(t):u?q(m,R,P,void 0):m)},j.integerValue=function(e){var t=new U(this);return null==e?e=P:_(e,0,8),q(t,t.e+1,e)},j.isEqualTo=j.eq=function(e,t){return 0===f(this,new U(e,t))},j.isFinite=function(){return!!this.c},j.isGreaterThan=j.gt=function(e,t){return f(this,new U(e,t))>0},j.isGreaterThanOrEqualTo=j.gte=function(e,t){return 1===(t=f(this,new U(e,t)))||0===t},j.isInteger=function(){return!!this.c&&m(this.e/l)>this.c.length-2},j.isLessThan=j.lt=function(e,t){return f(this,new U(e,t))<0},j.isLessThanOrEqualTo=j.lte=function(e,t){return-1===(t=f(this,new U(e,t)))||0===t},j.isNaN=function(){return!this.s},j.isNegative=function(){return this.s<0},j.isPositive=function(){return this.s>0},j.isZero=function(){return!!this.c&&0==this.c[0]},j.minus=function(e,t){var n,r,a,o,i=this,u=i.s;if(t=(e=new U(e,t)).s,!u||!t)return new U(NaN);if(u!=t)return e.s=-t,i.plus(e);var c=i.e/l,d=e.e/l,p=i.c,h=e.c;if(!c||!d){if(!p||!h)return p?(e.s=-t,e):new U(h?i:NaN);if(!p[0]||!h[0])return h[0]?(e.s=-t,e):new U(p[0]?i:3==P?-0:0)}if(c=m(c),d=m(d),p=p.slice(),u=c-d){for((o=u<0)?(u=-u,a=p):(d=c,a=h),a.reverse(),t=u;t--;a.push(0));a.reverse()}else for(r=(o=(u=p.length)<(t=h.length))?u:t,u=t=0;t0)for(;t--;p[n++]=0);for(t=s-1;r>u;){if(p[--r]=0;){for(n=0,_=L[a]%g,y=L[a]/g|0,o=a+(i=c);o>a;)n=((p=_*(p=M[--i]%g)+(u=y*p+(h=M[i]/g|0)*_)%g*g+b[o]+n)/v|0)+(u/g|0)+y*h,b[o--]=p%v;b[o]=n}return n?++r:b.splice(0,1),V(e,b,r)},j.negated=function(){var e=new U(this);return e.s=-e.s||null,e},j.plus=function(e,t){var n,r=this,a=r.s;if(t=(e=new U(e,t)).s,!a||!t)return new U(NaN);if(a!=t)return e.s=-t,r.minus(e);var o=r.e/l,i=e.e/l,u=r.c,c=e.c;if(!o||!i){if(!u||!c)return new U(a/0);if(!u[0]||!c[0])return c[0]?e:new U(u[0]?r:0*a)}if(o=m(o),i=m(i),u=u.slice(),a=o-i){for(a>0?(i=o,n=c):(a=-a,n=u),n.reverse();a--;n.push(0));n.reverse()}for((a=u.length)-(t=c.length)<0&&(n=c,c=u,u=n,t=a),a=0;t;)a=(u[--t]=u[t]+c[t]+a)/s|0,u[t]=s===u[t]?0:u[t]%s;return a&&(u=[a].concat(u),++i),V(e,u,i)},j.precision=j.sd=function(e,t){var n,r,a,o=this;if(null!=e&&e!==!!e)return _(e,1,p),null==t?t=P:_(t,0,8),q(new U(o),e,t);if(!(n=o.c))return null;if(r=(a=n.length-1)*l+1,a=n[a]){for(;a%10==0;a/=10,r--);for(a=n[0];a>=10;a/=10,r++);}return e&&o.e+1>r&&(r=o.e+1),r},j.shiftedBy=function(e){return _(e,-9007199254740991,u),this.times("1e"+e)},j.squareRoot=j.sqrt=function(){var e,t,n,r,a,o=this,i=o.c,s=o.s,l=o.e,u=x+4,c=new U("0.5");if(1!==s||!i||!i[0])return new U(!s||s<0&&(!i||i[0])?NaN:i?o:1/0);if(0==(s=Math.sqrt(+$(o)))||s==1/0?(((t=h(i)).length+l)%2==0&&(t+="0"),s=Math.sqrt(+t),l=m((l+1)/2)-(l<0||l%2),n=new U(t=s==1/0?"5e"+l:(t=s.toExponential()).slice(0,t.indexOf("e")+1)+l)):n=new U(s+""),n.c[0])for((s=(l=n.e)+u)<3&&(s=0);;)if(a=n,n=c.times(a.plus(v(o,a,u,1))),h(a.c).slice(0,s)===(t=h(n.c)).slice(0,s)){if(n.e0&&f>0){for(i=f%l||l,d=h.substr(0,i);i0&&(d+=c+h.slice(i)),m&&(d="-"+d)}r=p?d+(n.decimalSeparator||"")+((u=+n.fractionGroupSize)?p.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+(n.fractionGroupSeparator||"")):p):d}return(n.prefix||"")+r+(n.suffix||"")},j.toFraction=function(e){var t,n,r,a,i,s,u,d,p,m,f,_,y=this,b=y.c;if(null!=e&&(!(u=new U(e)).isInteger()&&(u.c||1!==u.s)||u.lt(E)))throw Error(o+"Argument "+(u.isInteger()?"out of range: ":"not an integer: ")+$(u));if(!b)return new U(y);for(t=new U(E),p=n=new U(E),r=d=new U(E),_=h(b),i=t.e=_.length-y.e-1,t.c[0]=c[(s=i%l)<0?l+s:s],e=!e||u.comparedTo(t)>0?i>0?t:p:u,s=A,A=1/0,u=new U(_),d.c[0]=0;m=v(u,t,0,1),1!=(a=n.plus(m.times(r))).comparedTo(e);)n=r,r=a,p=d.plus(m.times(a=p)),d=a,t=u.minus(m.times(a=t)),u=a;return a=v(e.minus(n),r,0,1),d=d.plus(a.times(p)),n=n.plus(a.times(r)),d.s=p.s=y.s,f=v(p,r,i*=2,P).minus(y).abs().comparedTo(v(d,n,i,P).minus(y).abs())<1?[p,r]:[d,n],A=s,f},j.toNumber=function(){return+$(this)},j.toPrecision=function(e,t){return null!=e&&_(e,1,p),J(this,e,t,2)},j.toString=function(e){var t,n=this,r=n.s,a=n.e;return null===a?r?(t="Infinity",r<0&&(t="-"+t)):t="NaN":(null==e?t=a<=C||a>=H?b(h(n.c),a):g(h(n.c),a,"0"):10===e&&B?t=g(h((n=q(new U(n),x+a+1,P)).c),n.e,"0"):(_(e,2,I.length,"Base"),t=w(g(h(n.c),a,"0"),10,e,r,!0)),r<0&&n.c[0]&&(t="-"+t)),t},j.valueOf=j.toJSON=function(){return $(this)},j._isBigNumber=!0,null!=t&&U.set(t),U}(),t.default=t.BigNumber=t,v.exports?v.exports=t:(e||(e="undefined"!=typeof self&&self?self:window),e.BigNumber=t)}(u);var w=g.exports;const M=y(),L=m(),k=_,Y=w,T={trillion:Math.pow(10,12),billion:Math.pow(10,9),million:Math.pow(10,6),thousand:Math.pow(10,3)},D={totalLength:0,characteristic:0,forceAverage:!1,average:!1,mantissa:-1,optionalMantissa:!0,thousandSeparated:!1,spaceSeparated:!1,negative:"sign",forceSign:!1,roundingFunction:Math.round,spaceSeparatedAbbreviation:!1},{binarySuffixes:S,decimalSuffixes:O}=M.currentBytes(),j={general:{scale:1024,suffixes:O,marker:"bd"},binary:{scale:1024,suffixes:S,marker:"b"},decimal:{scale:1e3,suffixes:O,marker:"d"}};function E(e,t={},n){if("string"==typeof t&&(t=k.parseFormat(t)),!L.validateFormat(t))return"ERROR: invalid format";let r=t.prefix||"",a=t.postfix||"",o=function(e,t,n){switch(t.output){case"currency":return function(e,t,n){const r=n.currentCurrency();let a,o=Object.assign({},t),i=Object.assign({},D,o),s="",l=!!i.totalLength||!!i.forceAverage||i.average,u=o.currencyPosition||r.position,c=o.currencySymbol||r.symbol;const d=void 0!==i.spaceSeparatedCurrency?i.spaceSeparatedCurrency:i.spaceSeparated;void 0===o.lowPrecision&&(o.lowPrecision=!1);d&&(s=" ");"infix"===u&&(a=s+c+s);let p=H({instance:e,providedFormat:o,state:n,decimalSeparator:a});"prefix"===u&&(p=e._value<0&&"sign"===i.negative?`-${s}${c}${p.slice(1)}`:e._value>0&&i.forceSign?`+${s}${c}${p.slice(1)}`:c+s+p);u&&"postfix"!==u||(s=!i.spaceSeparatedAbbreviation&&l?"":s,p=p+s+c);return p}(e,t=z(t,M.currentCurrencyDefaultFormat()),M);case"percent":return function(e,t,n,r){let a=t.prefixSymbol,o=H({instance:r(100*e._value),providedFormat:t,state:n}),i=Object.assign({},D,t);if(a)return`%${i.spaceSeparated?" ":""}${o}`;return`${o}${i.spaceSeparated?" ":""}%`}(e,t=z(t,M.currentPercentageDefaultFormat()),M,n);case"byte":return function(e,t,n,r){let a=t.base||"binary",o=Object.assign({},D,t);const{binarySuffixes:i,decimalSuffixes:s}=n.currentBytes();let l={general:{scale:1024,suffixes:s||O,marker:"bd"},binary:{scale:1024,suffixes:i||S,marker:"b"},decimal:{scale:1e3,suffixes:s||O,marker:"d"}}[a],{value:u,suffix:c}=x(e._value,l.suffixes,l.scale),d=H({instance:r(u),providedFormat:t,state:n,defaults:n.currentByteDefaultFormat()});return`${d}${o.spaceSeparated?" ":""}${c}`}(e,t=z(t,M.currentByteDefaultFormat()),M,n);case"time":return t=z(t,M.currentTimeDefaultFormat()),function(e){let t=Math.floor(e._value/60/60),n=Math.floor((e._value-60*t*60)/60),r=Math.round(e._value-60*t*60-60*n);return`${t}:${n<10?"0":""}${n}:${r<10?"0":""}${r}`}(e);case"ordinal":return function(e,t,n){let r=n.currentOrdinal(),a=Object.assign({},D,t),o=H({instance:e,providedFormat:t,state:n}),i=r(e._value);return`${o}${a.spaceSeparated?" ":""}${i}`}(e,t=z(t,M.currentOrdinalDefaultFormat()),M);default:return H({instance:e,providedFormat:t,numbro:n})}}(e,t,n);return o=function(e,t){return t+e}(o,r),o=function(e,t){return e+t}(o,a),o}function x(e,t,n){let r=t[0],a=Math.abs(e);if(a>=n){for(let o=1;o=i&&a0)n=o+i+P(a-i.length);else{let e=".";e=+o<0?`-0${e}`:`0${e}`;let r=(P(-a-1)+Math.abs(o)+i).substr(0,t);r.length0&&t>0&&(n+=`.${P(t)}`),n}(e,t);return new Y(n(+`${e}e+${t}`)/Math.pow(10,t)).toFixed(t)}function H({instance:e,providedFormat:t,state:n=M,decimalSeparator:r,defaults:a=n.currentDefaults()}){let o=e._value;if(0===o&&n.hasZeroFormat())return n.getZeroFormat();if(!isFinite(o))return o.toString();let i=Object.assign({},D,a,t),s=i.totalLength,l=s?0:i.characteristic,u=i.optionalCharacteristic,c=i.forceAverage,d=i.lowPrecision,p=!!s||!!c||i.average,m=s?-1:p&&void 0===t.mantissa?0:i.mantissa,h=!s&&(void 0===t.optionalMantissa?-1===m:i.optionalMantissa),f=i.trimMantissa,_=i.thousandSeparated,y=i.spaceSeparated,b=i.negative,v=i.forceSign,g=i.exponential,w=i.roundingFunction,L="";if(p){let e=function({value:e,forceAverage:t,lowPrecision:n=!0,abbreviations:r,spaceSeparated:a=!1,totalLength:o=0,roundingFunction:i=Math.round}){let s="",l=Math.abs(e),u=-1;if(t&&r[t]&&T[t]?(s=r[t],e/=T[t]):l>=T.trillion||n&&1===i(l/T.trillion)?(s=r.trillion,e/=T.trillion):l=T.billion||n&&1===i(l/T.billion)?(s=r.billion,e/=T.billion):l=T.million||n&&1===i(l/T.million)?(s=r.million,e/=T.million):(l=T.thousand||n&&1===i(l/T.thousand))&&(s=r.thousand,e/=T.thousand),s&&(s=(a?" ":"")+s),o){let t=e<0,n=e.toString().split(".")[0],r=t?n.length-1:n.length;u=Math.max(o-r,0)}return{value:e,abbreviation:s,mantissaPrecision:u}}({value:o,forceAverage:c,lowPrecision:d,abbreviations:n.currentAbbreviations(),spaceSeparated:y,roundingFunction:w,totalLength:s});o=e.value,L+=e.abbreviation,s&&(m=e.mantissaPrecision)}if(g){let e=function({value:e,characteristicPrecision:t}){let[n,r]=e.toExponential().split("e"),a=+n;return t?(1=0?`+${r}`:r),{value:a,abbreviation:`e${r}`}):{value:a,abbreviation:`e${r}`}}({value:o,characteristicPrecision:l});o=e.value,L=e.abbreviation+L}let k=function(e,t,n,r,a,o){if(-1===r)return e;let i=C(t,r,o),[s,l=""]=i.toString().split(".");if(l.match(/^0+$/)&&(n||a))return s;let u=l.match(/0+$/);return a&&u?`${s}.${l.toString().slice(0,u.index)}`:i.toString()}(o.toString(),o,h,m,f,w);return k=function(e,t,n,r){let a=e,[o,i]=a.toString().split(".");if(o.match(/^-?0$/)&&n)return i?`${o.replace("0","")}.${i}`:o.replace("0","");const s=t<0&&0===o.indexOf("-");if(s&&(o=o.slice(1),a=a.slice(1)),o.length0;a--)r===t&&(n.unshift(a),r=0),r++;return n}(u.length,s);e.forEach(((e,t)=>{u=u.slice(0,e+t)+i+u.slice(e+t)})),d&&(u=`-${u}`)}return l=c?u+a+c:u,l}(k,o,_,n,r),(p||g)&&(k=function(e,t){return e+t}(k,L)),(v||o<0)&&(k=function(e,t,n){return 0===t?e:0==+e?e.replace("-",""):t>0?`+${e}`:"sign"===n?e:`(${e.replace("-","")})`}(k,o,b)),k}function z(e,t){if(!e)return t;let n=Object.keys(e);return 1===n.length&&"output"===n[0]?t:e}const A=w;function N(e,t,n){let r=new A(e._value),a=t;return n.isNumbro(t)&&(a=t._value),a=new A(a),e._value=r.minus(a).toNumber(),e}const F=y(),R=m(),W=(e=>({loadLanguagesInNode:t=>b(t,e)}))(q),I=p();let B=(e=>({format:(...t)=>E(...t,e),getByteUnit:(...t)=>function(e){let t=j.general;return x(e._value,t.suffixes,t.scale).suffix}(...t,e),getBinaryByteUnit:(...t)=>function(e){let t=j.binary;return x(e._value,t.suffixes,t.scale).suffix}(...t,e),getDecimalByteUnit:(...t)=>function(e){let t=j.decimal;return x(e._value,t.suffixes,t.scale).suffix}(...t,e),formatOrDefault:z}))(q),U=(e=>({add:(t,n)=>function(e,t,n){let r=new A(e._value),a=t;return n.isNumbro(t)&&(a=t._value),a=new A(a),e._value=r.plus(a).toNumber(),e}(t,n,e),subtract:(t,n)=>N(t,n,e),multiply:(t,n)=>function(e,t,n){let r=new A(e._value),a=t;return n.isNumbro(t)&&(a=t._value),a=new A(a),e._value=r.times(a).toNumber(),e}(t,n,e),divide:(t,n)=>function(e,t,n){let r=new A(e._value),a=t;return n.isNumbro(t)&&(a=t._value),a=new A(a),e._value=r.dividedBy(a).toNumber(),e}(t,n,e),set:(t,n)=>function(e,t,n){let r=t;return n.isNumbro(t)&&(r=t._value),e._value=r,e}(t,n,e),difference:(t,n)=>function(e,t,n){let r=n(e._value);return N(r,t,n),Math.abs(r._value)}(t,n,e),BigNumber:A}))(q);const J=_;class G{constructor(e){this._value=e}clone(){return q(this._value)}format(e={}){return B.format(this,e)}formatCurrency(e){return"string"==typeof e&&(e=J.parseFormat(e)),(e=B.formatOrDefault(e,F.currentCurrencyDefaultFormat())).output="currency",B.format(this,e)}formatTime(e={}){return e.output="time",B.format(this,e)}binaryByteUnits(){return B.getBinaryByteUnit(this)}decimalByteUnits(){return B.getDecimalByteUnit(this)}byteUnits(){return B.getByteUnit(this)}difference(e){return U.difference(this,e)}add(e){return U.add(this,e)}subtract(e){return U.subtract(this,e)}multiply(e){return U.multiply(this,e)}divide(e){return U.divide(this,e)}set(e){return U.set(this,V(e))}value(){return this._value}valueOf(){return this._value}}function V(e){let t=e;return q.isNumbro(e)?t=e._value:"string"==typeof e?t=q.unformat(e):isNaN(e)&&(t=NaN),t}function q(e){return new G(V(e))}q.version="2.5.0",q.isNumbro=function(e){return e instanceof G},q.language=F.currentLanguage,q.registerLanguage=F.registerLanguage,q.setLanguage=F.setLanguage,q.languages=F.languages,q.languageData=F.languageData,q.zeroFormat=F.setZeroFormat,q.defaultFormat=F.currentDefaults,q.setDefaults=F.setDefaults,q.defaultCurrencyFormat=F.currentCurrencyDefaultFormat,q.validate=R.validate,q.loadLanguagesInNode=W.loadLanguagesInNode,q.unformat=I.unformat,q.BigNumber=U.BigNumber;var $=c(q)},8823:function(e,t,n){!function(){"use strict";var t;try{t=n(5093)}catch(e){}e.exports=function(e){var t="function"==typeof e,n=!!window.addEventListener,r=window.document,a=window.setTimeout,o=function(e,t,r,a){n?e.addEventListener(t,r,!!a):e.attachEvent("on"+t,r)},i=function(e,t,r,a){n?e.removeEventListener(t,r,!!a):e.detachEvent("on"+t,r)},s=function(e,t,n){var a;r.createEvent?((a=r.createEvent("HTMLEvents")).initEvent(t,!0,!1),a=v(a,n),e.dispatchEvent(a)):r.createEventObject&&(a=r.createEventObject(),a=v(a,n),e.fireEvent("on"+t,a))},l=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},u=function(e,t){return-1!==(" "+e.className+" ").indexOf(" "+t+" ")},c=function(e,t){u(e,t)||(e.className=""===e.className?t:e.className+" "+t)},d=function(e,t){e.className=l((" "+e.className+" ").replace(" "+t+" "," "))},p=function(e){return/Array/.test(Object.prototype.toString.call(e))},m=function(e){return/Date/.test(Object.prototype.toString.call(e))&&!isNaN(e.getTime())},h=function(e){var t=e.getDay();return 0===t||6===t},f=function(e){return e%4==0&&e%100!=0||e%400==0},_=function(e,t){return[31,f(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]},y=function(e){m(e)&&e.setHours(0,0,0,0)},b=function(e,t){return e.getTime()===t.getTime()},v=function(e,t,n){var r,a;for(r in t)(a=void 0!==e[r])&&"object"==typeof t[r]&&null!==t[r]&&void 0===t[r].nodeName?m(t[r])?n&&(e[r]=new Date(t[r].getTime())):p(t[r])?n&&(e[r]=t[r].slice(0)):e[r]=v({},t[r],n):!n&&a||(e[r]=t[r]);return e},g=function(e){return e.month<0&&(e.year-=Math.ceil(Math.abs(e.month)/12),e.month+=12),e.month>11&&(e.year+=Math.floor(Math.abs(e.month)/12),e.month-=12),e},w={field:null,bound:void 0,position:"bottom left",reposition:!0,format:"YYYY-MM-DD",defaultDate:null,setDefaultDate:!1,firstDay:0,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:"",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:"left",container:void 0,i18n:{previousMonth:"Previous Month",nextMonth:"Next Month",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},theme:null,onSelect:null,onOpen:null,onClose:null,onDraw:null},M=function(e,t,n){for(t+=e.firstDay;t>=7;)t-=7;return n?e.i18n.weekdaysShort[t]:e.i18n.weekdays[t]},L=function(e){var t=[],n="false";if(e.isEmpty){if(!e.showDaysInNextAndPreviousMonths)return'';t.push("is-outside-current-month")}return e.isDisabled&&t.push("is-disabled"),e.isToday&&t.push("is-today"),e.isSelected&&(t.push("is-selected"),n="true"),e.isInRange&&t.push("is-inrange"),e.isStartRange&&t.push("is-startrange"),e.isEndRange&&t.push("is-endrange"),'"},k=function(e,t,n){var r=new Date(n,0,1);return''+Math.ceil(((new Date(n,t,e)-r)/864e5+r.getDay()+1)/7)+""},Y=function(e,t){return""+(t?e.reverse():e).join("")+""},T=function(e){return""+e.join("")+""},D=function(e){var t,n=[];for(e.showWeekNumber&&n.push(""),t=0;t<7;t++)n.push(''+M(e,t,!0)+"");return""+(e.isRTL?n.reverse():n).join("")+""},S=function(e,t,n,r,a,o){var i,s,l,u,c,d=e._o,m=n===d.minYear,h=n===d.maxYear,f='
',_=!0,y=!0;for(l=[],i=0;i<12;i++)l.push('");for(u='
'+d.i18n.months[r]+'
",p(d.yearRange)?(i=d.yearRange[0],s=d.yearRange[1]+1):(i=n-d.yearRange,s=1+n+d.yearRange),l=[];i=d.minYear&&l.push('");return c='
'+n+d.yearSuffix+'
",d.showMonthAfterYear?f+=c+u:f+=u+c,m&&(0===r||d.minMonth>=r)&&(_=!1),h&&(11===r||d.maxMonth<=r)&&(y=!1),0===t&&(f+='"),t===e._o.numberOfMonths-1&&(f+='"),f+"
"},O=function(e,t,n){return''+D(e)+T(t)+"
"},j=function(i){var s=this,l=s.config(i);s._onMouseDown=function(e){if(s._v){var t=(e=e||window.event).target||e.srcElement;if(t)if(u(t,"is-disabled")||(!u(t,"pika-button")||u(t,"is-empty")||u(t.parentNode,"is-disabled")?u(t,"pika-prev")?s.prevMonth():u(t,"pika-next")&&s.nextMonth():(s.setDate(new Date(t.getAttribute("data-pika-year"),t.getAttribute("data-pika-month"),t.getAttribute("data-pika-day"))),l.bound&&a((function(){s.hide(),l.field&&l.field.blur()}),100))),u(t,"pika-select"))s._c=!0;else{if(!e.preventDefault)return e.returnValue=!1,!1;e.preventDefault()}}},s._onChange=function(e){var t=(e=e||window.event).target||e.srcElement;t&&(u(t,"pika-select-month")?s.gotoMonth(t.value):u(t,"pika-select-year")&&s.gotoYear(t.value))},s._onKeyChange=function(e){if(e=e||window.event,s.isVisible())switch(e.keyCode){case 13:case 27:l.field.blur();break;case 37:e.preventDefault(),s.adjustDate("subtract",1);break;case 38:s.adjustDate("subtract",7);break;case 39:s.adjustDate("add",1);break;case 40:s.adjustDate("add",7)}},s._onInputChange=function(n){var r;n.firedBy!==s&&(r=t?(r=e(l.field.value,l.format,l.formatStrict))&&r.isValid()?r.toDate():null:new Date(Date.parse(l.field.value)),m(r)&&s.setDate(r),s._v||s.show())},s._onInputFocus=function(){s.show()},s._onInputClick=function(){s.show()},s._onInputBlur=function(){var e=r.activeElement;do{if(u(e,"pika-single"))return}while(e=e.parentNode);s._c||(s._b=a((function(){s.hide()}),50)),s._c=!1},s._onClick=function(e){var t=(e=e||window.event).target||e.srcElement,r=t;if(t){!n&&u(t,"pika-select")&&(t.onchange||(t.setAttribute("onchange","return;"),o(t,"change",s._onChange)));do{if(u(r,"pika-single")||r===l.trigger)return}while(r=r.parentNode);s._v&&t!==l.trigger&&r!==l.trigger&&s.hide()}},s.el=r.createElement("div"),s.el.className="pika-single"+(l.isRTL?" is-rtl":"")+(l.theme?" "+l.theme:""),o(s.el,"mousedown",s._onMouseDown,!0),o(s.el,"touchend",s._onMouseDown,!0),o(s.el,"change",s._onChange),o(r,"keydown",s._onKeyChange),l.field&&(l.container?l.container.appendChild(s.el):l.bound?r.body.appendChild(s.el):l.field.parentNode.insertBefore(s.el,l.field.nextSibling),o(l.field,"change",s._onInputChange),l.defaultDate||(t&&l.field.value?l.defaultDate=e(l.field.value,l.format).toDate():l.defaultDate=new Date(Date.parse(l.field.value)),l.setDefaultDate=!0));var c=l.defaultDate;m(c)?l.setDefaultDate?s.setDate(c,!0):s.gotoDate(c):s.gotoDate(new Date),l.bound?(this.hide(),s.el.className+=" is-bound",o(l.trigger,"click",s._onInputClick),o(l.trigger,"focus",s._onInputFocus),o(l.trigger,"blur",s._onInputBlur)):this.show()};return j.prototype={config:function(e){this._o||(this._o=v({},w,!0));var t=v(this._o,e,!0);t.isRTL=!!t.isRTL,t.field=t.field&&t.field.nodeName?t.field:null,t.theme="string"==typeof t.theme&&t.theme?t.theme:null,t.bound=!!(void 0!==t.bound?t.field&&t.bound:t.field),t.trigger=t.trigger&&t.trigger.nodeName?t.trigger:t.field,t.disableWeekends=!!t.disableWeekends,t.disableDayFn="function"==typeof t.disableDayFn?t.disableDayFn:null;var n=parseInt(t.numberOfMonths,10)||1;if(t.numberOfMonths=n>4?4:n,m(t.minDate)||(t.minDate=!1),m(t.maxDate)||(t.maxDate=!1),t.minDate&&t.maxDate&&t.maxDate100&&(t.yearRange=100);return t},toString:function(n){return m(this._d)?t?e(this._d).format(n||this._o.format):this._d.toDateString():""},getMoment:function(){return t?e(this._d):null},setMoment:function(n,r){t&&e.isMoment(n)&&this.setDate(n.toDate(),r)},getDate:function(){return m(this._d)?new Date(this._d.getTime()):new Date},setDate:function(e,t){if(!e)return this._d=null,this._o.field&&(this._o.field.value="",s(this._o.field,"change",{firedBy:this})),this.draw();if("string"==typeof e&&(e=new Date(Date.parse(e))),m(e)){var n=this._o.minDate,r=this._o.maxDate;m(n)&&er&&(e=r),this._d=new Date(e.getTime()),y(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),s(this._o.field,"change",{firedBy:this})),t||"function"!=typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},gotoDate:function(e){var t=!0;if(m(e)){if(this.calendars){var n=new Date(this.calendars[0].year,this.calendars[0].month,1),r=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),a=e.getTime();r.setMonth(r.getMonth()+1),r.setDate(r.getDate()-1),t=a=o&&(this._y=o,!isNaN(s)&&this._m>s&&(this._m=s)),t="pika-title-"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,2);for(var u=0;u'+S(this,u,this.calendars[u].year,this.calendars[u].month,this.calendars[0].year,t)+this.render(this.calendars[u].year,this.calendars[u].month,t)+"";this.el.innerHTML=l,n.bound&&"hidden"!==n.field.type&&a((function(){n.trigger.focus()}),1),"function"==typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute("aria-label","Use the arrow keys to pick a date")}},adjustPosition:function(){var e,t,n,a,o,i,s,l,u,c;if(!this._o.container){if(this.el.style.position="absolute",t=e=this._o.trigger,n=this.el.offsetWidth,a=this.el.offsetHeight,o=window.innerWidth||r.documentElement.clientWidth,i=window.innerHeight||r.documentElement.clientHeight,s=window.pageYOffset||r.body.scrollTop||r.documentElement.scrollTop,"function"==typeof e.getBoundingClientRect)l=(c=e.getBoundingClientRect()).left+window.pageXOffset,u=c.bottom+window.pageYOffset;else for(l=t.offsetLeft,u=t.offsetTop+t.offsetHeight;t=t.offsetParent;)l+=t.offsetLeft,u+=t.offsetTop;(this._o.reposition&&l+n>o||this._o.position.indexOf("right")>-1&&l-n+e.offsetWidth>0)&&(l=l-n+e.offsetWidth),(this._o.reposition&&u+a>i+s||this._o.position.indexOf("top")>-1&&u-a-e.offsetHeight>0)&&(u=u-a-e.offsetHeight),this.el.style.left=l+"px",this.el.style.top=u+"px"}},render:function(e,t,n){var r=this._o,a=new Date,o=_(e,t),i=new Date(e,t,1).getDay(),s=[],l=[];y(a),r.firstDay>0&&(i-=r.firstDay)<0&&(i+=7);for(var u=0===t?11:t-1,c=11===t?0:t+1,d=0===t?e-1:e,p=11===t?e+1:e,f=_(d,u),v=o+i,g=v;g>7;)g-=7;v+=7-g;for(var w=0,M=0;w=o+i,E=w-i+1,x=t,P=e,C=r.startRange&&b(r.startRange,T),H=r.endRange&&b(r.endRange,T),z=r.startRange&&r.endRange&&r.startRanger.maxDate||r.disableWeekends&&h(T)||r.disableDayFn&&r.disableDayFn(T),isEmpty:j,isStartRange:C,isEndRange:H,isInRange:z,showDaysInNextAndPreviousMonths:r.showDaysInNextAndPreviousMonths};l.push(L(A)),7==++M&&(r.showWeekNumber&&l.unshift(k(w-i,t,e)),s.push(Y(l,r.isRTL)),l=[],M=0)}return O(r,s,n)},isVisible:function(){return this._v},show:function(){this.isVisible()||(d(this.el,"is-hidden"),this._v=!0,this.draw(),this._o.bound&&(o(r,"click",this._onClick),this.adjustPosition()),"function"==typeof this._o.onOpen&&this._o.onOpen.call(this))},hide:function(){var e=this._v;!1!==e&&(this._o.bound&&i(r,"click",this._onClick),this.el.style.position="static",this.el.style.left="auto",this.el.style.top="auto",c(this.el,"is-hidden"),this._v=!1,void 0!==e&&"function"==typeof this._o.onClose&&this._o.onClose.call(this))},destroy:function(){this.hide(),i(this.el,"mousedown",this._onMouseDown,!0),i(this.el,"touchend",this._onMouseDown,!0),i(this.el,"change",this._onChange),this._o.field&&(i(this._o.field,"change",this._onInputChange),this._o.bound&&(i(this._o.trigger,"click",this._onInputClick),i(this._o.trigger,"focus",this._onInputFocus),i(this._o.trigger,"blur",this._onInputBlur))),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}},j}(t)}()},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6785:(e,t)=>{function n(e,t=null,n=null){var r=[];function a(e,t,n,o=0){let i;if(null!==n&&o{a(e[r],t,n,o+1)})));else{if(null!==n&&o==n)return 0==n?void(r=a(e,t,null,o)):void(y(e)&&r.push(a(e,t,n,o+1)));switch(w(e)){case"array":var s=[];if(i=Object.keys(e),null===t||o=i)return!1;if(y(t))for(var l=0,u=Object.keys(t),c=u.length;l"boolean"===w(e)||""===e?e:((e=e.split(".")).pop(),e=e.join("."))))).length&&r}}function a(e,t,n=null){if("string"===w(t)&&""!==t){var r=function e(t,n,r="",a,o=0){if(r===n)return r;var i=!1;if(null!==a&&o>=a)return i;if(y(t))for(var s=0,l=Object.keys(t),u=l.length;s=r)return!1;if(y(t))for(var o=0,i=Object.keys(t),s=i.length;o=r)return!1;if(y(t))for(var o=0,i=Object.keys(t),s=i.length;o1)&&(1===t?Object.keys(e)[0]:0===t&&["string","number"].indexOf(w(e))>-1&&e)}function l(e){return!u(e)}function u(e){return!1===function(e){return y(e)?e:!(["null","undefined"].indexOf(w(e))>-1)&&(!(["",0,!1].indexOf(e)>-1)&&e)}(e)}function c(e){return-1===["array","object"].indexOf(w(e))?0:Object.keys(e).length}function d(e,t,n=null,r=0){if(b(e,t))return!0;if(y(t)&&g(e,t)&&_(e,Object.keys(t))){if(b(f(e,Object.keys(t)),t))return!0}if((null===n||r{if(""===n)return e;n=n.split("."),-1===["array","object"].indexOf(w(t))&&n.splice(-1,1);var r=e;return Array.isArray(n)?(n.forEach((e=>{r=r[e]})),r):r[n]}))}function m(e,t,n=null){var r=[];return function e(t,n,a="",o,i){if(y(n)&&g(t,n)&&_(t,Object.keys(n))){b(f(t,Object.keys(n)),n)&&(r[r.length]=a)}if(b(t,n)&&(r[r.length]=a),null!==o&&i>=o)return!1;if(y(t))for(var s=0,l=Object.keys(t),u=l.length;s=a)return i;if(y(t))for(var s=0,l=Object.keys(t),u=l.length;s{t in e&&(r[t]=e[t])}));break;case"array":r=[],t.forEach((t=>{t in e&&r.push(e[t])}))}return r}}function _(e,t){const n=t.length;if(0===n||!y(e))return!1;const r=Object.keys(e);for(var a=!0,o=0;o-1){const n=Object.keys(e),a=Object.keys(t),o=n.length;if(o!==a.length)return!1;if(0===o)return!0;for(var r=0;r{a=a[e]})),a):a[r]}}(e,t,n)},locateAll:function(e,t,n){return m(e,t,n)},deepFilter:function(e,t,n){return p(e,t,n)},exists:function(e,t,n){return d(e,t,n)},onlyExisting:function(e,t,n){return function(e,t,n=null){if("array"===w(t)){let r=[];return t.forEach((t=>{d(e,t,n)&&r.push(t)})),r}if("object"===w(t)){let r={};return Object.keys(t).forEach((a=>{let o=t[a];d(e,o,n)&&(r[a]=o)})),r}if(d(e,t,n))return t}(e,t,n)},onlyMissing:function(e,t,n){return function(e,t,n=null){if("array"===w(t)){let r=[];return t.forEach((t=>{d(e,t,n)||r.push(t)})),r}if("object"===w(t)){let r={};return Object.keys(t).forEach((a=>{let o=t[a];d(e,o,n)||(r[a]=o)})),r}if(!d(e,t,n))return t}(e,t,n)},length:function(e){return c(e)},isFalsy:function(e){return u(e)},isTruthy:function(e){return l(e)},foundTruthy:function(e,t,n){return i(e,t,n)},onlyTruthy:function(e,t,n,r){return function(e,t,n,r=null){if("array"===w(t)){let a=[];return t.forEach((t=>{const o=p(e,t);l(o)&&i(o,n,r)&&a.push(t)})),a}if("object"===w(t)){let a={};return Object.keys(t).forEach((o=>{const s=t[o],u=p(e,s);l(u)&&i(u,n,r)&&(a[o]=s)})),a}if(i(e,n,r))return t}(e,t,n,r)},foundFalsy:function(e,t,n){return o(e,t,n)},onlyFalsy:function(e,t,n,r){return function(e,t,n,r=null){if("array"===w(t)){let a=[];return t.forEach((t=>{const i=p(e,t);l(i)&&o(i,n,r)&&a.push(t)})),a}if("object"===w(t)){let a={};return Object.keys(t).forEach((i=>{const s=t[i],u=p(e,s);l(u)&&o(u,n,r)&&(a[i]=s)})),a}if(o(e,n,r))return t}(e,t,n,r)},countMatches:function(e,t,n,r){return function(e,t,n=null,r=null){var a=null===n,o=null===r,i=m(e,t,a&&o?null:a||o?n||r:n{(t=t.split(".")).length===n&&e++})),e}}(e,t,n,r)},matchDepth:function(e,t,n){return function(e,t,n=null){var r=h(e,t,n);return!1!==r&&(""===r?0:(r=r.split(".")).length)}(e,t,n)},maxDepth:function(e,t){return function(e,t=null){let n=0;return function e(t,r,a=0){n=r||y(t)&&Object.keys(t).forEach((n=>{e(t[n],r,a+1)}))}(e,t),n}(e,t)},locate_Key:function(e,t,n){return a(e,t,n)},deepGet_Key:function(e,t,n){return function(e,t,n=null){if("string"===w(t)&&""!==t){var r=a(e,t,n);if(!1!==r){""===r?r=t:r+="."+t,r=r.split(".");var o=e;return Array.isArray(r)?(r.forEach((e=>{o=o[e]})),o):o[r]}}}(e,t,n)},locateAll_Key:function(e,t,n){return r(e,t,n)},deepFilter_Key:function(e,t,n){return function(e,t,n=null){if("string"!==w(t))return;if(""===t)return;var a=r(e,t,n);if(!1===a)return;return a.map((n=>{if(!1!==n){""===n?n=t:n+="."+t,n=n.split(".");var r=e;return Array.isArray(n)?(n.forEach((e=>{r=r[e]})),r):r[n]}}))}(e,t,n)},deepClone:function(e,t,r){return n(e,t,r)},renameKey:function(e,t,n,r){return function(e,t,n,r=null){if("string"===w(t)&&"string"===w(n)&&""!==t&&""!==n){var a=!1;return function e(t,n,r,o,i=0){let s;switch(w(t)){case"array":var l=[];s=Object.keys(t);for(var u=0,c=s.length;u{t{""===e?e=t:e+="."+t,e=e.split(".");var n=o;Array.isArray(e)||delete n[e];for(var r=0;r{"use strict";t.A=void 0;t.A={format:"{reason} at line {line}",symbols:{colon:"colon",comma:"comma",semicolon:"semicolon",slash:"slash",backslash:"backslash",brackets:{round:"round brackets",square:"square brackets",curly:"curly brackets",angle:"angle brackets"},period:"period",quotes:{single:"single quote",double:"double quote",grave:"grave accent"},space:"space",ampersand:"ampersand",asterisk:"asterisk",at:"at sign",equals:"equals sign",hash:"hash",percent:"percent",plus:"plus",minus:"minus",dash:"dash",hyphen:"hyphen",tilde:"tilde",underscore:"underscore",bar:"vertical bar"},types:{key:"key",value:"value",number:"number",string:"string",primitive:"primitive",boolean:"boolean",character:"character",integer:"integer",array:"array",float:"float"},invalidToken:{tokenSequence:{prohibited:"'{firstToken}' token cannot be followed by '{secondToken}' token(s)",permitted:"'{firstToken}' token can only be followed by '{secondToken}' token(s)"},termSequence:{prohibited:"A {firstTerm} cannot be followed by a {secondTerm}",permitted:"A {firstTerm} can only be followed by a {secondTerm}"},double:"'{token}' token cannot be followed by another '{token}' token",useInstead:"'{badToken}' token is not accepted. Use '{goodToken}' instead",unexpected:"Unexpected '{token}' token found"},brace:{curly:{missingOpen:"Missing '{' open curly brace",missingClose:"Open '{' curly brace is missing closing '}' curly brace",cannotWrap:"'{token}' token cannot be wrapped in '{}' curly braces"},square:{missingOpen:"Missing '[' open square brace",missingClose:"Open '[' square brace is missing closing ']' square brace",cannotWrap:"'{token}' token cannot be wrapped in '[]' square braces"}},string:{missingOpen:"Missing/invalid opening string '{quote}' token",missingClose:"Missing/invalid closing string '{quote}' token",mustBeWrappedByQuotes:"Strings must be wrapped by quotes",nonAlphanumeric:"Non-alphanumeric token '{token}' is not allowed outside string notation",unexpectedKey:"Unexpected key found at string position"},key:{numberAndLetterMissingQuotes:"Key beginning with number and containing letters must be wrapped by quotes",spaceMissingQuotes:"Key containing space must be wrapped by quotes",unexpectedString:"Unexpected string found at key position"},noTrailingOrLeadingComma:"Trailing or leading commas in arrays and objects are not permitted"}},9921:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=function(){function e(e,t){for(var n=0;n{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},f=Object.assign,_={};function y(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var g=v.prototype=new b;g.constructor=v,f(g,y.prototype),g.isPureReactComponent=!0;var w=Array.isArray,M=Object.prototype.hasOwnProperty,L={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function Y(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)M.call(t,a)&&!k.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1{"use strict";e.exports=n(5287)},6942:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e="",t=0;t{if(!n){var i=1/0;for(c=0;c=o)&&Object.keys(r.O).every((e=>r.O[e](n[l])))?n.splice(l--,1):(s=!1,o0&&e[c-1][2]>o;c--)e[c]=e[c-1];e[c]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),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.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={366:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var a,o,[i,s,l]=n,u=0;if(i.some((t=>0!==e[t]))){for(a in s)r.o(s,a)&&(r.m[a]=s[a]);if(l)var c=l(r)}for(t&&t(n);ur(2867)));a=r.O(a)})(); \ No newline at end of file diff --git a/classes/Visualizer/Gutenberg/build/chart_types_june2019_g.png b/classes/Visualizer/Gutenberg/build/chart_types_june2019_g.png deleted file mode 100644 index fb3073911..000000000 Binary files a/classes/Visualizer/Gutenberg/build/chart_types_june2019_g.png and /dev/null differ diff --git a/classes/Visualizer/Gutenberg/build/handsontable.css b/classes/Visualizer/Gutenberg/build/handsontable.css deleted file mode 100644 index 8b0f0d2ab..000000000 --- a/classes/Visualizer/Gutenberg/build/handsontable.css +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * (The MIT License) - * - * Copyright (c) 2012-2014 Marcin Warpechowski - * Copyright (c) 2015 Handsoncode sp. z o.o. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * 'Software'), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Version: 5.0.2 - * Release date: 12/09/2018 (built at 11/09/2018 09:55:19) - */.handsontable .table th,.handsontable .table td{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child th,.handsontable .table caption+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table thead:first-child tr:first-child th,.handsontable .table thead:first-child tr:first-child td{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered th,.handsontable .table-bordered td{border-left:none}.handsontable .table-bordered th:first-child,.handsontable .table-bordered td:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0 4px}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(even){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable.htAutoSize{visibility:hidden;left:-99000px;position:absolute;top:-99000px}.handsontable .wtHider{width:0}.handsontable .wtSpreader{position:relative;width:0;height:auto}.handsontable table,.handsontable tbody,.handsontable thead,.handsontable td,.handsontable th,.handsontable input,.handsontable textarea,.handsontable div{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:initial}.handsontable table.htCore{border-collapse:separate;border-spacing:0;margin:0;border-width:0;table-layout:fixed;width:0;outline-width:0;cursor:default;max-width:none;max-height:none}.handsontable col{width:50px}.handsontable col.rowHeader{width:50px}.handsontable th,.handsontable td{border-top-width:0;border-left-width:0;border-right:1px solid #ccc;border-bottom:1px solid #ccc;height:22px;empty-cells:show;line-height:21px;padding:0 4px 0 4px;background-color:#fff;vertical-align:top;overflow:hidden;outline-width:0;white-space:pre-line;background-clip:padding-box}.handsontable td.htInvalid{background-color:#ff4c42 !important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable th:last-child{border-right:1px solid #ccc;border-bottom:1px solid #ccc}.handsontable tr:first-child th.htNoFrame,.handsontable th:first-child.htNoFrame,.handsontable th.htNoFrame{border-left-width:0;background-color:#fff;border-color:#fff}.handsontable th:first-child,.handsontable th:nth-child(2),.handsontable td:first-of-type,.handsontable .htNoFrame+th,.handsontable .htNoFrame+td{border-left:1px solid #ccc}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}.handsontable tr:first-child th,.handsontable tr:first-child td{border-top:1px solid #ccc}.ht_master:not(.innerBorderLeft):not(.emptyColumns)~.handsontable tbody tr th,.ht_master:not(.innerBorderLeft):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-right-width:0}.ht_master:not(.innerBorderTop) thead tr:last-child th,.ht_master:not(.innerBorderTop)~.handsontable thead tr:last-child th,.ht_master:not(.innerBorderTop) thead tr.lastChild th,.ht_master:not(.innerBorderTop)~.handsontable thead tr.lastChild th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;text-align:center;font-weight:normal;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}#hot-display-license-info{font-size:10px;color:#323232;padding:5px 0 3px 0;font-family:Helvetica,Arial,sans-serif;text-align:left}.handsontable .manualColumnResizer{position:fixed;top:0;cursor:col-resize;z-index:110;width:5px;height:25px}.handsontable .manualRowResizer{position:fixed;left:0;cursor:row-resize;z-index:110;height:5px;width:50px}.handsontable .manualColumnResizer:hover,.handsontable .manualColumnResizer.active,.handsontable .manualRowResizer:hover,.handsontable .manualRowResizer.active{background-color:#34a9db}.handsontable .manualColumnResizerGuide{position:fixed;right:0;top:0;background-color:#34a9db;display:none;width:0;border-right:1px dashed #777;margin-left:5px}.handsontable .manualRowResizerGuide{position:fixed;left:0;bottom:0;background-color:#34a9db;display:none;height:0;border-bottom:1px dashed #777;margin-top:5px}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:199}.handsontable .columnSorting{position:relative}.handsontable .columnSorting:hover{text-decoration:underline;cursor:pointer}.handsontable .columnSorting.ascending::after{content:"▲";color:#5f5f5f;position:absolute;right:-15px}.handsontable .columnSorting.descending::after{content:"▼";color:#5f5f5f;position:absolute;right:-15px}.handsontable .wtBorder{position:absolute;font-size:0}.handsontable .wtBorder.hidden{display:none !important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area:before,.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;bottom:-100% \9 ;background:#005eff}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.handsontable td.area:before,.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before{bottom:-100%}}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontable .wtBorder.corner{font-size:0;cursor:crosshair}.handsontable .htBorder.htFillBorder{background:red;width:1px;height:1px}.handsontableInput{border:none;outline-width:0;margin:0;padding:1px 5px 0 5px;font-family:inherit;line-height:21px;font-size:inherit;box-shadow:0 0 0 2px #5292f7 inset;resize:none;display:block;color:#000;border-radius:0;background-color:#fff}.handsontableInputHolder{position:absolute;top:0;left:0;z-index:104}.htSelectEditor{-webkit-appearance:menulist-button !important;position:absolute;width:auto}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{content:"▶";color:#777;position:absolute;right:5px;font-size:9px}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable .htAutocompleteArrow{float:right;font-size:10px;color:#eee;cursor:default;width:16px;text-align:center}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput{display:inline-block;vertical-align:middle}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;width:100%}.handsontable .handsontable.ht_clone_top .wtHider{padding:0 0 5px 0}.handsontable .autocompleteEditor.handsontable{padding-right:17px}.handsontable .autocompleteEditor.handsontable.htMacScroll{padding-right:15px}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{border:1px solid #ccc;border-collapse:separate;background:#fff}.handsontable.listbox th,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th,.handsontable.listbox tr:first-child td,.handsontable.listbox td{border-color:rgba(0,0,0,0)}.handsontable.listbox th,.handsontable.listbox td{white-space:nowrap;text-overflow:ellipsis}.handsontable.listbox td.htDimmed{cursor:default;color:inherit;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_clone_top{z-index:101}.ht_clone_left{z-index:102}.ht_clone_top_left_corner,.ht_clone_bottom_left_corner{z-index:103}.ht_clone_debug{z-index:103}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.htBordered{border-width:1px}.htBordered.htTopBorderSolid{border-top-style:solid;border-top-color:#000}.htBordered.htRightBorderSolid{border-right-style:solid;border-right-color:#000}.htBordered.htBottomBorderSolid{border-bottom-style:solid;border-bottom-color:#000}.htBordered.htLeftBorderSolid{border-left-style:solid;border-left-color:#000}.handsontable tbody tr th:nth-last-child(2){border-right:1px solid #ccc}.handsontable thead tr:nth-last-child(2) th.htGroupIndicatorContainer{border-bottom:1px solid #ccc;padding-bottom:5px}.ht_clone_top_left_corner thead tr th:nth-last-child(2){border-right:1px solid #ccc}.htCollapseButton{width:10px;height:10px;line-height:10px;text-align:center;border-radius:5px;border:1px solid #f3f3f3;box-shadow:1px 1px 3px rgba(0,0,0,.4);cursor:pointer;margin-bottom:3px;position:relative}.htCollapseButton:after{content:"";height:300%;width:1px;display:block;background:#ccc;margin-left:4px;position:absolute;bottom:10px}thead .htCollapseButton{right:5px;position:absolute;top:5px;background:#fff}thead .htCollapseButton:after{height:1px;width:700%;right:10px;top:4px}.handsontable tr th .htExpandButton{position:absolute;width:10px;height:10px;line-height:10px;text-align:center;border-radius:5px;border:1px solid #f3f3f3;box-shadow:1px 1px 3px rgba(0,0,0,.4);cursor:pointer;top:0;display:none}.handsontable thead tr th .htExpandButton{top:5px}.handsontable tr th .htExpandButton.clickable{display:block}.collapsibleIndicator{position:absolute;top:50%;transform:translate(0%, -50%);right:5px;border:1px solid #a6a6a6;line-height:10px;color:#222;border-radius:10px;font-size:10px;width:10px;height:10px;cursor:pointer;box-shadow:0 0 0 6px #eee;background:#eee}.handsontable col.hidden{width:0 !important}.handsontable table tr th.lightRightBorder{border-right:1px solid #e6e6e6}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_master,.ht_clone_left,.ht_clone_top,.ht_clone_bottom{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_master thead,.handsontable .ht_master tr th,.handsontable .ht_clone_left thead{visibility:hidden}.ht_clone_top .wtHolder,.ht_clone_left .wtHolder,.ht_clone_bottom .wtHolder{overflow:hidden}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.htMobileEditorContainer{display:none;position:absolute;top:0;width:70%;height:54pt;background:#f8f8f8;border-radius:20px;border:1px solid #ebebeb;z-index:999;box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-text-size-adjust:none}.topLeftSelectionHandle:not(.ht_master .topLeftSelectionHandle),.topLeftSelectionHandle-HitArea:not(.ht_master .topLeftSelectionHandle-HitArea){z-index:9999}.topLeftSelectionHandle,.topLeftSelectionHandle-HitArea,.bottomRightSelectionHandle,.bottomRightSelectionHandle-HitArea{left:-10000px;top:-10000px}.htMobileEditorContainer.active{display:block}.htMobileEditorContainer .inputs{position:absolute;right:210pt;bottom:10pt;top:10pt;left:14px;height:34pt}.htMobileEditorContainer .inputs textarea{font-size:13pt;border:1px solid #a1a1a1;-webkit-appearance:none;box-shadow:none;position:absolute;left:14px;right:14px;top:0;bottom:0;padding:7pt}.htMobileEditorContainer .cellPointer{position:absolute;top:-13pt;height:0;width:0;left:30px;border-left:13pt solid rgba(0,0,0,0);border-right:13pt solid rgba(0,0,0,0);border-bottom:13pt solid #ebebeb}.htMobileEditorContainer .cellPointer.hidden{display:none}.htMobileEditorContainer .cellPointer:before{content:"";display:block;position:absolute;top:2px;height:0;width:0;left:-13pt;border-left:13pt solid rgba(0,0,0,0);border-right:13pt solid rgba(0,0,0,0);border-bottom:13pt solid #f8f8f8}.htMobileEditorContainer .moveHandle{position:absolute;top:10pt;left:5px;width:30px;bottom:0px;cursor:move;z-index:9999}.htMobileEditorContainer .moveHandle:after{content:"..\a..\a..\a..";white-space:pre;line-height:10px;font-size:20pt;display:inline-block;margin-top:-8px;color:#ebebeb}.htMobileEditorContainer .positionControls{width:205pt;position:absolute;right:5pt;top:0;bottom:0}.htMobileEditorContainer .positionControls>div{width:50pt;height:100%;float:left}.htMobileEditorContainer .positionControls>div:after{content:" ";display:block;width:15pt;height:15pt;text-align:center;line-height:50pt}.htMobileEditorContainer .leftButton:after,.htMobileEditorContainer .rightButton:after,.htMobileEditorContainer .upButton:after,.htMobileEditorContainer .downButton:after{transform-origin:5pt 5pt;-webkit-transform-origin:5pt 5pt;margin:21pt 0 0 21pt}.htMobileEditorContainer .leftButton:after{border-top:2px solid #288ffe;border-left:2px solid #288ffe;-webkit-transform:rotate(-45deg)}.htMobileEditorContainer .leftButton:active:after{border-color:#cfcfcf}.htMobileEditorContainer .rightButton:after{border-top:2px solid #288ffe;border-left:2px solid #288ffe;-webkit-transform:rotate(135deg)}.htMobileEditorContainer .rightButton:active:after{border-color:#cfcfcf}.htMobileEditorContainer .upButton:after{border-top:2px solid #288ffe;border-left:2px solid #288ffe;-webkit-transform:rotate(45deg)}.htMobileEditorContainer .upButton:active:after{border-color:#cfcfcf}.htMobileEditorContainer .downButton:after{border-top:2px solid #288ffe;border-left:2px solid #288ffe;-webkit-transform:rotate(225deg)}.htMobileEditorContainer .downButton:active:after{border-color:#cfcfcf}.handsontable.hide-tween{animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}/*! - * Pikaday - * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/ - */.pika-single{z-index:9999;display:block;position:relative;color:#333;background:#fff;border:1px solid #ccc;border-bottom-color:#bbb;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.pika-single:before,.pika-single:after{content:" ";display:table}.pika-single:after{clear:both}.pika-single{*zoom:1}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,.5)}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-label{display:inline-block;*display:inline;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;filter:alpha(opacity=0);opacity:0}.pika-prev,.pika-next{display:block;cursor:pointer;position:relative;outline:none;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:rgba(0,0,0,0);background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5;*position:absolute;*top:0}.pika-prev:hover,.pika-next:hover{opacity:1}.pika-prev,.is-rtl .pika-next{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==);*left:0}.pika-next,.is-rtl .pika-prev{float:right;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=);*right:0}.pika-prev.is-disabled,.pika-next.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block;*display:inline}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table th,.pika-table td{width:14.2857142857%;padding:0}.pika-table th{color:#999;font-size:12px;line-height:25px;font-weight:bold;text-align:center}.pika-button{cursor:pointer;display:block;box-sizing:border-box;-moz-box-sizing:border-box;outline:none;border:0;margin:0;width:100%;padding:5px;color:#666;font-size:12px;line-height:15px;text-align:right;background:#f5f5f5}.pika-week{font-size:11px;color:#999}.is-today .pika-button{color:#3af;font-weight:bold}.is-selected .pika-button{color:#fff;font-weight:bold;background:#3af;box-shadow:inset 0 1px 3px #178fe5;border-radius:3px}.is-inrange .pika-button{background:#d5e9f7}.is-startrange .pika-button{color:#fff;background:#6cb31d;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#3af;box-shadow:none;border-radius:3px}.is-disabled .pika-button,.is-outside-current-month .pika-button{pointer-events:none;cursor:default;color:#999;opacity:.3}.pika-button:hover{color:#fff;background:#ff8000;box-shadow:none;border-radius:3px}.pika-table abbr{border-bottom:none;cursor:help}.htCommentCell{position:relative}.htCommentCell:after{content:"";position:absolute;top:0;right:0;border-left:6px solid rgba(0,0,0,0);border-top:6px solid #000}.htComments{display:none;z-index:1059;position:absolute}.htCommentTextArea{box-shadow:rgba(0,0,0,.117647) 0 1px 3px,rgba(0,0,0,.239216) 0 1px 2px;box-sizing:border-box;border:none;border-left:3px solid #ccc;background-color:#fff;width:215px;height:90px;font-size:12px;padding:5px;outline:0px !important;-webkit-appearance:none}.htCommentTextArea:focus{box-shadow:rgba(0,0,0,.117647) 0 1px 3px,rgba(0,0,0,.239216) 0 1px 2px,inset 0 0 0 1px #5292f7;border-left:3px solid #5292f7}/*! - * Handsontable ContextMenu - */.htContextMenu:not(.htGhostTable){display:none;position:absolute;z-index:1060}.htContextMenu .ht_clone_top,.htContextMenu .ht_clone_left,.htContextMenu .ht_clone_corner,.htContextMenu .ht_clone_debug{display:none}.htContextMenu table.htCore{border:1px solid #ccc;border-bottom-width:2px;border-right-width:2px}.htContextMenu .wtBorder{visibility:hidden}.htContextMenu table tbody tr td{background:#fff;border-width:0;padding:4px 6px 0 6px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.htContextMenu table tbody tr td:first-child{border:0}.htContextMenu table tbody tr td.htDimmed{font-style:normal;color:#323232}.htContextMenu table tbody tr td.current,.htContextMenu table tbody tr td.zeroclipboard-is-hover{background:#f3f3f3}.htContextMenu table tbody tr td.htSeparator{border-top:1px solid #e6e6e6;height:0;padding:0;cursor:default}.htContextMenu table tbody tr td.htDisabled{color:#999;cursor:default}.htContextMenu table tbody tr td.htDisabled:hover{background:#fff;color:#999;cursor:default}.htContextMenu table tbody tr.htHidden{display:none}.htContextMenu table tbody tr td .htItemWrapper{margin-left:10px;margin-right:6px}.htContextMenu table tbody tr td div span.selected{margin-top:-2px;position:absolute;left:4px}.htContextMenu .ht_master .wtHolder{overflow:hidden}textarea#HandsontableCopyPaste{position:fixed !important;top:0 !important;right:100% !important;overflow:hidden;opacity:0;outline:0 none !important}.htRowHeaders .ht_master.innerBorderLeft~.ht_clone_top_left_corner th:nth-child(2),.htRowHeaders .ht_master.innerBorderLeft~.ht_clone_left td:first-of-type{border-left:0 none}.handsontable .wtHider{position:relative}.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__highlight{cursor:move;cursor:grab}.handsontable.ht__manualColumnMove.on-moving--columns,.handsontable.ht__manualColumnMove.on-moving--columns thead th.ht__highlight{cursor:move;cursor:grabbing}.handsontable.ht__manualColumnMove.on-moving--columns .manualColumnResizer{display:none}.handsontable .ht__manualColumnMove--guideline,.handsontable .ht__manualColumnMove--backlight{position:absolute;height:100%;display:none}.handsontable .ht__manualColumnMove--guideline{background:#757575;width:2px;top:0;margin-left:-1px;z-index:105}.handsontable .ht__manualColumnMove--backlight{background:#343434;background:rgba(52,52,52,.25);display:none;z-index:105;pointer-events:none}.handsontable.on-moving--columns.show-ui .ht__manualColumnMove--guideline,.handsontable.on-moving--columns .ht__manualColumnMove--backlight{display:block}.handsontable .wtHider{position:relative}.handsontable.ht__manualRowMove.after-selection--rows tbody th.ht__highlight{cursor:move;cursor:grab}.handsontable.ht__manualRowMove.on-moving--rows,.handsontable.ht__manualRowMove.on-moving--rows tbody th.ht__highlight{cursor:move;cursor:grabbing}.handsontable.ht__manualRowMove.on-moving--rows .manualRowResizer{display:none}.handsontable .ht__manualRowMove--guideline,.handsontable .ht__manualRowMove--backlight{position:absolute;width:100%;display:none}.handsontable .ht__manualRowMove--guideline{background:#757575;height:2px;left:0;margin-top:-1px;z-index:105}.handsontable .ht__manualRowMove--backlight{background:#343434;background:rgba(52,52,52,.25);display:none;z-index:105;pointer-events:none}.handsontable.on-moving--rows.show-ui .ht__manualRowMove--guideline,.handsontable.on-moving--rows .ht__manualRowMove--backlight{display:block}.handsontable tbody td[rowspan][class*=area][class*=highlight]:not([class*=fullySelectedMergedCell]):before{opacity:0}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-multiple]:before{opacity:.1}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-0]:before{opacity:.1}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-1]:before{opacity:.2}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-2]:before{opacity:.27}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-3]:before{opacity:.35}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-4]:before{opacity:.41}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-5]:before{opacity:.47}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-6]:before{opacity:.54}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before{opacity:.58} diff --git a/classes/Visualizer/Gutenberg/build/handsontable.js b/classes/Visualizer/Gutenberg/build/handsontable.js deleted file mode 100644 index a2897f08a..000000000 --- a/classes/Visualizer/Gutenberg/build/handsontable.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkvisualizer_gutenberg_block=self.webpackChunkvisualizer_gutenberg_block||[]).push([[544],{3748:function(e,t,n){var o;"undefined"!=typeof self&&self,o=function(e,t,n){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=207)}([function(e,t,n){"use strict";t.__esModule=!0,t.HTML_CHARACTERS=void 0,t.getParent=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=-1,o=null,r=e;null!==r;){if(n===t){o=r;break}r.host&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r=r.host:(n+=1,r=r.parentNode)}return o},t.closest=a,t.closestDown=function(e,t,n){for(var o=[],r=e;r&&(r=a(r,t,n))&&(!n||n.contains(r));)o.push(r),r=r.host&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r.parentNode;var i=o.length;return i?o[i-1]:null},t.isChildOf=function(e,t){var n=e.parentNode,o=[];for("string"==typeof t?o=Array.prototype.slice.call(document.querySelectorAll(t),0):o.push(t);null!==n;){if(o.indexOf(n)>-1)return!0;n=n.parentNode}return!1},t.isChildOfWebComponentTable=function(e){var t=!1,n=s(e);function o(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="hot-table".toUpperCase()}for(;null!==n;){if(o(n)){t=!0;break}if(n.host&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE){if(t=o(n.host))break;n=n.host}n=n.parentNode}return t},t.polymerWrap=s,t.polymerUnwrap=l,t.index=function(e){var t=0,n=e;if(n.previousSibling)for(;n=n.previousSibling;)t+=1;return t},t.overlayContainsElement=function(e,t){var n=document.querySelector(".ht_clone_"+e);return n?n.contains(t):null},t.hasClass=function(e,t){return h(e,t)},t.addClass=function(e,t){return d(e,t)},t.removeClass=function(e,t){return f(e,t)},t.removeTextNodes=function e(t,n){if(3===t.nodeType)n.removeChild(t);else if(["TABLE","THEAD","TBODY","TFOOT","TR"].indexOf(t.nodeName)>-1)for(var o=t.childNodes,r=o.length-1;r>=0;r--)e(o[r],t)},t.empty=y,t.fastInnerHTML=function(e,t){w.test(t)?e.innerHTML=t:b(e,t)},t.fastInnerText=b,t.isVisible=function e(t){for(var n=t;l(n)!==document.documentElement;){if(null===n)return!1;if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE){if(n.host){if(n.host.impl)return e(n.host.impl);if(n.host)return e(n.host);throw new Error("Lost in Web Components world")}return!1}if("none"===n.style.display)return!1;n=n.parentNode}return!0},t.offset=function(e){var t=document.documentElement,n=e,o=void 0,i=void 0,a=void 0,s=void 0;if((0,r.hasCaptionProblem)()&&n.firstChild&&"CAPTION"===n.firstChild.nodeName)return{top:(s=n.getBoundingClientRect()).top+(window.pageYOffset||t.scrollTop)-(t.clientTop||0),left:s.left+(window.pageXOffset||t.scrollLeft)-(t.clientLeft||0)};for(o=n.offsetLeft,i=n.offsetTop,a=n;(n=n.offsetParent)&&n!==document.body;)o+=n.offsetLeft,i+=n.offsetTop,a=n;return a&&"fixed"===a.style.position&&(o+=window.pageXOffset||t.scrollLeft,i+=window.pageYOffset||t.scrollTop),{left:o,top:i}},t.getWindowScrollTop=E,t.getWindowScrollLeft=S,t.getScrollTop=function(e){return e===window?E():e.scrollTop},t.getScrollLeft=function(e){return e===window?S():e.scrollLeft},t.getScrollableElement=function(e){for(var t=["auto","scroll"],n=e.parentNode,o=void 0,r=void 0,i=void 0,a="",s="",l="",u="";n&&n.style&&document.body!==n;){if(o=n.style.overflow,r=n.style.overflowX,i=n.style.overflowY,"scroll"===o||"scroll"===r||"scroll"===i)return n;if(window.getComputedStyle&&(s=(a=window.getComputedStyle(n)).getPropertyValue("overflow"),l=a.getPropertyValue("overflow-y"),u=a.getPropertyValue("overflow-x"),"scroll"===s||"scroll"===u||"scroll"===l))return n;if(n.clientHeight<=n.scrollHeight+1&&(-1!==t.indexOf(i)||-1!==t.indexOf(o)||-1!==t.indexOf(s)||-1!==t.indexOf(l)))return n;if(n.clientWidth<=n.scrollWidth+1&&(-1!==t.indexOf(r)||-1!==t.indexOf(o)||-1!==t.indexOf(s)||-1!==t.indexOf(u)))return n;n=n.parentNode}return window},t.getTrimmingContainer=function(e){for(var t=e.parentNode;t&&t.style&&document.body!==t;){if("visible"!==t.style.overflow&&""!==t.style.overflow)return t;if(window.getComputedStyle){var n=window.getComputedStyle(t);if("visible"!==n.getPropertyValue("overflow")&&""!==n.getPropertyValue("overflow"))return t}t=t.parentNode}return window},t.getStyle=function(e,t){if(e){if(e===window)return"width"===t?window.innerWidth+"px":"height"===t?window.innerHeight+"px":void 0;var n,o=e.style[t];return""!==o&&void 0!==o?o:""!==(n=O(e))[t]&&void 0!==n[t]?n[t]:void 0}},t.getComputedStyle=O,t.outerWidth=function(e){return e.offsetWidth},t.outerHeight=function(e){return(0,r.hasCaptionProblem)()&&e.firstChild&&"CAPTION"===e.firstChild.nodeName?e.offsetHeight+e.firstChild.offsetHeight:e.offsetHeight},t.innerHeight=function(e){return e.clientHeight||e.innerHeight},t.innerWidth=function(e){return e.clientWidth||e.innerWidth},t.addEvent=function(e,t,n){window.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},t.removeEvent=function(e,t,n){window.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},t.getCaretPosition=function(e){if(e.selectionStart)return e.selectionStart;if(document.selection){e.focus();var t=document.selection.createRange();if(null==t)return 0;var n=e.createTextRange(),o=n.duplicate();return n.moveToBookmark(t.getBookmark()),o.setEndPoint("EndToStart",n),o.text.length}return 0},t.getSelectionEndPosition=function(e){if(e.selectionEnd)return e.selectionEnd;if(document.selection){var t=document.selection.createRange();return null==t?0:e.createTextRange().text.indexOf(t.text)+t.text.length}return 0},t.getSelectionText=function(){var e="";return window.getSelection?e=window.getSelection().toString():document.selection&&"Control"!==document.selection.type&&(e=document.selection.createRange().text),e},t.setCaretPosition=function(e,t,n){if(void 0===n&&(n=t),e.setSelectionRange){e.focus();try{e.setSelectionRange(t,n)}catch(i){var o=e.parentNode,r=o.style.display;o.style.display="block",e.setSelectionRange(t,n),o.style.display=r}}else if(e.createTextRange){var i=e.createTextRange();i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",t),i.select()}},t.getScrollbarWidth=function(){return void 0===m&&(m=function(){var e=document.createElement("div");e.style.height="200px",e.style.width="100%";var t=document.createElement("div");t.style.boxSizing="content-box",t.style.height="150px",t.style.left="0px",t.style.overflow="hidden",t.style.position="absolute",t.style.top="0px",t.style.width="200px",t.style.visibility="hidden",t.appendChild(e),(document.body||document.documentElement).appendChild(t);var n=e.offsetWidth;t.style.overflow="scroll";var o=e.offsetWidth;return n==o&&(o=t.clientWidth),(document.body||document.documentElement).removeChild(t),n-o}()),m},t.hasVerticalScrollbar=function(e){return e.offsetWidth!==e.clientWidth},t.hasHorizontalScrollbar=function(e){return e.offsetHeight!==e.clientHeight},t.setOverlayPosition=function(e,t,n){(0,o.isIE8)()||(0,o.isIE9)()?(e.style.top=n,e.style.left=t):(0,o.isSafari)()?e.style["-webkit-transform"]="translate3d("+t+","+n+",0)":e.style.transform="translate3d("+t+","+n+",0)"},t.getCssTransform=function(e){var t=void 0;return e.style.transform&&""!==(t=e.style.transform)?["transform",t]:e.style["-webkit-transform"]&&""!==(t=e.style["-webkit-transform"])?["-webkit-transform",t]:-1},t.resetCssTransform=function(e){e.style.transform&&""!==e.style.transform?e.style.transform="":e.style["-webkit-transform"]&&""!==e.style["-webkit-transform"]&&(e.style["-webkit-transform"]="")},t.isInput=T,t.isOutsideInput=function(e){return T(e)&&-1==e.className.indexOf("handsontableInput")&&-1==e.className.indexOf("copyPaste")};var o=n(39),r=n(40);function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t-1||t.indexOf(o)>-1))return o;o=o.host&&o.nodeType===Node.DOCUMENT_FRAGMENT_NODE?o.host:o.parentNode}return null}function s(e){return"undefined"!=typeof Polymer&&"function"==typeof wrap?wrap(e):e}function l(e){return"undefined"!=typeof Polymer&&"function"==typeof unwrap?unwrap(e):e}var u,c=!!document.documentElement.classList,h=void 0,d=void 0,f=void 0;function p(e){var t=[];if(!e||!e.length)return t;for(var n=0;e[n];)t.push(e[n]),n+=1;return t}if(c){var g=((u=document.createElement("div")).classList.add("test","test2"),u.classList.contains("test2"));h=function(e,t){return void 0!==e.classList&&"string"==typeof t&&""!==t&&e.classList.contains(t)},d=function(e,t){var n,o=t;if("string"==typeof o&&(o=o.split(" ")),(o=p(o)).length>0)if(g)(n=e.classList).add.apply(n,i(o));else for(var r=0;o&&o[r];)e.classList.add(o[r]),r+=1},f=function(e,t){var n,o=t;if("string"==typeof o&&(o=o.split(" ")),(o=p(o)).length>0)if(g)(n=e.classList).remove.apply(n,i(o));else for(var r=0;o&&o[r];)e.classList.remove(o[r]),r+=1}}else{var v=function(e){return new RegExp("(\\s|^)"+e+"(\\s|$)")};h=function(e,t){return void 0!==e.className&&v(t).test(e.className)},d=function(e,t){var n=0,o=e.className,r=t;if("string"==typeof r&&(r=r.split(" ")),""===o)o=r.join(" ");else for(;r&&r[n];)v(r[n]).test(o)||(o+=" "+r[n]),n+=1;e.className=o},f=function(e,t){var n=0,o=e.className,r=t;for("string"==typeof r&&(r=r.split(" "));r&&r[n];)o=o.replace(v(r[n])," ").trim(),n+=1;e.className!==o&&(e.className=o)}}function y(e){for(var t=void 0;t=e.lastChild;)e.removeChild(t)}var m,w=t.HTML_CHARACTERS=/(<(.*)>|&(.*);)/,C=!!document.createTextNode("test").textContent;function b(e,t){var n=e.firstChild;n&&3===n.nodeType&&null===n.nextSibling?C?n.textContent=t:n.data=t:(y(e),e.appendChild(document.createTextNode(t)))}function E(){var e=window.scrollY;return void 0===e&&(e=document.documentElement.scrollTop),e}function S(){var e=window.scrollX;return void 0===e&&(e=document.documentElement.scrollLeft),e}function O(e){return e.currentStyle||document.defaultView.getComputedStyle(e)}function T(e){return e&&(["INPUT","SELECT","TEXTAREA"].indexOf(e.nodeName)>-1||"true"===e.contentEditable)}},function(e,t,n){"use strict";t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.duckSchema=function e(t){var n=void 0;return Array.isArray(t)?n=[]:(n={},l(t,(function(t,r){"__children"!==r&&(t&&"object"===(void 0===t?"undefined":o(t))&&!Array.isArray(t)?n[r]=e(t):Array.isArray(t)?t.length&&"object"===o(t[0])&&!Array.isArray(t[0])?n[r]=[e(t[0])]:n[r]=[]:n[r]=null)}))),n},t.inherit=function(e,t){return t.prototype.constructor=t,e.prototype=new t,e.prototype.constructor=e,e},t.extend=function(e,t){return l(t,(function(t,n){e[n]=t})),e},t.deepExtend=function e(t,n){l(n,(function(r,i){n[i]&&"object"===o(n[i])?(t[i]||(Array.isArray(n[i])?t[i]=[]:"[object Date]"===Object.prototype.toString.call(n[i])?t[i]=n[i]:t[i]={}),e(t[i],n[i])):t[i]=n[i]}))},t.deepClone=a,t.clone=function(e){var t={};return l(e,(function(e,n){t[n]=e})),t},t.mixin=function(e){e.MIXINS||(e.MIXINS=[]);for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:"value",o="_"+n,r=(i(t={_touched:!1},o,e),i(t,"isTouched",(function(){return this._touched})),t);return Object.defineProperty(r,n,{get:function(){return this[o]},set:function(e){this._touched=!0,this[o]=e},enumerable:!0,configurable:!0}),r},t.hasOwnProperty=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var r=n(2);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){return"object"===(void 0===e?"undefined":o(e))?JSON.parse(JSON.stringify(e)):e}function s(e){return"[object Object]"===Object.prototype.toString.call(e)}function l(e,t){for(var n in e)if((!e.hasOwnProperty||e.hasOwnProperty&&Object.prototype.hasOwnProperty.call(e,n))&&!1===t(e[n],n,e))break;return e}},function(e,t,n){"use strict";function o(e,t,n,o){var r=-1,i=e,a=n;Array.isArray(e)||(i=Array.from(e));var s=i.length;for(o&&s&&(a=i[r+=1]),r+=1;rt?e:t}),Array.isArray(e)?e[0]:void 0)},t.arrayMin=function(e){return o(e,(function(e,t){return e0&&void 0!==arguments[0]?arguments[0]:null;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.context=t||this,this.context.eventListeners||(this.context.eventListeners=[])}return o(e,[{key:"addEventListener",value:function(e,t,n){var o=this,r=this.context;function i(e){n.call(this,c(r,e))}return this.context.eventListeners.push({element:e,event:t,callback:n,callbackProxy:i}),window.addEventListener?e.addEventListener(t,i,!1):e.attachEvent("on"+t,i),l+=1,function(){o.removeEventListener(e,t,n)}}},{key:"removeEventListener",value:function(e,t,n){for(var o=this.context.eventListeners.length,r=void 0;o;)if(o-=1,(r=this.context.eventListeners[o]).event===t&&r.element===e){if(n&&n!==r.callback)continue;this.context.eventListeners.splice(o,1),r.element.removeEventListener?r.element.removeEventListener(r.event,r.callbackProxy,!1):r.element.detachEvent("on"+r.event,r.callbackProxy),l-=1}}},{key:"clearEvents",value:function(){if(this.context)for(var e=this.context.eventListeners.length;e;){e-=1;var t=this.context.eventListeners[e];t&&this.removeEventListener(t.element,t.event,t.callback)}}},{key:"clear",value:function(){this.clearEvents()}},{key:"destroy",value:function(){this.clearEvents(),this.context=null}},{key:"fireEvent",value:function(e,t){var n={bubbles:!0,cancelable:"mousemove"!==t,view:window,detail:0,screenX:0,screenY:0,clientX:1,clientY:1,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:void 0},o=void 0;document.createEvent?(o=document.createEvent("MouseEvents")).initMouseEvent(t,n.bubbles,n.cancelable,n.view,n.detail,n.screenX,n.screenY,n.clientX,n.clientY,n.ctrlKey,n.altKey,n.shiftKey,n.metaKey,n.button,n.relatedTarget||document.body.parentNode):o=document.createEventObject(),e.dispatchEvent?e.dispatchEvent(o):e.fireEvent("on"+t,o)}}]),e}();function c(e,t){var n="HOT-TABLE",o=void 0,l=void 0,c=void 0,h=void 0,d=void 0;t.isTargetWebComponent=!1,t.realTarget=t.target;var f=t.stopImmediatePropagation;if(t.stopImmediatePropagation=function(){f.apply(this),(0,s.stopImmediatePropagation)(this)},!u.isHotTableEnv)return t;for(d=(t=(0,r.polymerWrap)(t)).path?t.path.length:0;d;){if(d-=1,t.path[d].nodeName===n)o=!0;else if(o&&t.path[d].shadowRoot){h=t.path[d];break}0!==d||h||(h=t.path[d])}return h||(h=t.target),t.isTargetWebComponent=!0,(0,a.isWebComponentSupportedNatively)()?t.realTarget=t.srcElement||t.toElement:((0,i.hasOwnProperty)(e,"hot")||e.isHotTableEnv||e.wtTable)&&((0,i.hasOwnProperty)(e,"hot")?l=e.hot?e.hot.view.wt.wtTable.TABLE:null:e.isHotTableEnv?l=e.view.activeWt.wtTable.TABLE.parentNode.parentNode:e.wtTable&&(l=e.wtTable.TABLE.parentNode.parentNode),c=(0,r.closest)(t.target,[n],l),t.realTarget=c&&l.querySelector(n)||t.target),Object.defineProperty(t,"target",{get:function(){return(0,r.polymerWrap)(h)},enumerable:!0,configurable:!0}),t}t.default=u},function(e,t,n){"use strict";t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.isNumeric=function(e){var t=void 0===e?"undefined":o(e);return"number"==t?!isNaN(e)&&isFinite(e):"string"==t?!!e.length&&(1==e.length?/\d/.test(e):/^\s*[+-]?\s*(?:(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?)|(?:0x[a-f\d]+))\s*$/i.test(e)):"object"==t&&!(!e||"number"!=typeof e.valueOf()||e instanceof Date)},t.rangeEach=function(e,t,n){var o=-1;for("function"==typeof t?(n=t,t=e):o=e-1;++o<=t&&!1!==n(o););},t.rangeEachReverse=function(e,t,n){var o=e+1;for("function"==typeof t&&(n=t,t=0);--o>=t&&!1!==n(o););},t.valueAccordingPercent=function(e,t){return t=parseInt(t.toString().replace("%",""),10),t=parseInt(e*t/100,10)}},function(e,t,n){"use strict";t.__esModule=!0;var o=t.CONTEXT_MENU_ITEMS_NAMESPACE="ContextMenu:items",r=(t.CONTEXTMENU_ITEMS_ROW_ABOVE=o+".insertRowAbove",t.CONTEXTMENU_ITEMS_ROW_BELOW=o+".insertRowBelow",t.CONTEXTMENU_ITEMS_INSERT_LEFT=o+".insertColumnOnTheLeft",t.CONTEXTMENU_ITEMS_INSERT_RIGHT=o+".insertColumnOnTheRight",t.CONTEXTMENU_ITEMS_REMOVE_ROW=o+".removeRow",t.CONTEXTMENU_ITEMS_REMOVE_COLUMN=o+".removeColumn",t.CONTEXTMENU_ITEMS_UNDO=o+".undo",t.CONTEXTMENU_ITEMS_REDO=o+".redo",t.CONTEXTMENU_ITEMS_READ_ONLY=o+".readOnly",t.CONTEXTMENU_ITEMS_CLEAR_COLUMN=o+".clearColumn",t.CONTEXTMENU_ITEMS_COPY=o+".copy",t.CONTEXTMENU_ITEMS_CUT=o+".cut",t.CONTEXTMENU_ITEMS_FREEZE_COLUMN=o+".freezeColumn",t.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN=o+".unfreezeColumn",t.CONTEXTMENU_ITEMS_MERGE_CELLS=o+".mergeCells",t.CONTEXTMENU_ITEMS_UNMERGE_CELLS=o+".unmergeCells",t.CONTEXTMENU_ITEMS_ADD_COMMENT=o+".addComment",t.CONTEXTMENU_ITEMS_EDIT_COMMENT=o+".editComment",t.CONTEXTMENU_ITEMS_REMOVE_COMMENT=o+".removeComment",t.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT=o+".readOnlyComment",t.CONTEXTMENU_ITEMS_ALIGNMENT=o+".align",t.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT=o+".align.left",t.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER=o+".align.center",t.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT=o+".align.right",t.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY=o+".align.justify",t.CONTEXTMENU_ITEMS_ALIGNMENT_TOP=o+".align.top",t.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE=o+".align.middle",t.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM=o+".align.bottom",t.CONTEXTMENU_ITEMS_BORDERS=o+".borders",t.CONTEXTMENU_ITEMS_BORDERS_TOP=o+".borders.top",t.CONTEXTMENU_ITEMS_BORDERS_RIGHT=o+".borders.right",t.CONTEXTMENU_ITEMS_BORDERS_BOTTOM=o+".borders.bottom",t.CONTEXTMENU_ITEMS_BORDERS_LEFT=o+".borders.left",t.CONTEXTMENU_ITEMS_REMOVE_BORDERS=o+".borders.remove",t.CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD=o+".nestedHeaders.insertChildRow",t.CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD=o+".nestedHeaders.detachFromParent",t.CONTEXTMENU_ITEMS_HIDE_COLUMN=o+".hideColumn",t.CONTEXTMENU_ITEMS_SHOW_COLUMN=o+".showColumn",t.CONTEXTMENU_ITEMS_HIDE_ROW=o+".hideRow",t.CONTEXTMENU_ITEMS_SHOW_ROW=o+".showRow",t.FILTERS_NAMESPACE="Filters:"),i=t.FILTERS_CONDITIONS_NAMESPACE=r+"conditions";t.FILTERS_CONDITIONS_NONE=i+".none",t.FILTERS_CONDITIONS_EMPTY=i+".isEmpty",t.FILTERS_CONDITIONS_NOT_EMPTY=i+".isNotEmpty",t.FILTERS_CONDITIONS_EQUAL=i+".isEqualTo",t.FILTERS_CONDITIONS_NOT_EQUAL=i+".isNotEqualTo",t.FILTERS_CONDITIONS_BEGINS_WITH=i+".beginsWith",t.FILTERS_CONDITIONS_ENDS_WITH=i+".endsWith",t.FILTERS_CONDITIONS_CONTAINS=i+".contains",t.FILTERS_CONDITIONS_NOT_CONTAIN=i+".doesNotContain",t.FILTERS_CONDITIONS_BY_VALUE=i+".byValue",t.FILTERS_CONDITIONS_GREATER_THAN=i+".greaterThan",t.FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL=i+".greaterThanOrEqualTo",t.FILTERS_CONDITIONS_LESS_THAN=i+".lessThan",t.FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL=i+".lessThanOrEqualTo",t.FILTERS_CONDITIONS_BETWEEN=i+".isBetween",t.FILTERS_CONDITIONS_NOT_BETWEEN=i+".isNotBetween",t.FILTERS_CONDITIONS_AFTER=i+".after",t.FILTERS_CONDITIONS_BEFORE=i+".before",t.FILTERS_CONDITIONS_TODAY=i+".today",t.FILTERS_CONDITIONS_TOMORROW=i+".tomorrow",t.FILTERS_CONDITIONS_YESTERDAY=i+".yesterday",t.FILTERS_DIVS_FILTER_BY_CONDITION=r+"labels.filterByCondition",t.FILTERS_DIVS_FILTER_BY_VALUE=r+"labels.filterByValue",t.FILTERS_LABELS_CONJUNCTION=r+"labels.conjunction",t.FILTERS_LABELS_DISJUNCTION=r+"labels.disjunction",t.FILTERS_VALUES_BLANK_CELLS=r+"values.blankCells",t.FILTERS_BUTTONS_SELECT_ALL=r+"buttons.selectAll",t.FILTERS_BUTTONS_CLEAR=r+"buttons.clear",t.FILTERS_BUTTONS_OK=r+"buttons.ok",t.FILTERS_BUTTONS_CANCEL=r+"buttons.cancel",t.FILTERS_BUTTONS_PLACEHOLDER_SEARCH=r+"buttons.placeholder.search",t.FILTERS_BUTTONS_PLACEHOLDER_VALUE=r+"buttons.placeholder.value",t.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE=r+"buttons.placeholder.secondValue"},function(e,t,n){"use strict";t.__esModule=!0,t.getPluginName=t.getRegistredPluginNames=t.getPlugin=t.registerPlugin=void 0;var o,r=n(16),i=(o=r)&&o.__esModule?o:{default:o},a=n(1),s=n(33),l=new WeakMap;t.registerPlugin=function(e,t){var n=(0,s.toUpperCaseFirst)(e);i.default.getSingleton().add("construct",(function(){l.has(this)||l.set(this,{});var e=l.get(this);e[n]||(e[n]=new t(this))})),i.default.getSingleton().add("afterDestroy",(function(){if(l.has(this)){var e=l.get(this);(0,a.objectEach)(e,(function(e){return e.destroy()})),l.delete(this)}}))},t.getPlugin=function(e,t){if("string"!=typeof t)throw Error('Only strings can be passed as "plugin" parameter');var n=(0,s.toUpperCaseFirst)(t);if(l.has(e)&&l.get(e)[n])return l.get(e)[n]},t.getRegistredPluginNames=function(e){return l.has(e)?Object.keys(l.get(e)):[]},t.getPluginName=function(e,t){var n=null;return l.has(e)&&(0,a.objectEach)(l.get(e),(function(e,o){e===t&&(n=o)})),n}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";t.__esModule=!0;var o=function(){function e(e,t){for(var n=0;n=0&&u.splice(u.indexOf(this.pluginName),1),u.length||this.hot.runHooks("afterPluginsInitialized"),this.initialized=!0}},{key:"enablePlugin",value:function(){this.enabled=!0}},{key:"disablePlugin",value:function(){this.eventManager&&this.eventManager.clear(),this.clearHooks(),this.enabled=!1}},{key:"addHook",value:function(e,t){l.get(this).hooks[e]=l.get(this).hooks[e]||[];var n=l.get(this).hooks[e];this.hot.addHook(e,t),n.push(t),l.get(this).hooks[e]=n}},{key:"removeHooks",value:function(e){var t=this;(0,i.arrayEach)(l.get(this).hooks[e]||[],(function(n){t.hot.removeHook(e,n)}))}},{key:"clearHooks",value:function(){var e=this,t=l.get(this).hooks;(0,r.objectEach)(t,(function(t,n){return e.removeHooks(n)})),t.length=0}},{key:"callOnPluginsReady",value:function(e){this.isPluginsReady?e():this.pluginsInitializedCallbacks.push(e)}},{key:"onAfterPluginsInitialized",value:function(){(0,i.arrayEach)(this.pluginsInitializedCallbacks,(function(e){return e()})),this.pluginsInitializedCallbacks.length=0,this.isPluginsReady=!0}},{key:"onUpdateSettings",value:function(){this.isEnabled&&(this.enabled&&!this.isEnabled()&&this.disablePlugin(),!this.enabled&&this.isEnabled()&&this.enablePlugin(),this.enabled&&this.isEnabled()&&this.updatePlugin())}},{key:"updatePlugin",value:function(){}},{key:"destroy",value:function(){var e=this;this.eventManager&&this.eventManager.destroy(),this.clearHooks(),(0,r.objectEach)(this,(function(t,n){"hot"!==n&&"t"!==n&&(e[n]=null)})),delete this.t,delete this.hot}}]),e}();t.default=c},function(e,t,n){"use strict";t.__esModule=!0;var o,r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=["\n Your license key of Handsontable Pro has expired.‌‌‌‌ \n Renew your maintenance plan at https://handsontable.com or downgrade to the previous version of the software.\n "],r=["\n Your license key of Handsontable Pro has expired.‌‌‌‌ \n Renew your maintenance plan at https://handsontable.com or downgrade to the previous version of the software.\n "],Object.freeze(Object.defineProperties(o,{raw:{value:Object.freeze(r)}})));t.stringify=function(e){var t=void 0;switch(void 0===e?"undefined":i(e)){case"string":case"number":t=""+e;break;case"object":t=null===e?"":e.toString();break;case"undefined":t="";break;default:t=e.toString()}return t},t.isDefined=function(e){return void 0!==e},t.isUndefined=h,t.isEmpty=d,t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t._injectProductInfo=function(e,t){e=m(e||"");var n="",o=!0,r=function(e){var t=[][f],n=t;if(e[f]!==y("Z"))return!1;for(var o="",r="B>1:o=v(e,i,i?1===r[f]?9:8:6);return n===t}(e),i=C(),s=d(e)||"trial"===e;if(s||r)if(r){var l=Math.floor((0,u.default)("12/09/2018","DD/MM/YYYY").toDate().getTime()/864e5),h=w(e);(h>45e3||h!==parseInt(h,10))&&(n="The license key provided to Handsontable Pro is invalid. Make sure you pass it correctly."),n||(l>h+1&&(n=(0,c.toSingleLine)(a)),o=l>h+15)}else n="Evaluation version of Handsontable Pro. Not licensed for use in a production environment.";else n="The license key provided to Handsontable Pro is invalid. Make sure you pass it correctly.";if(i&&(n=!1,o=!1),n&&!b&&(console[s?"info":"warn"](n),b=!0),o&&t.parentNode){var E=document.createElement("div");E.id="hot-display-license-info",E.appendChild(document.createTextNode("Evaluation version of Handsontable Pro.")),E.appendChild(document.createElement("br")),E.appendChild(document.createTextNode("Not licensed for production use.")),t.parentNode.insertBefore(E,t.nextSibling)}};var s,l=n(57),u=(s=l)&&s.__esModule?s:{default:s},c=n(42);function h(e){return void 0===e}function d(e){return null===e||""===e||h(e)}var f="length",p=function(e){return parseInt(e,16)},g=function(e){return parseInt(e,10)},v=function(e,t,n){return e.substr(t,n)},y=function(e){return e.codePointAt(0)-65},m=function(e){return(""+e).replace(/\-/g,"")},w=function(e){return p(v(m(e),p("12"),y("F")))/(p(v(m(e),y("B"),~~![][f]))||9)},C=function(){return"undefined"!=typeof location&&/^([a-z0-9\-]+\.)?\x68\x61\x6E\x64\x73\x6F\x6E\x74\x61\x62\x6C\x65\x2E\x63\x6F\x6D$/i.test(location.host)},b=!1},function(e,t,n){var o=n(79)("wks"),r=n(50),i=n(15).Symbol,a="function"==typeof i;(e.exports=function(e){return o[e]||(o[e]=a&&i[e]||(a?i:r)("Symbol."+e))}).store=o},function(e,t,n){"use strict";t.__esModule=!0,t.stopImmediatePropagation=function(e){e.isImmediatePropagationEnabled=!1,e.cancelBubble=!0},t.isImmediatePropagationStopped=function(e){return!1===e.isImmediatePropagationEnabled},t.stopPropagation=function(e){"function"==typeof e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.pageX=function(e){return e.pageX?e.pageX:e.clientX+(0,o.getWindowScrollLeft)()},t.pageY=function(e){return e.pageY?e.pageY:e.clientY+(0,o.getWindowScrollTop)()},t.isRightClick=function(e){return 2===e.button},t.isLeftClick=function(e){return 0===e.button};var o=n(0)},function(e,t,n){"use strict";t.__esModule=!0,t.getRegisteredRenderers=t.getRegisteredRendererNames=t.hasRenderer=t.getRenderer=t.registerRenderer=void 0;var o=h(n(38)),r=h(n(243)),i=h(n(244)),a=h(n(245)),s=h(n(246)),l=h(n(247)),u=h(n(249)),c=h(n(250));function h(e){return e&&e.__esModule?e:{default:e}}var d=(0,o.default)("renderers"),f=d.register,p=d.getItem,g=d.hasItem,v=d.getNames,y=d.getValues;f("base",r.default),f("autocomplete",i.default),f("checkbox",a.default),f("html",s.default),f("numeric",l.default),f("password",u.default),f("text",c.default),t.registerRenderer=f,t.getRenderer=function(e){if("function"==typeof e)return e;if(!g(e))throw Error('No registered renderer found under "'+e+'" name');return p(e)},t.hasRenderer=g,t.getRegisteredRendererNames=v,t.getRegisteredRenderers=y},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";t.__esModule=!0;var o=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null;return e?(e.pluginHookBucket||(e.pluginHookBucket=this.createEmptyBucket()),e.pluginHookBucket):this.globalBucket}},{key:"add",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(Array.isArray(t))(0,r.arrayEach)(t,(function(t){return n.add(e,t,o)}));else{var i=this.getBucket(o);if(void 0===i[e]&&(this.register(e),i[e]=[]),t.skip=!1,-1===i[e].indexOf(t)){var a=!1;t.initialHook&&(0,r.arrayEach)(i[e],(function(n,o){if(n.initialHook)return i[e][o]=t,a=!0,!1})),a||i[e].push(t)}}return this}},{key:"once",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Array.isArray(t)?(0,r.arrayEach)(t,(function(t){return n.once(e,t,o)})):(t.runOnce=!0,this.add(e,t,o))}},{key:"remove",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=this.getBucket(n);return void 0!==o[e]&&o[e].indexOf(t)>=0&&(t.skip=!0,!0)}},{key:"has",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getBucket(t);return!(void 0===n[e]||!n[e].length)}},{key:"run",value:function(e,t,n,o,r,i,a,s){var l=this.globalBucket[t],u=l?l.length:0,c=0;if(u)for(;c0&&void 0!==arguments[0]?arguments[0]:null;(0,i.objectEach)(this.getBucket(e),(function(e,t,n){return n[t].length=0}))}},{key:"register",value:function(e){this.isRegistered(e)||a.push(e)}},{key:"deregister",value:function(e){this.isRegistered(e)&&a.splice(a.indexOf(e),1)}},{key:"isRegistered",value:function(e){return a.indexOf(e)>=0}},{key:"getRegistered",value:function(){return a}}]),e}(),l=new s;t.default=s},function(e,t,n){"use strict";t.__esModule=!0,t.getRegisteredEditors=t.getRegisteredEditorNames=t.hasEditor=t.getEditorInstance=t.getEditor=t.registerEditor=void 0,t.RegisteredEditor=S,t._getEditorInstance=O;var o=g(n(38)),r=g(n(16)),i=g(n(55)),a=g(n(190)),s=g(n(235)),l=g(n(236)),u=g(n(239)),c=g(n(191)),h=g(n(240)),d=g(n(241)),f=g(n(242)),p=g(n(59));function g(e){return e&&e.__esModule?e:{default:e}}var v=new WeakMap,y=(0,o.default)("editors"),m=y.register,w=y.getItem,C=y.hasItem,b=y.getNames,E=y.getValues;function S(e){var t={},n=e;this.getConstructor=function(){return e},this.getInstance=function(e){return e.guid in t||(t[e.guid]=new n(e)),t[e.guid]},r.default.getSingleton().add("afterDestroy",(function(){t[this.guid]=null}))}function O(e,t){var n=void 0;if("function"==typeof e)v.get(e)||T(null,e),n=v.get(e);else{if("string"!=typeof e)throw Error('Only strings and functions can be passed as "editor" parameter');n=w(e)}if(!n)throw Error('No editor registered under name "'+e+'"');return n.getInstance(t)}function T(e,t){var n=new S(t);"string"==typeof e&&m(e,n),v.set(t,n)}T("base",i.default),T("autocomplete",a.default),T("checkbox",s.default),T("date",l.default),T("dropdown",u.default),T("handsontable",c.default),T("numeric",h.default),T("password",d.default),T("select",f.default),T("text",p.default),t.registerEditor=T,t.getEditor=function(e){if(!C(e))throw Error('No registered editor found under "'+e+'" name');return w(e).getConstructor()},t.getEditorInstance=O,t.hasEditor=C,t.getRegisteredEditorNames=b,t.getRegisteredEditors=E},function(e,t,n){var o=n(9);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){"use strict";t.__esModule=!0,t.normalizeSelection=function(e){return(0,o.arrayMap)(e,(function(e){return{start:e.getTopLeftCorner(),end:e.getBottomRightCorner()}}))},t.isSeparator=function(e){return(0,r.hasClass)(e,"htSeparator")},t.hasSubMenu=function(e){return(0,r.hasClass)(e,"htSubmenu")},t.isDisabled=function(e){return(0,r.hasClass)(e,"htDisabled")},t.isSelectionDisabled=function(e){return(0,r.hasClass)(e,"htSelectionDisabled")},t.getValidSelection=function(e){var t=e.getSelected();return t?t[0]<0?null:t:null},t.prepareVerticalAlignClass=a,t.prepareHorizontalAlignClass=s,t.getAlignmentClasses=function(e,t){var n={};return(0,o.arrayEach)(e,(function(e){for(var o=e.from,r=e.to,i=o.row;i<=r.row;i++)for(var a=o.col;a<=r.col;a++)n[i]||(n[i]=[]),n[i][a]=t(i,a)})),n},t.align=function(e,t,n,r,i){(0,o.arrayEach)(e,(function(e){var o=e.from,a=e.to;if(o.row===a.row&&o.col===a.col)l(o.row,o.col,t,n,r,i);else for(var s=o.row;s<=a.row;s++)for(var u=o.col;u<=a.col;u++)l(s,u,t,n,r,i)}))},t.checkSelectionConsistency=function(e,t){var n=!1;return Array.isArray(e)&&(0,o.arrayEach)(e,(function(e){return e.forAll((function(e,o){if(t(e,o))return n=!0,!1})),n})),n},t.markLabelAsSelected=function(e){return''+String.fromCharCode(10003)+""+e},t.isItemHidden=function(e,t){return!e.hidden||!("function"==typeof e.hidden&&e.hidden.call(t))},t.filterSeparators=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.KEY,n=e.slice(0);return n=function(e){var t=[];return(0,o.arrayEach)(e,(function(e,n){n>0?t[t.length-1].name!==e.name&&t.push(e):t.push(e)})),t}(n=function(e,t){var n=e.slice(0);return n.reverse(),(n=u(n,t)).reverse(),n}(n=u(n,t),t))};var o=n(2),r=n(0),i=n(95);function a(e,t){return-1!==e.indexOf(t)?e:e.replace("htTop","").replace("htMiddle","").replace("htBottom","").replace(" ","")+" "+t}function s(e,t){return-1!==e.indexOf(t)?e:e.replace("htLeft","").replace("htCenter","").replace("htRight","").replace("htJustify","").replace(" ","")+" "+t}function l(e,t,n,o,r,i){var l=r(e,t),u=o;l.className&&(u="vertical"===n?a(l.className,o):s(l.className,o)),i(e,t,"className",u)}function u(e,t){for(var n=e.slice(0);0=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90},t.isMetaKey=function(e){return-1!==[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT].indexOf(e)},t.isCtrlKey=function(e){var t=[];return window.navigator.platform.includes("Mac")?t.push(r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX):t.push(r.CONTROL),t.includes(e)},t.isCtrlMetaKey=function(e){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(e)},t.isKey=function(e,t){var n=t.split("|"),i=!1;return(0,o.arrayEach)(n,(function(t){if(e===r[t])return i=!0,!1})),i};var o=n(2),r=t.KEY_CODES={MOUSE_LEFT:1,MOUSE_RIGHT:3,MOUSE_MIDDLE:2,BACKSPACE:8,COMMA:188,INSERT:45,DELETE:46,END:35,ENTER:13,ESCAPE:27,CONTROL:17,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,ALT:18,HOME:36,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,SPACE:32,SHIFT:16,CAPS_LOCK:20,TAB:9,ARROW_RIGHT:39,ARROW_LEFT:37,ARROW_UP:38,ARROW_DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,A:65,X:88,C:67,V:86}},function(e,t,n){e.exports=!n(23)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var o=n(77),r=n(36);e.exports=function(e){return o(r(e))}},function(e,t,n){var o=n(60),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){var o=n(3),r=n(37),i=n(23);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],a={};a[e]=t(n),o(o.S+o.F*i((function(){n(1)})),"Object",a)}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var o=n(15),r=n(29),i=n(27),a=n(50)("src"),s="toString",l=Function[s],u=(""+l).split(s);n(37).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(i(n,"name")||r(n,"name",t)),e[t]!==n&&(l&&(i(n,a)||r(n,a,e[t]?""+e[t]:u.join(String(t)))),e===o?e[t]=n:s?e[t]?e[t]=n:r(e,t,n):(delete e[t],r(e,t,n)))})(Function.prototype,s,(function(){return"function"==typeof this&&this[a]||l.call(this)}))},function(e,t,n){var o=n(20),r=n(51);e.exports=n(22)?function(e,t,n){return o.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var o=n(63);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var o=n(36);e.exports=function(e){return Object(o(e))}},function(e,t,n){var o=n(50)("meta"),r=n(9),i=n(27),a=n(20).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(23)((function(){return l(Object.preventExtensions({}))})),c=function(e){a(e,o,{value:{i:"O"+ ++s,w:{}}})},h=e.exports={KEY:o,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,o)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[o].i},getWeak:function(e,t){if(!i(e,o)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[o].w},onFreeze:function(e){return u&&h.NEED&&l(e)&&!i(e,o)&&c(e),e}}},function(e,t,n){"use strict";t.__esModule=!0,t.toUpperCaseFirst=function(e){return e[0].toUpperCase()+e.substr(1)},t.equalsIgnoreCase=function(){for(var e=[],t=arguments.length,n=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return(""+e).replace(/(?:\\)?\[([^[\]]+)]/g,(function(e,n){return"\\"===e.charAt(0)?e.substr(1,e.length-1):void 0===t[n]?"":t[n]}))},t.stripTags=function(e){return(""+e).replace(r,"")};var o=n(11),r=/<\/?\w+\/?>|<\w+[\s|/][^>]*>/gi},function(e,t,n){"use strict";t.__esModule=!0,t.getRegisteredValidators=t.getRegisteredValidatorNames=t.hasValidator=t.getValidator=t.registerValidator=void 0;var o=l(n(38)),r=l(n(251)),i=l(n(252)),a=l(n(253)),s=l(n(254));function l(e){return e&&e.__esModule?e:{default:e}}var u=(0,o.default)("validators"),c=u.register,h=u.getItem,d=u.hasItem,f=u.getNames,p=u.getValues;c("autocomplete",r.default),c("date",i.default),c("numeric",a.default),c("time",s.default),t.registerValidator=c,t.getValidator=function(e){if("function"==typeof e)return e;if(!d(e))throw Error('No registered validator found under "'+e+'" name');return h(e)},t.hasValidator=d,t.getRegisteredValidatorNames=f,t.getRegisteredValidators=p},function(e,t,n){var o=n(101),r=n(80);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:"common";r.has(e)||r.set(e,new Map);var t=r.get(e);return{register:function(e,n){t.set(e,n)},getItem:function(e){return t.get(e)},hasItem:function(e){return t.has(e)},getNames:function(){return[].concat(o(t.keys()))},getValues:function(){return[].concat(o(t.values()))}}};var r=t.collection=new Map},function(e,t,n){"use strict";t.__esModule=!0,t.setBrowserMeta=a,t.isChrome=function(){return i.chrome.value},t.isEdge=function(){return i.edge.value},t.isIE=function(){return i.ie.value},t.isIE8=function(){return i.ie8.value},t.isIE9=function(){return i.ie9.value},t.isMSBrowser=function(){return i.ie.value||i.edge.value},t.isMobileBrowser=function(){return i.mobile.value},t.isSafari=function(){return i.safari.value};var o=n(1),r=function(e){var t={value:!1,test:function(n,o){t.value=e(n,o)}};return t},i={chrome:r((function(e,t){return/Chrome/.test(e)&&/Google/.test(t)})),edge:r((function(e){return/Edge/.test(e)})),ie:r((function(e){return/Trident/.test(e)})),ie8:r((function(){return!document.createTextNode("test").textContent})),ie9:r((function(){return!!document.documentMode})),mobile:r((function(e){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)})),safari:r((function(e,t){return/Safari/.test(e)&&/Apple Computer/.test(t)}))};function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.userAgent,n=void 0===t?navigator.userAgent:t,r=e.vendor,a=void 0===r?navigator.vendor:r;(0,o.objectEach)(i,(function(e){(0,e.test)(n,a)}))}a()},function(e,t,n){"use strict";t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.requestAnimationFrame=function(e){return a.call(window,e)},t.cancelAnimationFrame=function(e){s.call(window,e)},t.isTouchSupported=function(){return"ontouchstart"in window},t.isWebComponentSupportedNatively=function(){var e=document.createElement("div");return!(!e.createShadowRoot||!e.createShadowRoot.toString().match(/\[native code\]/))},t.hasCaptionProblem=function(){return void 0===u&&function(){var e=document.createElement("TABLE");e.style.borderSpacing=0,e.style.borderWidth=0,e.style.padding=0;var t=document.createElement("TBODY");e.appendChild(t),t.appendChild(document.createElement("TR")),t.firstChild.appendChild(document.createElement("TD")),t.firstChild.firstChild.innerHTML="t
t";var n=document.createElement("CAPTION");n.innerHTML="c
c
c
c",n.style.padding=0,n.style.margin=0,e.insertBefore(n,t),document.body.appendChild(e),u=e.offsetHeight<2*e.lastChild.offsetHeight,document.body.removeChild(e)}(),u},t.getComparisonFunction=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c||(c="object"===("undefined"==typeof Intl?"undefined":o(Intl))?new Intl.Collator(e,t).compare:"function"==typeof String.prototype.localeCompare?function(e,t){return(""+e).localeCompare(t)}:function(e,t){return e===t?0:e>t?-1:1})};for(var r=0,i=["ms","moz","webkit","o"],a=window.requestAnimationFrame,s=window.cancelAnimationFrame,l=0;l0&&void 0!==arguments[0]&&arguments[0],t=this.shouldBeRendered();this.clone&&(this.needFullRender||t)&&this.clone.draw(e),this.needFullRender=t}},{key:"reset",value:function(){if(this.clone){var e=this.clone.wtTable.holder,t=this.clone.wtTable.hider,n=e.style,o=t.style,r=e.parentNode.style;(0,a.arrayEach)([n,o,r],(function(e){e.width="",e.height=""}))}}},{key:"destroy",value:function(){new s.default(this.clone).destroy()}}]),e}();t.default=h},function(e,t,n){"use strict";t.__esModule=!0,t.toSingleLine=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:200,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,o=r(e,t),i=n;function a(){for(var t=arguments.length,n=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:200,n=null,o=void 0;return function(){for(var r=this,i=arguments.length,a=Array(i),s=0;s1?t-1:0),o=1;o=t?e.apply(this,s):n(s)}}([])},t.curryRight=function(e){var t=e.length;return function n(o){return function(){for(var r=arguments.length,i=Array(r),a=0;a=t?e.apply(this,s):n(s)}}([])};var o=n(2);function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,n=0,o={lastCallThrottled:!0},r=null;return function(){for(var i=this,a=arguments.length,s=Array(a),l=0;l1?n-1:0),i=1;i'+String.fromCharCode(10003)+""+e};var o=n(1),r=n(2);function i(e,t){return"border_row"+e+"col"+t}function a(){return{width:1,color:"#000"}}function s(){return{hide:!0}}function l(){return{width:1,color:"#000",cornerVisible:!1}}},function(e,t){e.exports=!1},function(e,t){var n=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports={}},function(e,t,n){var o=n(20).f,r=n(27),i=n(12)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,i)&&o(e,i,{configurable:!0,value:t})}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";t.__esModule=!0,t.EditorState=void 0;var o=n(4),r=n(11),i=t.EditorState={VIRGIN:"STATE_VIRGIN",EDITING:"STATE_EDITING",WAITING:"STATE_WAITING",FINISHED:"STATE_FINISHED"};function a(e){this.instance=e,this.state=i.VIRGIN,this._opened=!1,this._fullEditMode=!1,this._closeCallback=null,this.init()}a.prototype._fireCallbacks=function(e){this._closeCallback&&(this._closeCallback(e),this._closeCallback=null)},a.prototype.init=function(){},a.prototype.getValue=function(){throw Error("Editor getValue() method unimplemented")},a.prototype.setValue=function(){throw Error("Editor setValue() method unimplemented")},a.prototype.open=function(){throw Error("Editor open() method unimplemented")},a.prototype.close=function(){throw Error("Editor close() method unimplemented")},a.prototype.prepare=function(e,t,n,o,r,a){this.TD=o,this.row=e,this.col=t,this.prop=n,this.originalValue=r,this.cellProperties=a,this.state=i.VIRGIN},a.prototype.extend=function(){var e=this.constructor;return function(e,t){function n(){}return n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e}((function(){for(var t=arguments.length,n=Array(t),o=0;on[2]&&(o=n[0],n[0]=n[2],n[2]=o),n[1]>n[3]&&(o=n[1],n[1]=n[3],n[3]=o)):n=[this.row,this.col,null,null],this.instance.populateFromArray(n[0],n[1],e,n[2],n[3],"edit")},a.prototype.beginEditing=function(e,t){if(this.state===i.VIRGIN){if(this.instance.view.scrollViewport(new o.CellCoords(this.row,this.col)),this.state=i.EDITING,this.isInFullEditMode()){var n="string"==typeof e?e:(0,r.stringify)(this.originalValue);this.setValue(n)}this.open(t),this._opened=!0,this.focus(),this.instance.view.render(),this.instance.runHooks("afterBeginEditing",this.row,this.col)}},a.prototype.finishEditing=function(e,t,n){var o=this,r=void 0;if(n){var a=this._closeCallback;this._closeCallback=function(e){a&&a(e),n(e),o.instance.view.render()}}if(!this.isWaiting())if(this.state!==i.VIRGIN){if(this.state===i.EDITING){if(e)return this.cancelChanges(),void this.instance.view.render();var s=this.getValue();r=this.instance.getSettings().trimWhitespace?[["string"==typeof s?String.prototype.trim.call(s||""):s]]:[[s]],this.state=i.WAITING,this.saveValue(r,t),this.instance.getCellValidator(this.cellProperties)?this.instance.addHookOnce("postAfterValidate",(function(e){o.state=i.FINISHED,o.discardEditor(e)})):(this.state=i.FINISHED,this.discardEditor(!0))}}else this.instance._registerTimeout((function(){o._fireCallbacks(!0)}))},a.prototype.cancelChanges=function(){this.state=i.FINISHED,this.discardEditor()},a.prototype.discardEditor=function(e){this.state===i.FINISHED&&(!1===e&&!0!==this.cellProperties.allowInvalid?(this.instance.selectCell(this.row,this.col),this.focus(),this.state=i.EDITING,this._fireCallbacks(!1)):(this.close(),this._opened=!1,this._fullEditMode=!1,this.state=i.VIRGIN,this._fireCallbacks(!0)))},a.prototype.enableFullEditMode=function(){this._fullEditMode=!0},a.prototype.isInFullEditMode=function(){return this._fullEditMode},a.prototype.isOpened=function(){return this._opened},a.prototype.isWaiting=function(){return this.state===i.WAITING},a.prototype.checkEditorSection=function(){var e=this.instance.countRows(),t="";return this.row=e-this.instance.getSettings().fixedRowsBottom?t=this.col=e.getSetting("totalRows")||this.col>=e.getSetting("totalColumns"))}},{key:"isEqual",value:function(e){return e===this||this.row===e.row&&this.col===e.col}},{key:"isSouthEastOf",value:function(e){return this.row>=e.row&&this.col>=e.col}},{key:"isNorthWestOf",value:function(e){return this.row<=e.row&&this.col<=e.col}},{key:"isSouthWestOf",value:function(e){return this.row>=e.row&&this.col<=e.col}},{key:"isNorthEastOf",value:function(e){return this.row<=e.row&&this.col>=e.col}},{key:"toObject",value:function(){return{row:this.row,col:this.col}}}]),e}();t.default=r},function(t,n){t.exports=e},function(e,t,n){"use strict";t.__esModule=!0,t.log=function(){var e;(0,o.isDefined)(console)&&(e=console).log.apply(e,arguments)},t.warn=function(){var e;(0,o.isDefined)(console)&&(e=console).warn.apply(e,arguments)},t.info=function(){var e;(0,o.isDefined)(console)&&(e=console).info.apply(e,arguments)},t.error=function(){var e;(0,o.isDefined)(console)&&(e=console).error.apply(e,arguments)};var o=n(11)},function(e,t,n){"use strict";t.__esModule=!0;var o=n(0),r=c(n(234)),i=n(55),a=c(i),s=c(n(5)),l=n(21),u=n(13);function c(e){return e&&e.__esModule?e:{default:e}}var h=a.default.prototype.extend();h.prototype.init=function(){var e=this;this.createElements(),this.eventManager=new s.default(this),this.bindEvents(),this.autoResize=(0,r.default)(),this.holderZIndex=-1,this.instance.addHook("afterDestroy",(function(){e.destroy()}))},h.prototype.prepare=function(e,t,n,o,r,s){for(var l=this,u=this.state,c=arguments.length,h=Array(c>6?c-6:0),d=6;d=0?this.holderZIndex:"",this.textareaParentStyle.position=""},h.prototype.getValue=function(){return this.TEXTAREA.value},h.prototype.setValue=function(e){this.TEXTAREA.value=e},h.prototype.beginEditing=function(){if(this.state===i.EditorState.VIRGIN){this.TEXTAREA.value="";for(var e=arguments.length,t=Array(e),n=0;n0&&void 0!==arguments[0]&&arguments[0];if(this.state===i.EditorState.EDITING||e)if(this.TD=this.getEditedCell(),this.TD){var t=(0,o.offset)(this.TD),n=(0,o.offset)(this.instance.rootElement),r=this.instance.view.wt.wtOverlays.topOverlay.mainTableScrollableElement,a=this.instance.countRows(),s=r!==window?r.scrollTop:0,l=r!==window?r.scrollLeft:0,u=this.checkEditorSection(),c=["","left"].includes(u)?s:0,h=["","top","bottom"].includes(u)?l:0,d=t.top===n.top?0:1,f=this.instance.getSettings(),p=this.instance.hasColHeaders(),g=this.TD.style.backgroundColor,v=t.top-n.top-d-c,y=t.left-n.left-1-h,m=void 0;switch(u){case"top":m=(0,o.getCssTransform)(this.instance.view.wt.wtOverlays.topOverlay.clone.wtTable.holder.parentNode);break;case"left":m=(0,o.getCssTransform)(this.instance.view.wt.wtOverlays.leftOverlay.clone.wtTable.holder.parentNode);break;case"top-left-corner":m=(0,o.getCssTransform)(this.instance.view.wt.wtOverlays.topLeftCornerOverlay.clone.wtTable.holder.parentNode);break;case"bottom-left-corner":m=(0,o.getCssTransform)(this.instance.view.wt.wtOverlays.bottomLeftCornerOverlay.clone.wtTable.holder.parentNode);break;case"bottom":m=(0,o.getCssTransform)(this.instance.view.wt.wtOverlays.bottomOverlay.clone.wtTable.holder.parentNode)}(p&&0===this.instance.getSelectedLast()[0]||f.fixedRowsBottom&&this.instance.getSelectedLast()[0]===a-f.fixedRowsBottom)&&(v+=1),0===this.instance.getSelectedLast()[1]&&(y+=1),m&&-1!==m?this.textareaParentStyle[m[0]]=m[1]:(0,o.resetCssTransform)(this.TEXTAREA_PARENT),this.textareaParentStyle.top=v+"px",this.textareaParentStyle.left=y+"px",this.showEditableElement();var w=this.instance.view.wt.wtViewport.rowsRenderCalculator.startPosition,C=this.instance.view.wt.wtViewport.columnsRenderCalculator.startPosition,b=this.instance.view.wt.wtOverlays.leftOverlay.getScrollPosition(),E=this.instance.view.wt.wtOverlays.topOverlay.getScrollPosition(),S=(0,o.getScrollbarWidth)(),O=this.TD.offsetTop+w-E,T=this.TD.offsetLeft+C-b,_=(0,o.innerWidth)(this.TD)-8,R=(0,o.hasVerticalScrollbar)(r)?S:0,k=(0,o.hasHorizontalScrollbar)(r)?S:0,M=this.instance.view.maximumVisibleElementWidth(T)-9-R,A=this.TD.scrollHeight+1,N=Math.max(this.instance.view.maximumVisibleElementHeight(O)-k,23),H=(0,o.getComputedStyle)(this.TD);this.TEXTAREA.style.fontSize=H.fontSize,this.TEXTAREA.style.fontFamily=H.fontFamily,this.TEXTAREA.style.backgroundColor=g||(0,o.getComputedStyle)(this.TEXTAREA).backgroundColor,this.autoResize.init(this.TEXTAREA,{minHeight:Math.min(A,N),maxHeight:N,minWidth:Math.min(_,M),maxWidth:M},!0)}else e||this.close(!0)},h.prototype.bindEvents=function(){var e=this;this.eventManager.addEventListener(this.TEXTAREA,"cut",(function(e){(0,u.stopPropagation)(e)})),this.eventManager.addEventListener(this.TEXTAREA,"paste",(function(e){(0,u.stopPropagation)(e)})),this.instance.addHook("afterScrollHorizontally",(function(){e.refreshDimensions()})),this.instance.addHook("afterScrollVertically",(function(){e.refreshDimensions()})),this.instance.addHook("afterColumnResize",(function(){e.refreshDimensions(),e.focus()})),this.instance.addHook("afterRowResize",(function(){e.refreshDimensions(),e.focus()})),this.instance.addHook("afterDestroy",(function(){e.eventManager.destroy()}))},h.prototype.destroy=function(){this.eventManager.destroy()},t.default=h},function(e,t){var n=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},function(e,t,n){var o=n(60),r=Math.max,i=Math.min;e.exports=function(e,t){return(e=o(e))<0?r(e+t,0):i(e,t)}},function(e,t,n){var o=n(28);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(e,t,n,o){if(!(e instanceof t)||void 0!==o&&o in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var o=n(30),r=n(104),i=n(105),a=n(18),s=n(25),l=n(106),u={},c={};(t=e.exports=function(e,t,n,h,d){var f,p,g,v,y=d?function(){return e}:l(e),m=o(n,h,t?2:1),w=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(i(y)){for(f=s(e.length);f>w;w++)if((v=t?m(a(p=e[w])[0],p[1]):m(e[w]))===u||v===c)return v}else for(g=y.call(e);!(p=g.next()).done;)if((v=r(g,m,p.value,t))===u||v===c)return v}).BREAK=u,t.RETURN=c},function(e,t,n){"use strict";var o=n(15),r=n(3),i=n(28),a=n(62),s=n(32),l=n(65),u=n(64),c=n(9),h=n(23),d=n(81),f=n(53),p=n(210);e.exports=function(e,t,n,g,v,y){var m=o[e],w=m,C=v?"set":"add",b=w&&w.prototype,E={},S=function(e){var t=b[e];i(b,e,"delete"==e||"has"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return y&&!c(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof w&&(y||b.forEach&&!h((function(){(new w).entries().next()})))){var O=new w,T=O[C](y?{}:-0,1)!=O,_=h((function(){O.has(1)})),R=d((function(e){new w(e)})),k=!y&&h((function(){for(var e=new w,t=5;t--;)e[C](t,t);return!e.has(-0)}));R||((w=t((function(t,n){u(t,w,e);var o=p(new m,t,w);return null!=n&&l(n,v,o[C],o),o}))).prototype=b,b.constructor=w),(_||k)&&(S("delete"),S("has"),v&&S("get")),(k||T)&&S(C),y&&b.clear&&delete b.clear}else w=g.getConstructor(t,e,v,C),a(w.prototype,n),s.NEED=!0;return f(w,e),E[e]=w,r(r.G+r.W+r.F*(w!=m),E),y||g.setStrong(w,e,v),w}},function(e,t,n){var o=n(54),r=n(51),i=n(24),a=n(75),s=n(27),l=n(100),u=Object.getOwnPropertyDescriptor;t.f=n(22)?u:function(e,t){if(e=i(e),t=a(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return r(!o.f.call(e,t),e[t])}},function(e,t,n){var o=n(30),r=n(77),i=n(31),a=n(25),s=n(211);e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,c=4==e,h=6==e,d=5==e||h,f=t||s;return function(t,s,p){for(var g,v,y=i(t),m=r(y),w=o(s,p,3),C=a(m.length),b=0,E=n?f(t,C):l?f(t,0):void 0;C>b;b++)if((d||b in m)&&(v=w(g=m[b],b,y),e))if(n)E[b]=v;else if(v)switch(e){case 3:return!0;case 5:return g;case 6:return b;case 2:E.push(g)}else if(c)return!1;return h?-1:u||c?c:E}}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(29),r=n(28),i=n(23),a=n(36),s=n(12);e.exports=function(e,t,n){var l=s(e),u=n(a,l,""[e]),c=u[0],h=u[1];i((function(){var t={};return t[l]=function(){return 7},7!=""[e](t)}))&&(r(String.prototype,e,c),o(RegExp.prototype,l,2==t?function(e,t){return h.call(e,this,t)}:function(e){return h.call(e,this)}))}},function(e,t,n){"use strict";t.__esModule=!0,t.DEFAULT_LANGUAGE_CODE=t.getLanguagesDictionaries=t.getDefaultLanguageDictionary=t.hasLanguageDictionary=t.getLanguageDictionary=t.registerLanguageDictionary=void 0;var o=n(1),r=n(199),i=s(n(38)),a=s(n(270));function s(e){return e&&e.__esModule?e:{default:e}}var l=a.default.languageCode,u=(0,i.default)("languagesDictionaries"),c=u.register,h=u.getItem,d=u.hasItem,f=u.getValues;function p(e,t){var n=e,i=t;return(0,o.isObject)(e)&&(n=(i=e).languageCode),function(e,t){e!==l&&(0,r.extendNotExistingKeys)(t,h(l))}(n,i),c(n,(0,o.deepClone)(i)),(0,o.deepClone)(i)}function g(e){return d(e)}t.registerLanguageDictionary=p,t.getLanguageDictionary=function(e){return g(e)?(0,o.deepClone)(h(e)):null},t.hasLanguageDictionary=g,t.getDefaultLanguageDictionary=function(){return a.default},t.getLanguagesDictionaries=function(){return f()},t.DEFAULT_LANGUAGE_CODE=l,p(a.default)},function(e,t,n){"use strict";t.__esModule=!0,t.SELECTION_TYPES=t.SELECTION_TYPE_OBJECT=t.SELECTION_TYPE_ARRAY=t.SELECTION_TYPE_EMPTY=t.SELECTION_TYPE_UNRECOGNIZED=void 0;var o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.detectSelectionType=v,t.normalizeSelectionFactory=y,t.transformSelectionToColumnDistance=function(e){var t=v(e);if(t===l||t===u)return[];var n=y(t),r=new Set;(0,a.arrayEach)(e,(function(e){var t=n(e),i=o(t,4),s=i[1],l=i[3]-s+1;(0,a.arrayEach)(Array.from(new Array(l),(function(e,t){return s+t})),(function(e){r.has(e)||r.add(e)}))}));var i=Array.from(r).sort((function(e,t){return e-t}));return(0,a.arrayReduce)(i,(function(e,t,n,o){return 0!==n&&t===o[n-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e}),[])},t.transformSelectionToRowDistance=function(e){var t=v(e);if(t===l||t===u)return[];var n=y(t),r=new Set;(0,a.arrayEach)(e,(function(e){var t=n(e),i=o(t,3),s=i[0],l=i[2]-s+1;(0,a.arrayEach)(Array.from(new Array(l),(function(e,t){return s+t})),(function(e){r.has(e)||r.add(e)}))}));var i=Array.from(r).sort((function(e,t){return e-t}));return(0,a.arrayReduce)(i,(function(e,t,n,o){return 0!==n&&t===o[n-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e}),[])},t.isValidCoord=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0;return"number"==typeof e&&e>=0&&e1&&void 0!==arguments[1]?arguments[1]:p;if(t!==p&&t!==g)throw new Error("The second argument is used internally only and cannot be overwritten.");var n=Array.isArray(e),o=t===p,a=l;if(n){var s=e[0];0===e.length?a=u:o&&s instanceof i.CellRange?a=h:o&&Array.isArray(s)?a=v(s,g):e.length>=2&&e.length<=4&&!e.some((function(e,t){return!f[t].includes(void 0===e?"undefined":r(e))}))&&(a=c)}return a}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.keepDirection,o=void 0!==n&&n,r=t.propToCol;if(!d.includes(e))throw new Error("Unsupported selection ranges schema type was provided.");return function(t){var n=e===h,i=n?t.from.row:t[0],a=n?t.from.col:t[1],l=n?t.to.row:t[2],u=n?t.to.col:t[3];if("function"==typeof r&&("string"==typeof a&&(a=r(a)),"string"==typeof u&&(u=r(u))),(0,s.isUndefined)(l)&&(l=i),(0,s.isUndefined)(u)&&(u=a),!o){var c=i,d=a,f=l,p=u;i=Math.min(c,f),a=Math.min(d,p),l=Math.max(c,f),u=Math.max(d,p)}return[i,a,l,u]}}},function(e,t,n){"use strict";t.__esModule=!0,t.FIRST_AFTER_SECOND=t.FIRST_BEFORE_SECOND=t.DO_NOT_SWAP=void 0,t.getSortFunctionForColumn=function(e){return e.sortFunction?e.sortFunction:"date"===e.type?o.default:"numeric"===e.type?i.default:r.default};var o=a(n(292)),r=a(n(293)),i=a(n(294));function a(e){return e&&e.__esModule?e:{default:e}}t.DO_NOT_SWAP=0,t.FIRST_BEFORE_SECOND=-1,t.FIRST_AFTER_SECOND=1},function(e,t,n){var o=n(9),r=n(15).document,i=o(r)&&o(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},function(e,t,n){var o=n(9);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var o=n(18),r=n(208),i=n(80),a=n(78)("IE_PROTO"),s=function(){},l="prototype",u=function(){var e,t=n(74)("iframe"),o=i.length;for(t.style.display="none",n(103).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("'; - } /** * Renders library content. @@ -283,34 +291,50 @@ private function _renderLibrary() { echo '
'; echo '
'; if ( ! empty( $this->charts ) ) { - echo '
'; - $count = 0; - foreach ( $this->charts as $placeholder_id => $chart ) { - // show the sidebar after the first 3 charts. - $count++; - $enable_controls = false; - $settings = isset( $chart['settings'] ) ? $chart['settings'] : array(); - if ( ! empty( $settings['controls']['controlType'] ) ) { - $column_index = $settings['controls']['filterColumnIndex']; - $column_label = $settings['controls']['filterColumnLabel']; - if ( 'false' !== $column_index || 'false' !== $column_label ) { - $enable_controls = true; + if ( $this->_isListView() ) { + echo '
'; + $this->_renderSidebar(); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + foreach ( $this->charts as $placeholder_id => $chart ) { + $enable_controls = false; + $settings = isset( $chart['settings'] ) ? $chart['settings'] : array(); + if ( ! empty( $settings['controls']['controlType'] ) ) { + $column_index = $settings['controls']['filterColumnIndex']; + $column_label = $settings['controls']['filterColumnLabel']; + if ( 'false' !== $column_index || 'false' !== $column_label ) { + $enable_controls = true; + } } - } - if ( 3 === $count ) { - $this->_renderSidebar(); - $this->_renderChartBox( $placeholder_id, $chart['id'], $enable_controls ); - } else { $this->_renderChartBox( $placeholder_id, $chart['id'], $enable_controls ); } - } - // show the sidebar if there are less than 3 charts. - if ( $count < 3 ) { + echo '
' . esc_html__( 'ID', 'visualizer' ) . '' . esc_html__( 'Title', 'visualizer' ) . '' . esc_html__( 'Type', 'visualizer' ) . '' . esc_html__( 'Shortcode', 'visualizer' ) . '' . esc_html__( 'Actions', 'visualizer' ) . '
'; + echo '
'; + } else { + echo '
'; $this->_renderSidebar(); + foreach ( $this->charts as $placeholder_id => $chart ) { + $enable_controls = false; + $settings = isset( $chart['settings'] ) ? $chart['settings'] : array(); + if ( ! empty( $settings['controls']['controlType'] ) ) { + $column_index = $settings['controls']['filterColumnIndex']; + $column_label = $settings['controls']['filterColumnLabel']; + if ( 'false' !== $column_index || 'false' !== $column_label ) { + $enable_controls = true; + } + } + $this->_renderChartBox( $placeholder_id, $chart['id'], $enable_controls ); + } + echo '
'; } - echo '
'; } else { - echo '
'; + echo '
'; echo '
'; echo '
'; echo '
', esc_html__( 'No charts found', 'visualizer' ), '

', esc_html__( 'Add New', 'visualizer' ), '

'; @@ -322,7 +346,7 @@ private function _renderLibrary() { echo ''; echo ''; echo ''; - echo ''; + echo ''; echo '
'; echo '
'; echo '
'; @@ -400,7 +424,7 @@ private function _renderChartBox( $placeholder_id, $chart_id, $with_filter = fal ); $chart_type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true ); - $types = ['area', 'geo', 'column', 'bubble', 'scatter', 'gauge', 'candlestick', 'timeline', 'combo', 'polarArea', 'radar' ]; + $types = array( 'area', 'geo', 'column', 'bubble', 'scatter', 'gauge', 'candlestick', 'timeline', 'combo', 'polarArea', 'radar' ); $pro_class = ''; @@ -414,7 +438,28 @@ private function _renderChartBox( $placeholder_id, $chart_id, $with_filter = fal $chart_status['title'] = __( 'Click to view the error', 'visualizer' ); } $shortcode = sprintf( '[visualizer id="%s" class=""]', $chart_id ); - echo '
', esc_html( $title ), '
'; + + if ( $this->_isListView() ) { + // ── List view: table row ── + echo ''; + echo '#' . esc_html( (string) $chart_id ) . ''; + echo '' . esc_html( $title ) . ''; + echo '' . ( ! empty( $chart_type ) ? '' . esc_html( $chart_type ) . '' : '—' ) . ''; + echo '' . esc_html( $shortcode ) . ''; + echo ''; + echo ''; + return; + } + + // ── Grid view: card ── + $type_badge = ! empty( $chart_type ) ? '' . esc_html( $chart_type ) . '' : ''; + echo '
' . esc_html( $title ) . '' . $type_badge . '
'; if ( Visualizer_Module::is_pro() && $with_filter ) { echo '
'; echo '
'; @@ -427,14 +472,14 @@ private function _renderChartBox( $placeholder_id, $chart_id, $with_filter = fal } echo '
'; } + /** + * Returns true when the library should render in list (no-preview) mode. + * + * Priority: ?view= URL param (saves to user meta) → saved user meta → grid default. + * + * No nonce needed: this is a bookmarkable UI preference URL. A nonce would expire + * and break saved/shared links for zero real security gain — the value is allowlisted + * to 'list'|'grid' before any write happens. + */ + private function _isListView(): bool { + if ( null !== $this->_list_view_cached ) { + return $this->_list_view_cached; + } + if ( isset( $_GET['view'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $view = sanitize_text_field( wp_unslash( $_GET['view'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( in_array( $view, array( 'list', 'grid' ), true ) ) { + update_user_meta( get_current_user_id(), 'visualizer_library_view', $view ); + } + $this->_list_view_cached = ( 'list' === $view ); + } else { + $saved = get_user_meta( get_current_user_id(), 'visualizer_library_view', true ); + $this->_list_view_cached = ( 'list' === $saved ); + } + return $this->_list_view_cached; + } + + /** + * Returns the HTML for the grid/list view toggle links. + */ + private function _getViewToggleHTML(): string { + $is_list = $this->_isListView(); + $grid_url = esc_url( add_query_arg( 'view', 'grid' ) ); + $list_url = esc_url( add_query_arg( 'view', 'list' ) ); + return '' + . ''; + } + /** * Render 2-col sidebar */ private function _renderSidebar() { if ( ! Visualizer_Module::is_pro() ) { - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '

' . __( 'Discover the power of PRO!', 'visualizer' ) . '

    '; - if ( Visualizer_Module_Admin::proFeaturesLocked() ) { - echo '
  • ' . __( '6 more chart types', 'visualizer' ); - } else { - echo '
  • ' . __( '11 more chart types', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Synchronize Data Periodically', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'ChartJS Charts', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Table Google chart', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Frontend Actions(Print, Export, Copy, Download)', 'visualizer' ) . '
  • '; - } - echo '
  • ' . __( 'Spreadsheet like editor', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Import from other charts', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Use database query to create charts', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Create charts from WordPress tables', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Frontend editor', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Private charts', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'WPML support for translating charts', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Integration with Woocommerce Data endpoints', 'visualizer' ) . '
  • '; - echo '
  • ' . __( 'Auto-sync with online files', 'visualizer' ) . '
'; - echo '

' . __( 'View more features', 'visualizer' ) . '' . __( 'Upgrade Now', 'visualizer' ) . '

'; + $upgrade_url = tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'sidebarMenuUpgrade', 'index' ); + $chart_types = Visualizer_Module_Admin::proFeaturesEnabled() ? __( '6 more chart types', 'visualizer' ) : __( '11 more chart types', 'visualizer' ); + echo '
'; + echo '
'; + echo ''; + echo '
'; + echo '' . esc_html__( 'Unlock the full power of Visualizer PRO!', 'visualizer' ) . ''; + /* translators: %s: number of additional chart types (e.g. "11 more chart types") */ + echo '' . sprintf( esc_html__( '%s, periodic data sync, database queries, frontend editor, and more.', 'visualizer' ), esc_html( $chart_types ) ) . ''; echo '
'; + echo ''; echo '
'; echo '
'; } } - } diff --git a/classes/Visualizer/Render/Page.php b/classes/Visualizer/Render/Page.php index aa5eacd6c..5f70c1e0c 100644 --- a/classes/Visualizer/Render/Page.php +++ b/classes/Visualizer/Render/Page.php @@ -86,5 +86,4 @@ protected function _renderSidebarContent() {} * @access protected */ protected function _renderToolbar() {} - } diff --git a/classes/Visualizer/Render/Page/Data.php b/classes/Visualizer/Render/Page/Data.php index 9e248ec48..9ad6b2365 100644 --- a/classes/Visualizer/Render/Page/Data.php +++ b/classes/Visualizer/Render/Page/Data.php @@ -93,7 +93,7 @@ protected function _renderSidebarContent() {
- +
@@ -108,9 +108,7 @@ protected function _renderSidebarContent() {
'; } @@ -208,7 +208,6 @@ protected function _renderAdvancedSettings() { self::_renderSectionEnd(); self::_renderGroupEnd(); - } /** @@ -276,7 +275,7 @@ protected function _renderActionSettings() { private static function is_excel_enabled() { $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php'; if ( is_readable( $vendor_file ) ) { - include_once( $vendor_file ); + include_once $vendor_file; } if ( version_compare( phpversion(), '5.6.0', '<' ) ) { @@ -313,7 +312,7 @@ public static function _renderSelectItem( $title, $name, $value, array $options, echo '
'; echo '[?]'; echo '', $title, ''; - echo ''; foreach ( $options as $key => $label ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $extra = $multiple && is_array( $value ) ? ( in_array( $key, $value ) ? 'selected' : '' ) : selected( $key, $value, false ); @@ -336,13 +335,13 @@ public static function _renderSelectItem( $title, $name, $value, array $options, * @param string $title The title of the select item. * @param string $name The name of the select item. * @param string $value The actual value of the select item. - * @param string $default The default value of the color picker. + * @param string $default_color The default value of the color picker. */ - protected static function _renderColorPickerItem( $title, $name, $value, $default ) { + protected static function _renderColorPickerItem( $title, $name, $value, $default_color ) { echo '
'; echo '', $title, ''; echo '
'; - echo ''; + echo ''; echo '
'; echo '
'; } @@ -387,10 +386,10 @@ protected static function _renderTextItem( $title, $name, $value, $desc, $placeh * @access public * @param string $title The title of this group. * @param string $html Any additional HTML. - * @param string $class Any additional classes. + * @param string $extra_class Any additional classes. */ - public static function _renderGroupStart( $title, $html = '', $class = '', $id = '' ) { - echo '
  • '; + public static function _renderGroupStart( $title, $html = '', $extra_class = '', $id = '' ) { + echo '
  • '; echo '

    ', $title, '

    '; echo $html; echo '
      '; @@ -506,12 +505,11 @@ protected function _renderFormatField( $index = 0 ) { /** * Render a checkbox item */ - protected static function _renderCheckboxItem( $title, $name, $value, $default, $desc, $disabled = false ) { + protected static function _renderCheckboxItem( $title, $name, $value, $default_value, $desc, $disabled = false ) { echo '
      '; echo '[?]'; echo '', $title, ''; - // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison - echo ''; + echo ''; echo '

      ', $desc, '

      '; echo '
      '; } @@ -552,7 +550,6 @@ protected function load_dependent_assets( $libs ) { if ( in_array( 'numeral', $libs, true ) && ! wp_script_is( 'numeral', 'registered' ) ) { wp_register_script( 'numeral', VISUALIZER_ABSURL . 'js/lib/numeral.min.js', array(), Visualizer_Plugin::VERSION ); } - } /** @@ -605,7 +602,7 @@ protected function _renderChartControlsGroup() { if ( 'google' !== $this->getLibrary() ) { return; } - if ( Visualizer_Module_Admin::proFeaturesLocked() ) { + if ( Visualizer_Module_Admin::proFeaturesEnabled() ) { self::_renderGroupStart( esc_html__( 'Chart Data Filter Configuration', 'visualizer' ) ); } else { self::_renderGroupStart( esc_html__( 'Chart Data Filter Configuration', 'visualizer' ) . '', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-filter-controls' ), 'vz-data-controls' ); @@ -622,7 +619,7 @@ protected function _renderChartControlsGroup() { ); self::_renderSectionEnd(); $this->_renderChartControlsSettings(); - if ( ! Visualizer_Module_Admin::proFeaturesLocked() ) { + if ( ! Visualizer_Module_Admin::proFeaturesEnabled() ) { echo apply_filters( 'visualizer_pro_upsell', '', 'data-filter-configuration' ); echo '
  • '; } @@ -656,8 +653,8 @@ protected function _renderChartControlsSettings() { array( 'vz-controls-opt' ) ); - $column_index = [ 'false' => '' ]; - $column_label = [ 'false' => '' ]; + $column_index = array( 'false' => '' ); + $column_label = array( 'false' => '' ); if ( ! empty( $this->__series ) ) { foreach ( $this->__series as $key => $column ) { $column_type = isset( $column['type'] ) ? $column['type'] : ''; diff --git a/classes/Visualizer/Render/Sidebar/ChartJS.php b/classes/Visualizer/Render/Sidebar/ChartJS.php index d4da43b31..009f53e31 100644 --- a/classes/Visualizer/Render/Sidebar/ChartJS.php +++ b/classes/Visualizer/Render/Sidebar/ChartJS.php @@ -38,7 +38,6 @@ public function __construct( $data = array() ) { 'bottom' => esc_html__( 'Below the chart', 'visualizer' ), 'none' => esc_html__( 'Omit the legend', 'visualizer' ), ); - } /** @@ -78,7 +77,7 @@ protected function hooks() { /** * Loads the assets. */ - function load_chartjs_assets( $deps, $is_frontend ) { + public function load_chartjs_assets( $deps, $is_frontend ) { $this->load_dependent_assets( array( 'moment', 'numeral' ) ); wp_register_script( 'chartjs', VISUALIZER_ABSURL . 'js/lib/chartjs.min.js', array( 'numeral', 'moment' ), null, true ); @@ -96,7 +95,6 @@ function load_chartjs_assets( $deps, $is_frontend ) { $deps, array( 'visualizer-render-chartjs-lib' ) ); - } /** @@ -133,7 +131,6 @@ protected function _renderSeriesSettings() { protected function _renderSeries( $index ) { $this->_renderFormatField( $index ); $this->_renderChartTypeSeries( $index ); - } /** @@ -187,7 +184,6 @@ protected function _renderChartTitleSettings() { '' ) ); - } /** @@ -367,7 +363,6 @@ protected function _renderAnimationSettings() { ); self::_renderSectionEnd(); - } /** @@ -395,7 +390,7 @@ protected function _renderManualConfigDescription() { self::_renderSectionDescription( '' . sprintf( // translators: %1$s - HTML link tag, %2$s - HTML closing link tag, %3$s - HTML link tag, %4$s - HTML closing link tag. - __( 'Configure the graph by providing configuration variables right from the %1$sChartJS API%2$s. You can refer to to some examples %3$shere%4$s.', 'visualizer' ), + __( 'Configure the graph by providing configuration variables right from the %1$sChartJS API%2$s. You can refer to %3$sCommon Snippets%4$s for examples.', 'visualizer' ), '', '', '', diff --git a/classes/Visualizer/Render/Sidebar/Columnar.php b/classes/Visualizer/Render/Sidebar/Columnar.php index 460043b9e..1a1af1709 100644 --- a/classes/Visualizer/Render/Sidebar/Columnar.php +++ b/classes/Visualizer/Render/Sidebar/Columnar.php @@ -110,5 +110,4 @@ protected function _renderHorizontalAxisGeneralSettings() { '#000' ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Google.php b/classes/Visualizer/Render/Sidebar/Google.php index 3f7cd8198..5810cc1ed 100644 --- a/classes/Visualizer/Render/Sidebar/Google.php +++ b/classes/Visualizer/Render/Sidebar/Google.php @@ -82,7 +82,6 @@ public function __construct( $data = array() ) { 'center' => esc_html__( 'Centered in the allocated area', 'visualizer' ), 'end' => esc_html__( 'Aligned to the end of the allocated area', 'visualizer' ), ); - } /** @@ -99,7 +98,7 @@ protected function hooks() { /** * Loads the assets. */ - function load_google_assets( $deps, $is_frontend ) { + public function load_google_assets( $deps, $is_frontend ) { wp_register_script( 'google-jsapi', '//www.gstatic.com/charts/loader.js', array(), null, true ); wp_register_script( 'dom-to-image', VISUALIZER_ABSURL . 'js/lib/dom-to-image.min.js', array(), null, true ); wp_register_script( @@ -117,7 +116,6 @@ function load_google_assets( $deps, $is_frontend ) { $deps, array( 'visualizer-render-google-lib' ) ); - } /** @@ -309,7 +307,6 @@ protected function _renderAnimationSettings() { ); self::_renderSectionEnd(); - } /** diff --git a/classes/Visualizer/Render/Sidebar/Graph.php b/classes/Visualizer/Render/Sidebar/Graph.php index 7ee73de7b..80a2a51a9 100644 --- a/classes/Visualizer/Render/Sidebar/Graph.php +++ b/classes/Visualizer/Render/Sidebar/Graph.php @@ -136,7 +136,6 @@ protected function _renderChartTitleSettings() { '' ) ); - } /** @@ -461,7 +460,6 @@ protected function _renderSeries( $index ) { ); $this->_renderRoleField( $index ); - } /** @@ -525,5 +523,4 @@ protected function _renderVerticalAxisFormatField() { ) ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Linear.php b/classes/Visualizer/Render/Sidebar/Linear.php index 5769f4bc4..7a7b250f8 100644 --- a/classes/Visualizer/Render/Sidebar/Linear.php +++ b/classes/Visualizer/Render/Sidebar/Linear.php @@ -291,7 +291,5 @@ protected function _renderSeries( $index ) { ); $this->_renderRoleField( $index ); - } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php index 807ae4376..7f0bdb385 100644 --- a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php +++ b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php @@ -131,6 +131,5 @@ protected function _renderChartTypeSettings() { self::_renderSectionEnd(); self::_renderGroupEnd(); - } } diff --git a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Linear.php b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Linear.php index a1646331b..f42cac084 100644 --- a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Linear.php +++ b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Linear.php @@ -79,7 +79,6 @@ protected function _renderHorizontalTickSettings() { ); self::_renderSectionEnd(); - } /** @@ -124,7 +123,6 @@ protected function _renderVerticalTickSettings() { ); self::_renderSectionEnd(); - } /** @@ -318,6 +316,5 @@ protected function _renderVerticalAxisGeneralSettings() { ); self::_renderSectionEnd(); - } } diff --git a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php index 987dbf202..96fb590b7 100644 --- a/classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php +++ b/classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php @@ -86,7 +86,6 @@ protected function _renderSliceSettings( $index ) { isset( $this->slices[ $index ]['hoverBackgroundColor'] ) ? $this->slices[ $index ]['hoverBackgroundColor'] : null, null ); - } /** diff --git a/classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php b/classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php deleted file mode 100644 index fd48a5130..000000000 --- a/classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php +++ /dev/null @@ -1,527 +0,0 @@ - | -// +----------------------------------------------------------------------+ -/** - * Class for datatables.net table chart sidebar settings. - * - * THIS IS ONLY FOR BACKWARD COMPATIBILITY ON DEV SYSTEMS. CAN BE REMOVED IN A FUTURE RELEASE. - * - * @since 1.0.0 - */ -class Visualizer_Render_Sidebar_Type_DataTable_DataTable extends Visualizer_Render_Sidebar { - - - /** - * Constructor. - * - * @since 1.0.0 - * - * @access public - * @param array $data The data what has to be associated with this render. - */ - public function __construct( $data = array() ) { - $this->_library = 'datatables'; - $this->_includeCurveTypes = false; - - parent::__construct( $data ); - } - - /** - * Registers additional hooks. - * - * @access protected - */ - protected function hooks() { - if ( $this->_library === 'datatables' ) { - add_filter( 'visualizer_assets_render', array( $this, 'load_assets' ), 10, 2 ); - } - } - - /** - * Registers assets. - * - * @access public - */ - function load_assets( $deps, $is_frontend ) { - $this->load_dependent_assets( array( 'moment' ) ); - - wp_register_script( 'visualizer-datatables', VISUALIZER_ABSURL . 'js/lib/datatables.min.js', array( 'jquery-ui-core', 'moment' ), Visualizer_Plugin::VERSION ); - wp_enqueue_style( 'visualizer-datatables', VISUALIZER_ABSURL . 'css/lib/datatables.min.css', array(), Visualizer_Plugin::VERSION ); - - wp_register_script( - 'visualizer-render-datatables-lib', - VISUALIZER_ABSURL . 'js/render-datatables.js', - array( - 'visualizer-datatables', - ), - Visualizer_Plugin::VERSION, - true - ); - - return array_merge( - $deps, - array( 'visualizer-render-datatables-lib' ) - ); - } - - /** - * Enqueue assets. - */ - public static function enqueue_assets( $deps = array() ) { - wp_enqueue_style( 'visualizer-datatables', VISUALIZER_ABSURL . 'css/lib/datatables.min.css', array(), Visualizer_Plugin::VERSION ); - wp_enqueue_script( 'visualizer-datatables', VISUALIZER_ABSURL . 'js/lib/datatables.min.js', array( 'jquery-ui-core' ), Visualizer_Plugin::VERSION ); - wp_enqueue_script( 'visualizer-render-datatables-lib', VISUALIZER_ABSURL . 'js/render-datatables.js', array_merge( $deps, array( 'jquery-ui-core', 'visualizer-datatables' ) ), Visualizer_Plugin::VERSION, true ); - return 'visualizer-render-datatables-lib'; - } - - /** - * Renders template. - * - * @since 1.0.0 - * - * @access protected - */ - protected function _toHTML() { - $this->_supportsAnimation = false; - $this->_renderGeneralSettings(); - $this->_renderTableSettings(); - $this->_renderColumnSettings(); - $this->_renderAdvancedSettings(); - } - - /** - * Renders chart advanced settings group. - * - * @access protected - */ - protected function _renderAdvancedSettings() { - self::_renderGroupStart( esc_html__( 'Frontend Actions', 'visualizer' ) ); - self::_renderSectionStart(); - self::_renderSectionDescription( esc_html__( 'Configure frontend actions that need to be shown.', 'visualizer' ) ); - self::_renderSectionEnd(); - - $this->_renderActionSettings(); - self::_renderGroupEnd(); - } - - /** - * Renders general settings group. - * - * @since 1.0.0 - * - * @access protected - */ - protected function _renderGeneralSettings() { - self::_renderGroupStart( esc_html__( 'General Settings', 'visualizer' ) ); - self::_renderSectionStart( esc_html__( 'Title', 'visualizer' ), true ); - self::_renderTextItem( - esc_html__( 'Chart Title', 'visualizer' ), - 'title', - $this->title, - esc_html__( 'Text to display in the back-end admin area.', 'visualizer' ) - ); - - echo '
    '; - - self::_renderTextAreaItem( - esc_html__( 'Chart Description', 'visualizer' ), - 'description', - $this->description, - sprintf( - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag. - esc_html__( 'Description to display in the structured data schema as explained %1$shere%2$s', 'visualizer' ), - '', - '' - ) - ); - - self::_renderSectionEnd(); - - self::_renderChartImageSettings(); - - self::_renderGroupEnd(); - } - - /** - * Renders line settings items. - * - * @since 1.0.0 - * - * @access protected - */ - protected function _renderTableSettings() { - self::_renderGroupStart( esc_html__( 'Table Settings', 'visualizer' ) ); - self::_renderSectionStart(); - - self::_renderCheckboxItem( - esc_html__( 'Enable Pagination', 'visualizer' ), - 'paging_bool', - $this->paging_bool, - 'true', - esc_html__( 'To enable paging through the data.', 'visualizer' ) - ); - - echo '
    '; - - self::_renderTextItem( - esc_html__( 'Number of rows per page', 'visualizer' ), - 'pageLength_int', - $this->pageLength_int, - esc_html__( 'The number of rows in each page, when paging is enabled.', 'visualizer' ), - 10, - 'number', - array( 'min' => 1 ) - ); - - echo '
    '; - - self::_renderSelectItem( - esc_html__( 'Pagination type', 'visualizer' ), - 'pagingType', - $this->pagingType, - array( - 'numbers' => esc_html__( 'Page number buttons only', 'visualizer' ), - 'simple' => esc_html__( '\'Previous\' and \'Next\' buttons only', 'visualizer' ), - 'simple_numbers' => esc_html__( '\'Previous\' and \'Next\' buttons, plus page numbers', 'visualizer' ), - 'full' => esc_html__( '\'First\', \'Previous\', \'Next\' and \'Last\' buttons', 'visualizer' ), - 'full_numbers' => esc_html__( '\'First\', \'Previous\', \'Next\' and \'Last\' buttons, plus page numbers', 'visualizer' ), - 'first_last_numbers' => esc_html__( '\'First\' and \'Last\' buttons, plus page numbers', 'visualizer' ), - ), - esc_html__( 'Determines what type of pagination options to show.', 'visualizer' ) - ); - - do_action( 'visualizer_chart_settings', __CLASS__, $this->_data, 'pagination' ); - - echo '
    '; - - self::_renderTextItem( - esc_html__( 'Table Height', 'visualizer' ), - 'scrollY_int', - isset( $this->scrollY_int ) ? $this->scrollY_int : '', - esc_html__( 'Height of the table in pixels (the table will show a scrollbar).', 'visualizer' ), - '', - 'number', - array( - 'min' => 0, - ) - ); - - self::_renderCheckboxItem( - esc_html__( 'Enable Horizontal Scrolling', 'visualizer' ), - 'scrollX', - $this->scrollX, - 'true', - esc_html__( 'To disable wrapping of columns and enabling horizontal scrolling.', 'visualizer' ) - ); - - echo '
    '; - - self::_renderCheckboxItem( - esc_html__( 'Disable Sort', 'visualizer' ), - 'ordering_bool', - $this->ordering_bool, - 'false', - esc_html__( 'To disable sorting on columns.', 'visualizer' ) - ); - - echo '
    '; - - self::_renderCheckboxItem( - esc_html__( 'Freeze Header/Footer', 'visualizer' ), - 'fixedHeader_bool', - $this->fixedHeader_bool, - 'true', - esc_html__( 'Freeze the header and footer.', 'visualizer' ) - ); - - echo '
    '; - - self::_renderCheckboxItem( - esc_html__( 'Responsive table?', 'visualizer' ), - 'responsive_bool', - $this->responsive_bool, - 'true', - esc_html__( 'Enable the table to be responsive.', 'visualizer' ) - ); - - do_action( 'visualizer_chart_settings', __CLASS__, $this->_data, 'table' ); - - self::_renderSectionEnd(); - self::_renderGroupEnd(); - - self::_renderGroupStart( esc_html__( 'Row/Cell Settings', 'visualizer' ) ); - - self::_renderSectionStart( esc_html__( 'Header Row', 'visualizer' ) ); - - self::_renderSectionDescription( esc_html__( 'These values may not reflect on preview and will be applied once you save and reload the chart. ', 'visualizer' ), 'viz-info-msg' ); - - self::_renderColorPickerItem( - esc_html__( 'Background Color', 'visualizer' ), - 'customcss[headerRow][background-color]', - isset( $this->customcss['headerRow']['background-color'] ) ? $this->customcss['headerRow']['background-color'] : null, - null - ); - - self::_renderColorPickerItem( - esc_html__( 'Color', 'visualizer' ), - 'customcss[headerRow][color]', - isset( $this->customcss['headerRow']['color'] ) ? $this->customcss['headerRow']['color'] : null, - null - ); - - self::_renderTextItem( - esc_html__( 'Text Orientation', 'visualizer' ), - 'customcss[headerRow][transform]', - isset( $this->customcss['headerRow']['transform'] ) ? $this->customcss['headerRow']['transform'] : null, - esc_html__( 'In degrees.', 'visualizer' ), - '', - 'number', - array( - 'min' => -180, - 'max' => 180, - ) - ); - self::_renderSectionEnd(); - - self::_renderSectionStart( esc_html__( 'Odd Table Row', 'visualizer' ) ); - - self::_renderSectionDescription( esc_html__( 'These values may not reflect on preview and will be applied once you save and reload the chart. ', 'visualizer' ), 'viz-info-msg' ); - - self::_renderColorPickerItem( - esc_html__( 'Background Color', 'visualizer' ), - 'customcss[oddTableRow][background-color]', - isset( $this->customcss['oddTableRow']['background-color'] ) ? $this->customcss['oddTableRow']['background-color'] : null, - null - ); - - self::_renderColorPickerItem( - esc_html__( 'Color', 'visualizer' ), - 'customcss[oddTableRow][color]', - isset( $this->customcss['oddTableRow']['color'] ) ? $this->customcss['oddTableRow']['color'] : null, - null - ); - - self::_renderTextItem( - esc_html__( 'Text Orientation', 'visualizer' ), - 'customcss[oddTableRow][transform]', - isset( $this->customcss['oddTableRow']['transform'] ) ? $this->customcss['oddTableRow']['transform'] : null, - esc_html__( 'In degrees.', 'visualizer' ), - '', - 'number', - array( - 'min' => -180, - 'max' => 180, - ) - ); - self::_renderSectionEnd(); - - self::_renderSectionStart( esc_html__( 'Even Table Row', 'visualizer' ) ); - - self::_renderSectionDescription( esc_html__( 'These values may not reflect on preview and will be applied once you save and reload the chart. ', 'visualizer' ), 'viz-info-msg' ); - - self::_renderColorPickerItem( - esc_html__( 'Background Color', 'visualizer' ), - 'customcss[evenTableRow][background-color]', - isset( $this->customcss['evenTableRow']['background-color'] ) ? $this->customcss['evenTableRow']['background-color'] : null, - null - ); - - self::_renderColorPickerItem( - esc_html__( 'Color', 'visualizer' ), - 'customcss[evenTableRow][color]', - isset( $this->customcss['evenTableRow']['color'] ) ? $this->customcss['evenTableRow']['color'] : null, - null - ); - - self::_renderTextItem( - esc_html__( 'Text Orientation', 'visualizer' ), - 'customcss[evenTableRow][transform]', - isset( $this->customcss['evenTableRow']['transform'] ) ? $this->customcss['evenTableRow']['transform'] : null, - esc_html__( 'In degrees.', 'visualizer' ), - '', - 'number', - array( - 'min' => -180, - 'max' => 180, - ) - ); - self::_renderSectionEnd(); - - self::_renderSectionStart( esc_html__( 'Table Cell', 'visualizer' ) ); - - self::_renderSectionDescription( esc_html__( 'These values may not reflect on preview and will be applied once you save and reload the chart. ', 'visualizer' ), 'viz-info-msg' ); - - self::_renderColorPickerItem( - esc_html__( 'Background Color', 'visualizer' ), - 'customcss[tableCell][background-color]', - isset( $this->customcss['tableCell']['background-color'] ) ? $this->customcss['tableCell']['background-color'] : null, - null - ); - - self::_renderColorPickerItem( - esc_html__( 'Color', 'visualizer' ), - 'customcss[tableCell][color]', - isset( $this->customcss['tableCell']['color'] ) ? $this->customcss['tableCell']['color'] : null, - null - ); - - self::_renderTextItem( - esc_html__( 'Text Orientation', 'visualizer' ), - 'customcss[tableCell][transform]', - isset( $this->customcss['tableCell']['transform'] ) ? $this->customcss['tableCell']['transform'] : null, - esc_html__( 'In degrees.', 'visualizer' ), - '', - 'number', - array( - 'min' => -180, - 'max' => 180, - ) - ); - self::_renderSectionEnd(); - - do_action( 'visualizer_chart_settings', __CLASS__, $this->_data, 'style' ); - - self::_renderGroupEnd(); - } - - - /** - * Renders combo series settings - * - * @since 1.0.0 - * - * @access protected - */ - protected function _renderColumnSettings() { - self::_renderGroupStart( esc_html__( 'Column Settings', 'visualizer' ) ); - for ( $i = 0, $cnt = count( $this->__series ); $i < $cnt; $i++ ) { - if ( ! empty( $this->__series[ $i ]['label'] ) ) { - self::_renderSectionStart( esc_html( $this->__series[ $i ]['label'] ), false ); - $this->_renderFormatField( $i ); - self::_renderSectionEnd(); - } - } - self::_renderGroupEnd(); - } - - /** - * Renders format field according to series type. - * - * @since 1.3.0 - * - * @access protected - * @param int $index The index of the series. - */ - protected function _renderFormatField( $index = 0 ) { - switch ( $this->__series[ $index ]['type'] ) { - case 'number': - self::_renderTextItem( - esc_html__( 'Thousands Separator', 'visualizer' ), - 'series[' . $index . '][format][thousands]', - isset( $this->series[ $index ]['format']['thousands'] ) ? $this->series[ $index ]['format']['thousands'] : ',', - null, - ',' - ); - self::_renderTextItem( - esc_html__( 'Decimal Separator', 'visualizer' ), - 'series[' . $index . '][format][decimal]', - isset( $this->series[ $index ]['format']['decimal'] ) ? $this->series[ $index ]['format']['decimal'] : '.', - null, - '.' - ); - self::_renderTextItem( - esc_html__( 'Precision', 'visualizer' ), - 'series[' . $index . '][format][precision]', - isset( $this->series[ $index ]['format']['precision'] ) ? $this->series[ $index ]['format']['precision'] : '', - esc_html__( 'Round values to how many decimal places?', 'visualizer' ), - '', - 'number', - array( 'min' => 0 ) - ); - self::_renderTextItem( - esc_html__( 'Prefix', 'visualizer' ), - 'series[' . $index . '][format][prefix]', - isset( $this->series[ $index ]['format']['prefix'] ) ? $this->series[ $index ]['format']['prefix'] : '', - null, - '' - ); - self::_renderTextItem( - esc_html__( 'Suffix', 'visualizer' ), - 'series[' . $index . '][format][suffix]', - isset( $this->series[ $index ]['format']['suffix'] ) ? $this->series[ $index ]['format']['suffix'] : '', - null, - '' - ); - break; - case 'date': - case 'datetime': - case 'timeofday': - self::_renderTextItem( - esc_html__( 'Display Date Format', 'visualizer' ), - 'series[' . $index . '][format][to]', - isset( $this->series[ $index ]['format']['to'] ) ? $this->series[ $index ]['format']['to'] : '', - sprintf( - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag. - esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sdate and time formats here%2$s.', 'visualizer' ), - '', - '' - ), - 'Do MMM YYYY' - ); - self::_renderTextItem( - esc_html__( 'Source Date Format', 'visualizer' ), - 'series[' . $index . '][format][from]', - isset( $this->series[ $index ]['format']['from'] ) ? $this->series[ $index ]['format']['from'] : '', - sprintf( - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag. - esc_html__( 'What format is the source date in? Similar to the %1$sdate and time formats here%2$s.', 'visualizer' ), '', '' - ), - 'YYYY-MM-DD' - ); - break; - case 'boolean': - self::_renderTextItem( - esc_html__( 'Truthy value', 'visualizer' ), - 'series[' . $index . '][format][truthy]', - isset( $this->series[ $index ]['format']['truthy'] ) ? $this->series[ $index ]['format']['truthy'] : '', - sprintf( - // translators: %1$s - HTML entity code, %2$s - HTML entity code. - esc_html__( 'Provide the HTML entity code for the value the table should display when the value of the column is true. e.g. %1$s (Code: %2$s) instead of true', 'visualizer' ), '✔', '&#10004;' - ), - '' - ); - self::_renderTextItem( - esc_html__( 'Falsy value', 'visualizer' ), - 'series[' . $index . '][format][falsy]', - isset( $this->series[ $index ]['format']['falsy'] ) ? $this->series[ $index ]['format']['falsy'] : '', - sprintf( - // translators: %1$s - HTML entity code, %2$s - HTML entity code. - esc_html__( 'Provide the HTML entity code for the value the table should display when the value of the column is false. e.g. %1$s (Code: %2$s) instead of false', 'visualizer' ), - '✖', - '&#10006;' - ), - '' - ); - break; - } - } - -} diff --git a/classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php b/classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php index 7839f34dc..32c68c879 100644 --- a/classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php +++ b/classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php @@ -58,7 +58,7 @@ protected function hooks() { * * @access public */ - function load_assets( $deps, $is_frontend ) { + public function load_assets( $deps, $is_frontend ) { $this->load_dependent_assets( array( 'moment' ) ); wp_register_script( 'visualizer-datatables', VISUALIZER_ABSURL . 'js/lib/datatables.min.js', array( 'jquery-ui-core', 'moment' ), Visualizer_Plugin::VERSION ); @@ -101,7 +101,7 @@ protected function _toHTML() { $this->_supportsAnimation = false; $this->_renderGeneralSettings(); $this->_renderTableSettings(); - $this->_renderColumnSettings(); + $this->_renderColumnSettings(); $this->_renderAdvancedSettings(); } @@ -177,6 +177,9 @@ protected function _renderTableSettings() { esc_html__( 'To enable paging through the data.', 'visualizer' ) ); + $paging_enabled = ( isset( $this->paging_bool ) && 'true' === $this->paging_bool ); + echo ''; + + echo '
    '; self::_renderTextItem( esc_html__( 'Table Height', 'visualizer' ), @@ -499,5 +504,4 @@ protected function _renderFormatField( $index = 0 ) { break; } } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php index d4a522362..3d5c0bce4 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php @@ -148,5 +148,4 @@ protected function _renderSeries( $index ) { null ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bar.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bar.php index fb1f38a55..098f8a8e3 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bar.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bar.php @@ -72,5 +72,4 @@ protected function _toHTML() { $this->_renderViewSettings(); $this->_renderAdvancedSettings(); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php index 203ad8874..28d2761a0 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php @@ -115,8 +115,5 @@ protected function _renderBubbleSettings() { self::_renderSectionEnd(); self::_renderGroupEnd(); - } - - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php index 04eec1042..453d469b3 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php @@ -175,5 +175,4 @@ protected function _renderSeries( $index ) { null ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Column.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Column.php index a9f8024e1..24ee5e3cb 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Column.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Column.php @@ -72,5 +72,4 @@ protected function _toHTML() { $this->_renderViewSettings(); $this->_renderAdvancedSettings(); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Gauge.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Gauge.php index a3529e8a4..56a2c4db1 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Gauge.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Gauge.php @@ -309,5 +309,4 @@ protected function _renderViewSettings() { self::_renderSectionEnd(); self::_renderGroupEnd(); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php index 4b72929bc..2c07589c1 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php @@ -465,5 +465,4 @@ protected function _renderViewSettings() { self::_renderSectionEnd(); self::_renderGroupEnd(); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Line.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Line.php index 8f2f786d5..e8c954353 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Line.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Line.php @@ -66,5 +66,4 @@ protected function _renderLineSettingsItems() { esc_html__( 'Whether to guess the value of missing points. If yes, it will guess the value of any missing data based on neighboring points. If no, it will leave a break in the line at the unknown point.', 'visualizer' ) ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php index 16c2a0840..17e4624bc 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php @@ -229,5 +229,4 @@ protected function _renderTooltipSettigns() { esc_html__( 'Determines what information to display when the user hovers over a pie slice.', 'visualizer' ) ); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Scatter.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Scatter.php index 7706d3369..ae1b4c534 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Scatter.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Scatter.php @@ -60,5 +60,4 @@ protected function _toHTML() { $this->_renderViewSettings(); $this->_renderAdvancedSettings(); } - } diff --git a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php index 163645c11..da1e2deea 100644 --- a/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php +++ b/classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php @@ -124,6 +124,9 @@ protected function _renderColumnarSettings() { esc_html__( 'To enable paging through the data.', 'visualizer' ) ); + $paging_enabled = ( isset( $this->pagination ) && 1 === $this->pagination ); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison + echo ''; + + echo '
    '; self::_renderCheckboxItem( esc_html__( 'Disable Sort', 'visualizer' ), @@ -410,5 +415,4 @@ protected function _renderSeries( $index ) { protected function _renderSeriesSettings() { parent::_renderSeriesSettings(); } - } diff --git a/classes/Visualizer/Render/Templates.php b/classes/Visualizer/Render/Templates.php index 26676e2af..d8998a66f 100644 --- a/classes/Visualizer/Render/Templates.php +++ b/classes/Visualizer/Render/Templates.php @@ -105,5 +105,4 @@ protected function _toHTML() { $this->_renderTemplate( $template, $callback ); } } - } diff --git a/classes/Visualizer/Source.php b/classes/Visualizer/Source.php index 7b3d6b597..ecd186249 100644 --- a/classes/Visualizer/Source.php +++ b/classes/Visualizer/Source.php @@ -109,7 +109,7 @@ protected static function _validateTypes( $types ) { * @access public * @return string The name of source. */ - public abstract function getSourceName(); + abstract public function getSourceName(); /** * Fetches information from source, parses it and builds series and data arrays. @@ -119,7 +119,7 @@ public abstract function getSourceName(); * @abstract * @access public */ - public abstract function fetch(); + abstract public function fetch(); /** * Returns series parsed from source. @@ -263,7 +263,7 @@ protected function _normalizeData( $data ) { * * @return string The converted data. */ - protected final function toUTF8( $datum ) { + final protected function toUTF8( $datum ) { if ( ! function_exists( 'mb_detect_encoding' ) || mb_detect_encoding( $datum ) !== 'ASCII' ) { $datum = \ForceUTF8\Encoding::toUTF8( $datum ); } @@ -280,7 +280,7 @@ protected final function toUTF8( $datum ) { * * @return array */ - public static final function get_date_formats_if_exists( $series, $data ) { + final public static function get_date_formats_if_exists( $series, $data ) { $date_formats = array(); $types = array(); $index = 0; @@ -288,7 +288,7 @@ public static final function get_date_formats_if_exists( $series, $data ) { if ( in_array( $column['type'], array( 'date', 'datetime', 'timeofday' ), true ) ) { $types[] = array( 'index' => $index, 'type' => $column['type'] ); } - $index++; + ++$index; } if ( ! $types ) { @@ -474,6 +474,4 @@ private function _fetchDataFromEditableTable() { return true; } - - } diff --git a/classes/Visualizer/Source/Csv.php b/classes/Visualizer/Source/Csv.php index 796658646..5d4e91873 100644 --- a/classes/Visualizer/Source/Csv.php +++ b/classes/Visualizer/Source/Csv.php @@ -143,9 +143,10 @@ public function fetch() { } // fetch data - // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition - while ( ( $data = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE ) ) !== false ) { + $data = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE ); + while ( $data !== false ) { $this->_data[] = $this->_normalizeData( $data ); + $data = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE ); } // close file handle diff --git a/classes/Visualizer/Source/Csv/Remote.php b/classes/Visualizer/Source/Csv/Remote.php index 3261133a1..e034ca15e 100644 --- a/classes/Visualizer/Source/Csv/Remote.php +++ b/classes/Visualizer/Source/Csv/Remote.php @@ -161,5 +161,4 @@ protected function _get_file_handle( $filename = false ) { return ! is_wp_error( $this->_tmpfile ) ? parent::_get_file_handle( $this->_tmpfile ) : false; } - } diff --git a/classes/Visualizer/Source/Json.php b/classes/Visualizer/Source/Json.php index 2961cd3ba..027b4c0fc 100644 --- a/classes/Visualizer/Source/Json.php +++ b/classes/Visualizer/Source/Json.php @@ -321,7 +321,6 @@ private function collectCommonElements( $data ) { } return $rows; - } /** @@ -331,7 +330,7 @@ private function collectCommonElements( $data ) { * * @access private */ - private function getNextPage( $array ) { + private function getNextPage( $data ) { if ( empty( $this->_paging ) ) { return null; } @@ -339,10 +338,10 @@ private function getNextPage( $array ) { $root = explode( self::TAG_SEPARATOR, $this->_paging ); // get rid of the first element as that is the faux root element indicator array_shift( $root ); - $leaf = $array; + $leaf = $data; foreach ( $root as $tag ) { if ( array_key_exists( $tag, $leaf ) ) { - $leaf = $array[ $tag ]; + $leaf = $data[ $tag ]; } else { // if the tag does not exist, we assume it is present in the 0th element of the current array. // TODO: we may want to change this to a filter later. @@ -362,19 +361,19 @@ private function getNextPage( $array ) { * * @access private */ - private function getRootElements( $parent, $now, $root, $array ) { - if ( is_null( $array ) ) { + private function getRootElements( $parent_key, $now, $root, $data ) { + if ( is_null( $data ) ) { return null; } - $root[] = $parent; - foreach ( $array as $key => $value ) { + $root[] = $parent_key; + foreach ( $data as $key => $value ) { if ( is_array( $value ) && ! empty( $value ) ) { if ( ! is_numeric( $key ) ) { - $now = sprintf( '%s%s%s', $parent, self::TAG_SEPARATOR, $key ); + $now = sprintf( '%s%s%s', $parent_key, self::TAG_SEPARATOR, $key ); $root[] = $now; } else { - $now = $parent; + $now = $parent_key; } $root = $this->getRootElements( $now, $key, $root, $value ); } @@ -442,7 +441,7 @@ private function connect( $url ) { $this->_additional_headers = array_filter( $this->_additional_headers ); if ( ! empty( $this->_additional_headers ) ) { $this->_additional_headers = array_map( - function( $headers ) { + function ( $headers ) { $headers = explode( ':', $headers ); $headers = array_map( 'trim', $headers ); return $headers; @@ -555,5 +554,4 @@ private function is_woocommerce_request( $url ) { public function getSourceName() { return __CLASS__; } - } diff --git a/classes/Visualizer/Source/Query.php b/classes/Visualizer/Source/Query.php index 9b9f6622e..b08798c8e 100644 --- a/classes/Visualizer/Source/Query.php +++ b/classes/Visualizer/Source/Query.php @@ -152,7 +152,8 @@ function ( $value ) { $headers = array(); // short circuit results for remote dbs. - if ( false !== ( $remote_results = apply_filters( 'visualizer_db_query_execute', false, $this->_query, $as_html, $results_as_numeric_array, $raw_results, $this->_chart_id, $this->_params ) ) ) { + $remote_results = apply_filters( 'visualizer_db_query_execute', false, $this->_query, $as_html, $results_as_numeric_array, $raw_results, $this->_chart_id, $this->_params ); + if ( false !== $remote_results ) { $error = $remote_results['error']; if ( empty( $error ) ) { $results = $remote_results['results']; @@ -180,7 +181,7 @@ function ( $value ) { if ( $wpdb->last_error ) { $this->_error = $wpdb->last_error; - return []; + return array(); } if ( $rows ) { @@ -198,7 +199,7 @@ function ( $value ) { } } $results[] = $result; - $row_num++; + ++$row_num; } } diff --git a/classes/Visualizer/Source/Query/Params.php b/classes/Visualizer/Source/Query/Params.php index 0309a9916..528b23ec6 100644 --- a/classes/Visualizer/Source/Query/Params.php +++ b/classes/Visualizer/Source/Query/Params.php @@ -79,7 +79,7 @@ private function rearrange_columns_for_x_axis( $columns, $select, $tables ) { } } } - $index++; + ++$index; } if ( $first ) { diff --git a/classes/Visualizer/Source/Xlsx.php b/classes/Visualizer/Source/Xlsx.php new file mode 100644 index 000000000..fa08daba9 --- /dev/null +++ b/classes/Visualizer/Source/Xlsx.php @@ -0,0 +1,156 @@ +_filename = trim( (string) $filename ); + } + + /** + * Fetches information from the XLSX file and builds the series/data arrays. + * + * @access public + * @return boolean TRUE on success, FALSE on failure. + */ + public function fetch() { + if ( empty( $this->_filename ) ) { + $this->_error = esc_html__( 'No file provided. Please try again.', 'visualizer' ); + return false; + } + + // Ensure the OpenSpout autoloader is available. + $vendor_file = VISUALIZER_ABSPATH . 'vendor/autoload.php'; + if ( is_readable( $vendor_file ) ) { + include_once $vendor_file; + } + + if ( ! class_exists( 'OpenSpout\Reader\Common\Creator\ReaderEntityFactory' ) ) { + $this->_error = esc_html__( 'The OpenSpout library is required to import XLSX files but could not be found. Please contact support.', 'visualizer' ); + return false; + } + + $reader = \OpenSpout\Reader\Common\Creator\ReaderEntityFactory::createXLSXReader(); + try { + $reader->open( $this->_get_file_path() ); + + $all_rows = array(); + foreach ( $reader->getSheetIterator() as $sheet ) { + foreach ( $sheet->getRowIterator() as $row ) { + $row_data = array(); + foreach ( $row->getCells() as $cell ) { + $value = $cell->getValue(); + // Convert non-string scalars to string for uniform handling; + // _normalizeData() will cast them to the correct type later. + $row_data[] = is_null( $value ) ? null : (string) $value; + } + $all_rows[] = $row_data; + } + break; // Only read the first sheet. + } + } catch ( \Exception $e ) { + $reader->close(); + $this->_error = sprintf( + /* translators: %s - the exception message. */ + esc_html__( 'Could not read the XLSX file: %s', 'visualizer' ), + $e->getMessage() + ); + return false; + } + + $reader->close(); + + if ( count( $all_rows ) < 2 ) { + $this->_error = esc_html__( 'File should have a heading row (1st row) and a data type row (2nd row). Please try again.', 'visualizer' ); + return false; + } + + $labels = array_filter( $all_rows[0] ); + $types = array_filter( $all_rows[1] ); + + if ( ! $labels || ! $types ) { + $this->_error = esc_html__( 'File should have a heading row (1st row) and a data type row (2nd row). Please try again.', 'visualizer' ); + return false; + } + + $types = array_map( 'trim', $types ); + if ( ! self::_validateTypes( $types ) ) { + $this->_error = esc_html__( 'Invalid data types detected in the data type row (2nd row). Please try again.', 'visualizer' ); + return false; + } + + // Build the series array from row 1 (labels) and row 2 (types). + $label_values = $all_rows[0]; + $type_values = $all_rows[1]; + $col_count = count( $label_values ); + + for ( $i = 0; $i < $col_count; $i++ ) { + $default_type = ( $i === 0 ) ? 'string' : 'number'; + $label = isset( $label_values[ $i ] ) ? $this->toUTF8( (string) $label_values[ $i ] ) : ''; + $type = isset( $type_values[ $i ] ) && ! empty( $type_values[ $i ] ) ? trim( $type_values[ $i ] ) : $default_type; + + $this->_series[] = array( + 'label' => sanitize_text_field( wp_strip_all_tags( $label ) ), + 'type' => $type, + ); + } + + // Parse data rows (row 3 onwards). + for ( $r = 2, $total = count( $all_rows ); $r < $total; $r++ ) { + $this->_data[] = $this->_normalizeData( $all_rows[ $r ] ); + } + + return true; + } + + /** + * Returns the file path to open with the reader. + * Subclasses may override this to supply a locally-downloaded copy. + * + * @access protected + * @return string + */ + protected function _get_file_path() { + return $this->_filename; + } + + /** + * Returns the source name. + * + * @access public + * @return string + */ + public function getSourceName() { + return __CLASS__; + } +} diff --git a/classes/Visualizer/Source/Xlsx/Remote.php b/classes/Visualizer/Source/Xlsx/Remote.php new file mode 100644 index 000000000..857c2a988 --- /dev/null +++ b/classes/Visualizer/Source/Xlsx/Remote.php @@ -0,0 +1,146 @@ + $this->_filename, + 'data' => $this->_data, + ) + ); + } + + + /** + * Re-populates data for scheduled refreshes. + * + * @access public + * @param array $data The current data array. + * @param int $chart_id The chart post ID. + * @return array The re-populated data or the original array. + */ + public function repopulateData( $data, $chart_id ) { + if ( ! is_array( $data ) ) { + $data = array(); + } + return array_key_exists( 'data', $data ) ? $data['data'] : $data; + } + + /** + * Re-populates series (series are stored in post meta and remain stable). + * + * @access public + * @param array $series The current series array. + * @param int $chart_id The chart post ID. + * @return array The original series array. + */ + public function repopulateSeries( $series, $chart_id ) { + return $series; + } + + /** + * Returns the source name. + * + * @access public + * @return string + */ + public function getSourceName() { + return __CLASS__; + } + + /** + * Downloads the remote XLSX file to a temporary path and returns that path + * for the parent reader to use. + * + * Enforces a maximum file size (default 10 MB, filterable via + * 'visualizer_xlsx_max_filesize') before handing the path to the parser, + * guarding against ZIP-bomb and DoS attacks. + * + * @access protected + * @return string Path to the temporary file, or the original URL if download failed. + */ + protected function _get_file_path() { + if ( $this->_tmpfile && ! is_wp_error( $this->_tmpfile ) && is_readable( $this->_tmpfile ) ) { + return $this->_tmpfile; + } + + require_once ABSPATH . 'wp-admin/includes/file.php'; + + $this->_tmpfile = download_url( $this->_filename ); + + if ( is_wp_error( $this->_tmpfile ) ) { + $this->_error = esc_html__( 'Could not download the XLSX file. Please check the URL and try again.', 'visualizer' ); + $this->_tmpfile = false; + // Return the original URL so the parent's open() call will fail + // gracefully and set an error rather than throwing a PHP error. + return $this->_filename; + } + + if ( ! is_file( $this->_tmpfile ) ) { + $this->_tmpfile = false; + $this->_error = esc_html__( 'Could not access the downloaded XLSX file. Please try again.', 'visualizer' ); + return $this->_filename; + } + + // Maximum allowed file size in bytes. Default 10 MB; override via filter. + $max_bytes = (int) apply_filters( 'visualizer_xlsx_max_filesize', 10 * 1024 * 1024 ); + if ( filesize( $this->_tmpfile ) > $max_bytes ) { + @unlink( $this->_tmpfile ); // phpcs:ignore WordPress.PHP.NoSilencedErrors + $this->_tmpfile = false; + $this->_error = esc_html__( + 'The XLSX file exceeds the maximum allowed size and cannot be imported.', + 'visualizer' + ); + return $this->_filename; + } + + return $this->_tmpfile; + } + + /** + * Fetches the remote file, parses it, and cleans up the temp file. + * + * @access public + * @return boolean TRUE on success, FALSE on failure. + */ + public function fetch() { + $result = parent::fetch(); + + // Clean up the temporary file after parsing. + if ( $this->_tmpfile && ! is_wp_error( $this->_tmpfile ) && is_file( $this->_tmpfile ) ) { + @unlink( $this->_tmpfile ); // phpcs:ignore WordPress.PHP.NoSilencedErrors + $this->_tmpfile = false; + } + + return $result; + } +} diff --git a/composer.json b/composer.json index 841014c42..1153b42df 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,8 @@ "require": { "codeinwp/themeisle-sdk": "^3.3", "neitanod/forceutf8": "~2.0", - "openspout/openspout": "^3.7" + "openspout/openspout": "^3.7", + "woocommerce/action-scheduler": "^3.8" }, "autoload": { "files": [ @@ -33,8 +34,8 @@ "scripts": { "format": "phpcbf --standard=phpcs.xml --report-summary --report-source", "lint": "phpcs --standard=phpcs.xml", - "phpstan": "phpstan", - "phpstan:generate:baseline": "phpstan --generate-baseline" + "phpstan": "phpstan --memory-limit=2G", + "phpstan:generate:baseline": "phpstan --generate-baseline --memory-limit=2G" }, "minimum-stability": "dev", "prefer-stable": true, @@ -48,10 +49,11 @@ } }, "require-dev": { - "wp-coding-standards/wpcs": "^2.3", + "wp-coding-standards/wpcs": "^3.3", "dealerdirect/phpcodesniffer-composer-installer": "^1.0.0", "phpcompatibility/phpcompatibility-wp": "*", "phpstan/phpstan": "^2.1", - "szepeviktor/phpstan-wordpress": "^2.0" + "szepeviktor/phpstan-wordpress": "^2.0", + "yoast/phpunit-polyfills": "^4.0" } } diff --git a/composer.lock b/composer.lock index 9d638f7d8..83d081cc3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6e978a0b38c64a0f62a8ddadae59cfa2", + "content-hash": "881b5f99c0b72f47e79eb09bdac7fbea", "packages": [ { "name": "codeinwp/themeisle-sdk", - "version": "3.3.49", + "version": "3.3.50", "source": { "type": "git", "url": "https://github.com/Codeinwp/themeisle-sdk.git", - "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20" + "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/605f78bbbd8526f7597a89077791043d9ecc8c20", - "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20", + "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/3c1f8dfc2390e667bbc086c5d660900a7985efa6", + "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6", "shasum": "" }, "require-dev": { @@ -43,9 +43,9 @@ ], "support": { "issues": "https://github.com/Codeinwp/themeisle-sdk/issues", - "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.49" + "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.50" }, - "time": "2025-09-18T13:41:05+00:00" + "time": "2025-11-25T19:36:35+00:00" }, { "name": "neitanod/forceutf8", @@ -176,34 +176,77 @@ } ], "time": "2022-03-31T06:15:15+00:00" + }, + { + "name": "woocommerce/action-scheduler", + "version": "3.9.3", + "source": { + "type": "git", + "url": "https://github.com/woocommerce/action-scheduler.git", + "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/c58cdbab17651303d406cd3b22cf9d75c71c986c", + "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5", + "woocommerce/woocommerce-sniffs": "0.1.0", + "wp-cli/wp-cli": "~2.5.0", + "yoast/phpunit-polyfills": "^2.0" + }, + "type": "wordpress-plugin", + "extra": { + "scripts-description": { + "test": "Run unit tests", + "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer", + "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0-or-later" + ], + "description": "Action Scheduler for WordPress and WooCommerce", + "homepage": "https://actionscheduler.org/", + "support": { + "issues": "https://github.com/woocommerce/action-scheduler/issues", + "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.3" + }, + "time": "2025-07-15T09:32:30+00:00" } ], "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", + "composer-plugin-api": "^2.2", "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { - "composer/composer": "*", + "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", @@ -222,9 +265,9 @@ "authors": [ { "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" }, { "name": "Contributors", @@ -232,7 +275,6 @@ } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", "keywords": [ "PHPCodeSniffer", "PHP_CodeSniffer", @@ -253,22 +295,347 @@ ], "support": { "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2023-01-05T11:28:13+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-11-11T04:32:07+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:15:36+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.13.4", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.7.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + }, + "time": "2025-12-06T11:56:16+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-stubs/wordpress-stubs", - "version": "v6.8.2", + "version": "v6.9.1", "source": { "type": "git", "url": "https://github.com/php-stubs/wordpress-stubs.git", - "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8" + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8", - "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", "shasum": "" }, "conflict": { @@ -279,9 +646,10 @@ "nikic/php-parser": "^5.5", "php": "^7.4 || ^8.0", "php-stubs/generator": "^0.8.3", - "phpdocumentor/reflection-docblock": "^5.4.1", + "phpdocumentor/reflection-docblock": "^6.0", "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.5", + "symfony/polyfill-php80": "*", "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1", "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" }, @@ -304,9 +672,9 @@ ], "support": { "issues": "https://github.com/php-stubs/wordpress-stubs/issues", - "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.8.2" + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.9.1" }, - "time": "2025-07-16T06:41:00+00:00" + "time": "2026-02-03T19:29:21+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -372,16 +740,16 @@ }, { "name": "phpcompatibility/phpcompatibility-paragonie", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", - "reference": "293975b465e0e709b571cbf0c957c6c0a7b9a2ac" + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/293975b465e0e709b571cbf0c957c6c0a7b9a2ac", - "reference": "293975b465e0e709b571cbf0c957c6c0a7b9a2ac", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", "shasum": "" }, "require": { @@ -438,27 +806,32 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" } ], - "time": "2024-04-24T21:30:46+00:00" + "time": "2025-09-19T17:43:28+00:00" }, { "name": "phpcompatibility/phpcompatibility-wp", - "version": "2.1.5", + "version": "2.1.8", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", - "reference": "01c1ff2704a58e46f0cb1ca9d06aee07b3589082" + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/01c1ff2704a58e46f0cb1ca9d06aee07b3589082", - "reference": "01c1ff2704a58e46f0cb1ca9d06aee07b3589082", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", "shasum": "" }, "require": { "phpcompatibility/php-compatibility": "^9.0", - "phpcompatibility/phpcompatibility-paragonie": "^1.0" + "phpcompatibility/phpcompatibility-paragonie": "^1.0", + "squizlabs/php_codesniffer": "^3.3" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0" @@ -508,80 +881,1695 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" } ], - "time": "2024-04-24T21:37:59+00:00" + "time": "2025-10-18T00:05:59+00:00" }, { - "name": "phpstan/phpstan", - "version": "2.1.22", + "name": "phpcsstandards/phpcsextra", + "version": "1.5.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "41600c8379eb5aee63e9413fe9e97273e25d57e4" + "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", + "reference": "b598aa890815b8df16363271b659d73280129101" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/41600c8379eb5aee63e9413fe9e97273e25d57e4", - "reference": "41600c8379eb5aee63e9413fe9e97273e25d57e4", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/b598aa890815b8df16363271b659d73280129101", + "reference": "b598aa890815b8df16363271b659d73280129101", "shasum": "" }, "require": { - "php": "^7.4|^8.0" + "php": ">=5.4", + "phpcsstandards/phpcsutils": "^1.2.0", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" }, - "conflict": { - "phpstan/phpstan-shim": "*" + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], - "description": "PHPStan - PHP Static Analysis Tool", + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors" + } + ], + "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", + "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSExtra" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-11-12T23:06:57+00:00" + }, + { + "name": "phpcsstandards/phpcsutils", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", + "reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/c216317e96c8b3f5932808f9b0f1f7a14e3bbf55", + "reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" + }, + "require-dev": { + "ext-filter": "*", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPCSUtils/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors" + } + ], + "description": "A suite of utility functions for use with PHP_CodeSniffer", + "homepage": "https://phpcsutils.com/", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "phpcs3", + "phpcs4", + "standards", + "static analysis", + "tokens", + "utility" + ], + "support": { + "docs": "https://phpcsutils.com/", + "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSUtils" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-12-08T14:27:58+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "2.1.40", + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", + "reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", "keywords": [ "dev", "static analysis" ], "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2026-02-23T15:04:35+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.32", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.19.1 || ^5.1.0", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.6" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-22T04:23:01+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.34", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "b36f02317466907a230d3aa1d34467041271ef4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b36f02317466907a230d3aa1d34467041271ef4a", + "reference": "b36f02317466907a230d3aa1d34467041271ef4a", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.5.0 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", + "sebastian/comparator": "^4.0.10", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.34" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2026-01-27T05:45:00+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:27:43+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.10", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" + } + ], + "time": "2026-01-24T09:22:56+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:19:30+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:30:58+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" + } + ], + "time": "2025-09-24T06:03:27+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" + } + ], + "time": "2025-08-10T07:10:35+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:20:34+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { - "url": "https://github.com/ondrejmirtes", + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", "type": "github" }, { - "url": "https://github.com/phpstan", + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" + } + ], + "time": "2025-08-10T06:57:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-14T16:00:52+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2025-08-04T19:17:37+00:00" + "time": "2020-09-28T06:39:44+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.3", + "version": "3.13.5", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", "shasum": "" }, "require": { @@ -598,11 +2586,6 @@ "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -646,22 +2629,26 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-09-18T10:38:58+00:00" + "time": "2025-11-04T16:30:35+00:00" }, { "name": "szepeviktor/phpstan-wordpress", - "version": "v2.0.2", + "version": "v2.0.3", "source": { "type": "git", "url": "https://github.com/szepeviktor/phpstan-wordpress.git", - "reference": "963887b04c21fe7ac78e61c1351f8b00fff9f8f8" + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/963887b04c21fe7ac78e61c1351f8b00fff9f8f8", - "reference": "963887b04c21fe7ac78e61c1351f8b00fff9f8f8", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/aa722f037b2d034828cd6c55ebe9e5c74961927e", + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e", "shasum": "" }, "require": { @@ -671,6 +2658,7 @@ }, "require-dev": { "composer/composer": "^2.1.14", + "composer/semver": "^3.4", "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.1", "phpstan/phpstan-strict-rules": "^2.0", @@ -708,36 +2696,94 @@ ], "support": { "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", - "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.2" + "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.3" + }, + "time": "2025-09-14T02:58:22+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, - "time": "2025-02-12T18:43:37+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2025-11-17T20:03:58+00:00" }, { "name": "wp-coding-standards/wpcs", - "version": "2.3.0", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "7da1894633f168fe244afc6de00d141f27517b62" + "reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62", - "reference": "7da1894633f168fe244afc6de00d141f27517b62", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7795ec6fa05663d716a549d0b44e47ffc8b0d4a6", + "reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6", "shasum": "" }, "require": { - "php": ">=5.4", - "squizlabs/php_codesniffer": "^3.3.1" + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", + "php": ">=7.2", + "phpcsstandards/phpcsextra": "^1.5.0", + "phpcsstandards/phpcsutils": "^1.1.0", + "squizlabs/php_codesniffer": "^3.13.4" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6", - "phpcompatibility/php-compatibility": "^9.0", - "phpcsstandards/phpcsdevtools": "^1.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically." + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" }, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", @@ -754,6 +2800,7 @@ "keywords": [ "phpcs", "standards", + "static analysis", "wordpress" ], "support": { @@ -761,7 +2808,76 @@ "source": "https://github.com/WordPress/WordPress-Coding-Standards", "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "time": "2020-05-13T23:57:56+00:00" + "funding": [ + { + "url": "https://opencollective.com/php_codesniffer", + "type": "custom" + } + ], + "time": "2025-11-25T12:08:04+00:00" + }, + { + "name": "yoast/phpunit-polyfills", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", + "reference": "134921bfca9b02d8f374c48381451da1d98402f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/134921bfca9b02d8f374c48381451da1d98402f9", + "reference": "134921bfca9b02d8f374c48381451da1d98402f9", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0 || ^11.0 || ^12.0" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "yoast/yoastcs": "^3.1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.x-dev" + } + }, + "autoload": { + "files": [ + "phpunitpolyfills-autoload.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Team Yoast", + "email": "support@yoast.com", + "homepage": "https://yoast.com" + }, + { + "name": "Contributors", + "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors" + } + ], + "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests", + "homepage": "https://github.com/Yoast/PHPUnit-Polyfills", + "keywords": [ + "phpunit", + "polyfill", + "testing" + ], + "support": { + "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", + "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", + "source": "https://github.com/Yoast/PHPUnit-Polyfills" + }, + "time": "2025-02-09T18:58:54+00:00" } ], "aliases": [], @@ -774,5 +2890,5 @@ "platform-overrides": { "php": "7.4" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/css/frame.css b/css/frame.css index 4dcef45df..8b8d9fcdf 100644 --- a/css/frame.css +++ b/css/frame.css @@ -53,17 +53,17 @@ /******************************************************************************/ #sidebar { - overflow: auto; + overflow-x: hidden; + overflow-y: auto; position: absolute; - z-index: 75; + z-index: 80; top: 0; right: 0; bottom: 60px; width: 350px; border-left: 1px solid #dfdfdf; background: whitesmoke; - - -webkit-overflow-scrolling: touch; + overscroll-behavior: contain; } .viz-group { @@ -174,13 +174,15 @@ width: 100%; height: 100%; margin: 0; + padding-bottom: 60px; } -.viz-group.bottom-fixed { +.viz-group.bottom-fixed { display: block; - position: absolute; - bottom: 0; - width: 100%; + position: fixed; + width: 350px; + padding: 12px; + margin: 0 auto; } .viz-group ul li h2, @@ -1012,8 +1014,52 @@ button#editor-chart-button { } #vz-chart-copyright { - bottom: 10px; + bottom: 60px; text-align: center; + z-index: 999; + background: #f3f3f3; +} + +/* Import steps — stepped data-source + schedule flow */ +.vz-import-step-btn { + width: 100%; + margin-bottom: 4px !important; + text-align: left; +} + +.vz-import-step-toggle { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin: 0; + padding: 5px 10px; + background: #f0f0f1; + border: 1px solid #c3c4c7; + border-radius: 2px; + cursor: pointer; + font-size: 13px; + color: #50575e; + line-height: 2; +} + +.vz-import-step-toggle:hover { + background: #e5e5e5; + border-color: #a7aaad; +} + +.vz-import-step-toggle .dashicons { + transition: transform 0.2s ease; + flex-shrink: 0; +} + +.vz-import-step-toggle[aria-expanded="true"] .dashicons { + transform: rotate(180deg); +} + +#vz-wp-sync-options, +#vz-db-sync-options { + padding-top: 8px; } #sidebar { @@ -1113,12 +1159,14 @@ button#editor-chart-button { left: 0; width: 100%; opacity: 0; + pointer-events: none; background: rgba(253,253,253,0.9); transition: 0.5s ease; } .only-pro-feature:hover .only-pro-content { opacity: 1; + pointer-events: auto; } .only-pro-container { @@ -1134,10 +1182,11 @@ button#editor-chart-button { flex-direction: column; align-items: center; justify-content: center; + gap: 12px; } .only-pro-content p { - margin: 0 0 15px; + margin: 0; font-size: 14px; font-weight: 700; } @@ -1154,9 +1203,6 @@ button#editor-chart-button { border-style: solid; border-radius: 3px; } -.only-pro-content .only-pro-container a { - color: #fff !important; -} .only-pro-content a:hover { background: #2D419B; @@ -1479,6 +1525,61 @@ span.viz-section-error { } +/******************************************************************************/ +/************************ manual config JSON editor *************************/ +/******************************************************************************/ +textarea[name="manual"] + .CodeMirror { + background: #282923; + color: #f8f8f2; + border-radius: 4px; + height: 200px; + font-size: 13px; +} + +textarea[name="manual"] + .CodeMirror .CodeMirror-scroll { + min-height: 200px; +} + +textarea[name="manual"] + .CodeMirror .CodeMirror-gutters { + background: #1e1f1c; + border-right: 1px solid #404040; + color: #75715e; +} + +textarea[name="manual"] + .CodeMirror .CodeMirror-linenumber { + color: #75715e; +} + +textarea[name="manual"] + .CodeMirror .CodeMirror-cursor { + border-left: 1px solid #f8f8f0; +} + +textarea[name="manual"] + .CodeMirror .CodeMirror-selected { + background: #49483e; +} + +textarea[name="manual"] + .CodeMirror pre.CodeMirror-line, +textarea[name="manual"] + .CodeMirror pre.CodeMirror-line-like { + color: #f8f8f2; +} + +textarea[name="manual"] + .CodeMirror .cm-string { + color: #A9DC76; +} + +textarea[name="manual"] + .CodeMirror .cm-number { + color: #AB9DF2; +} + +textarea[name="manual"] + .CodeMirror .cm-atom { + color: #78DCE8; +} + +textarea[name="manual"] + .CodeMirror .cm-punctuation, +textarea[name="manual"] + .CodeMirror .cm-bracket { + color: #f8f8f2; +} + /******************************************************************************/ /******************************** data tables *******************************/ /******************************************************************************/ diff --git a/css/library.css b/css/library.css index b11e71dbb..20d700167 100644 --- a/css/library.css +++ b/css/library.css @@ -627,3 +627,295 @@ div#visualizer-types ul, div#visualizer-types form p { text-align: inherit; text-decoration: none; } + +/* ── View toggle buttons ── */ +span.viz-view-toggle-group { + display: inline-flex; + align-items: center; + gap: 4px; + margin-left: 0; + margin-right: 8px; + vertical-align: middle; + border: 1px solid #c3c4c7; + border-radius: 4px; + padding: 1px; + background: #f6f7f7; +} + +.viz-view-toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + padding: 0; + cursor: pointer; + background: transparent; + border: none; + border-radius: 3px; + color: #646970; + line-height: 1; + text-decoration: none; +} + +.viz-view-toggle.active { + background: #007CBA; + color: #fff; +} + +.viz-view-toggle:hover:not(.active) { + background: #e0e0e0; + color: #1d2327; +} + +.viz-view-toggle:focus { + outline: 2px solid #007CBA; + outline-offset: 0; + box-shadow: none; +} + +/* ── Edit button — more visible ── */ +.visualizer-action-group:not(.visualizer-nochart) .visualizer-chart-action.visualizer-chart-edit { + background-color: #007CBA; + color: #fff; + border-radius: 4px; +} + +.visualizer-action-group:not(.visualizer-nochart) .visualizer-chart-action.visualizer-chart-edit:hover, +.visualizer-action-group:not(.visualizer-nochart) .visualizer-chart-action.visualizer-chart-edit:focus { + background-color: #0069a6 !important; + color: #fff !important; +} + +/* ── Compact upsell banner ── */ +#visualizer-library .items--upsell { + width: 100%; +} + +.viz-upsell-banner { + display: flex; + align-items: center; + gap: 12px; + background: #fff; + border-left: 4px solid #007CBA; + padding: 12px 16px; + margin-bottom: 10px; +} + +.viz-upsell-banner__icon { + color: #007CBA; + font-size: 20px; + flex-shrink: 0; +} + +.viz-upsell-banner__text { + flex: 1; + display: flex; + flex-direction: column; + gap: 2px; +} + +.viz-upsell-banner__text strong { + font-size: 13px; + font-weight: 600; + color: #1d2327; +} + +.viz-upsell-banner__text span { + font-size: 12px; + color: #50575e; +} + +.viz-upsell-banner__actions { + display: flex; + gap: 8px; + flex-shrink: 0; +} + +/* ── Chart type badge (list view only) ── */ +.viz-chart-type-badge { + display: none; + font-size: 11px; + font-weight: 500; + text-transform: capitalize; + background: #e8f0f8; + color: #007CBA; + border: 1px solid #c3daf9; + border-radius: 10px; + padding: 2px 8px; + white-space: nowrap; + flex-shrink: 0; +} + +/* ── List view: WP-style table ── */ +#visualizer-library.view-list { + display: block; + margin: 20px 0; +} + +.viz-charts-table { + border-collapse: collapse; + width: 100%; +} + +.viz-charts-table thead th { + padding: 10px 12px; + font-size: 12px; + font-weight: 700; + color: #1d2327; + text-align: left; + background: #f6f7f7; + border-bottom: 2px solid #c3c4c7; + white-space: nowrap; +} + +.viz-charts-table tbody tr { + background: #fff; + border-bottom: 1px solid #f0f0f1; + transition: background 0.1s; +} + +.viz-charts-table tbody tr:hover { + background: #f6f7f7; +} + +.viz-charts-table td { + padding: 10px 12px; + vertical-align: middle; + font-size: 13px; + color: #3c434a; +} + +/* Column widths */ +.viz-charts-table .col-id { + width: 50px; + font-weight: 600; + color: #787c82; +} + +.viz-charts-table .col-title { + font-weight: 600; + color: #1d2327; +} + +.viz-charts-table .col-type { + width: 110px; +} + +.viz-charts-table .col-shortcode { + width: 260px; +} + +.viz-charts-table .col-actions { + width: 1%; + white-space: nowrap; +} + +/* Type badge in table */ +.viz-charts-table .viz-chart-type-badge { + display: inline-block; +} + +/* Shortcode cell */ +.viz-shortcode-display { + display: inline-block; + font-size: 11px; + background: #f6f7f7; + border: 1px solid #ddd; + border-radius: 3px; + padding: 3px 7px; + color: #50575e; + white-space: nowrap; + max-width: 260px; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: middle; + font-family: Consolas, Monaco, monospace; + cursor: pointer; + transition: background 0.15s, border-color 0.15s; +} + +.viz-shortcode-display:hover { + background: #e8f0f8; + border-color: #bfdbfe; + color: #1d2327; +} + +.viz-shortcode-display.viz-shortcode-copied { + background: #dcfce7; + border-color: #86efac; + color: #15803d; +} + +/* Action buttons in table: colored bordered icon buttons */ +.viz-charts-table .visualizer-action-group { + display: flex; + flex-wrap: nowrap; + gap: 4px; + justify-content: flex-end; +} + +.viz-charts-table .visualizer-chart-action { + width: 32px; + height: 32px; + border: 1px solid #c3c4c7; + border-radius: 4px; + background: #fff; + color: #646970; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.viz-charts-table .visualizer-chart-action:hover { + background: #f6f7f7; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-delete { + border-color: #fca5a5; + color: #dc2626; + margin-right: 0; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-delete:hover { + background: #fef2f2; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-shortcode { + color: #2563eb; + border-color: #bfdbfe; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-shortcode:hover { + background: #eff6ff; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-clone, +.viz-charts-table .visualizer-chart-action.visualizer-chart-export { + color: #64748b; + border-color: #cbd5e1; +} + +.viz-charts-table .visualizer-chart-action.visualizer-chart-clone:hover, +.viz-charts-table .visualizer-chart-action.visualizer-chart-export:hover { + background: #f8fafc; +} + +/* Edit button stays blue in table */ +.viz-charts-table .visualizer-action-group .visualizer-chart-action.visualizer-chart-edit { + background-color: #007CBA; + border-color: #007CBA; + color: #fff; + border-radius: 4px; +} + +.viz-charts-table .visualizer-action-group .visualizer-chart-action.visualizer-chart-edit:hover { + background-color: #0069a6 !important; + border-color: #0069a6 !important; + color: #fff !important; +} + +/* Upsell banner after the table */ +#visualizer-library.view-list .items--upsell { + margin-top: 12px; +} diff --git a/images/visualizer-icon.svg b/images/visualizer-icon.svg new file mode 100644 index 000000000..fa7266629 --- /dev/null +++ b/images/visualizer-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/index.php b/index.php index 484de429f..1468a5371 100644 --- a/index.php +++ b/index.php @@ -36,15 +36,15 @@ * * @since 1.0.0 * - * @param string $class The class name to autoload. + * @param string $class_name The class name to autoload. * * @return boolean Returns TRUE if the class is located. Otherwise FALSE. */ -function visualizer_autoloader( $class ) { +function visualizer_autoloader( $class_name ) { $namespaces = array( 'Visualizer' ); foreach ( $namespaces as $namespace ) { - if ( substr( $class, 0, strlen( $namespace ) ) === $namespace ) { - $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" ); + if ( substr( $class_name, 0, strlen( $namespace ) ) === $namespace ) { + $filename = __DIR__ . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class_name}.php" ); if ( is_readable( $filename ) ) { require $filename; @@ -66,7 +66,7 @@ function visualizer_launch() { define( 'VISUALIZER_BASEFILE', __FILE__ ); define( 'VISUALIZER_BASENAME', plugin_basename( __FILE__ ) ); define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) ); - define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) ); + define( 'VISUALIZER_ABSPATH', __DIR__ ); define( 'VISUALIZER_DIRNAME', basename( VISUALIZER_ABSPATH ) ); define( 'VISUALIZER_REST_VERSION', 1 ); // if the below is true, then the js/customization.js in the plugin folder will be used instead of the one in the uploads folder (if it exists). @@ -93,7 +93,7 @@ function visualizer_launch() { // the link to pre-build queries. define( 'VISUALIZER_DB_QUERY_DOC_URL', 'https://docs.themeisle.com/article/970-visualizer-sample-queries-to-generate-charts' ); define( 'VISUALIZER_MAIN_DOC', 'https://docs.themeisle.com/category/657-visualizer' ); - define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/search?collectionId=561ec249c69791452ed4bceb&query=#+visualizer' ); + define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/visualizer-charts-and-graphs/?query=#' ); define( 'VISUALIZER_DEMO_URL', 'https://demo.themeisle.com/visualizer/#' ); define( 'VISUALIZER_CODE_SNIPPETS_URL', 'https://docs.themeisle.com/category/726-visualizer' ); define( 'VISUALIZER_SUBSCRIBE_API', 'https://api.themeisle.com/tracking/subscribe' ); @@ -112,6 +112,72 @@ function visualizer_launch() { }} ); + // register Elementor widget + add_action( + 'elementor/widgets/register', + function ( $widgets_manager ) { + require_once VISUALIZER_ABSPATH . '/classes/Visualizer/Elementor/Widget.php'; + $widgets_manager->register( new Visualizer_Elementor_Widget() ); + } + ); + + // Register the Visualizer icon for the Elementor widget panel. + add_action( + 'elementor/editor/after_enqueue_styles', + function () { + $icon_url = VISUALIZER_ABSURL . 'images/visualizer-icon.svg'; + wp_add_inline_style( + 'elementor-icons', + '.visualizer-elementor-icon { display:inline-block; width:1em; height:1em; background:url("' . esc_url( $icon_url ) . '") no-repeat center/contain; }' + ); + } + ); + + // Enqueue Visualizer scripts inside the Elementor preview iframe. + // Elementor serves the preview iframe as a shell page and injects widget HTML via + // JavaScript (innerHTML), so wp_enqueue_script calls inside render() never reach the + // iframe. We load all chart render libraries here so they are available when + // elementor-widget-preview.js triggers visualizer:render:chart:start. + add_action( + 'elementor/preview/enqueue_scripts', + function () { + do_action( 'visualizer_enqueue_scripts' ); + + // ChartJS render library. + if ( ! wp_script_is( 'numeral', 'registered' ) ) { + wp_register_script( 'numeral', VISUALIZER_ABSURL . 'js/lib/numeral.min.js', array(), Visualizer_Plugin::VERSION, true ); + } + if ( ! wp_script_is( 'chartjs', 'registered' ) ) { + wp_register_script( 'chartjs', VISUALIZER_ABSURL . 'js/lib/chartjs.min.js', array( 'numeral' ), null, true ); + } + wp_enqueue_script( 'visualizer-render-chartjs-lib', VISUALIZER_ABSURL . 'js/render-chartjs.js', array( 'chartjs', 'visualizer-customization' ), Visualizer_Plugin::VERSION, true ); + + // Google Charts render library. + wp_enqueue_script( 'visualizer-google-jsapi', '//www.gstatic.com/charts/loader.js', array(), null, true ); + wp_enqueue_script( 'visualizer-render-google-lib', VISUALIZER_ABSURL . 'js/render-google.js', array( 'visualizer-google-jsapi', 'visualizer-customization' ), Visualizer_Plugin::VERSION, true ); + + // DataTable render library + styles. + if ( ! wp_script_is( 'visualizer-datatables', 'registered' ) ) { + wp_register_script( 'visualizer-datatables', VISUALIZER_ABSURL . 'js/lib/datatables.min.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true ); + } + wp_enqueue_script( 'visualizer-render-datatables-lib', VISUALIZER_ABSURL . 'js/render-datatables.js', array( 'visualizer-datatables', 'visualizer-customization' ), Visualizer_Plugin::VERSION, true ); + wp_enqueue_style( 'visualizer-datatables', VISUALIZER_ABSURL . 'css/lib/datatables.min.css', array(), Visualizer_Plugin::VERSION ); + + // Elementor widget preview handler — uses frontend/element_ready hook. + wp_enqueue_script( 'visualizer-elementor-preview', VISUALIZER_ABSURL . 'js/elementor-widget-preview.js', array( 'jquery', 'elementor-frontend' ), Visualizer_Plugin::VERSION, true ); + + // Prevent Elementor's editor-preview CSS from hiding our widget. + // Elementor marks widgets without a content_template() as elementor-widget-empty + // and adds display:none to .elementor-widget-empty when the panel is hidden + // (.elementor-editor-preview on ). Our widget renders async (Google Charts + // loads via callback), so the empty class is always present. + wp_add_inline_style( + 'visualizer-datatables', + '.elementor-editor-preview .elementor-widget-visualizer-chart.elementor-widget-empty { display: block !important; }' + ); + } + ); + // set general modules $plugin->setModule( Visualizer_Module_Utility::NAME ); $plugin->setModule( Visualizer_Module_Setup::NAME ); @@ -133,8 +199,15 @@ function visualizer_launch() { $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php'; if ( is_readable( $vendor_file ) ) { - include_once( $vendor_file ); + include_once $vendor_file; + } + + $action_scheduler_file = VISUALIZER_ABSPATH . '/vendor/woocommerce/action-scheduler/action-scheduler.php'; + + if ( is_readable( $action_scheduler_file ) ) { + require_once $action_scheduler_file; } + add_filter( 'themeisle_sdk_products', 'visualizer_register_sdk', 10, 1 ); add_filter( 'pirate_parrot_log', 'visualizer_register_parrot', 10, 1 ); add_filter( @@ -149,7 +222,7 @@ function visualizer_launch() { ); add_filter( 'visualizer_about_us_metadata', - function() { + function () { return array( 'logo' => esc_url( VISUALIZER_ABSURL . 'images/visualizer-logo.svg' ), 'location' => 'visualizer', @@ -164,12 +237,12 @@ function() { add_filter( 'themeisle_sdk_enable_telemetry', '__return_true' ); add_filter( 'themeisle_sdk_telemetry_products', - function( $products ) { + function ( $products ) { $already_registered = false; $license = get_option( 'visualizer_pro_license_data', 'free' ); if ( ! empty( $license ) && is_object( $license ) ) { - $license = $license->key; + $license = $license->key ?? 'free'; } $track_hash = 'free' === $license ? 'free' : wp_hash( $license ); diff --git a/js/elementor-widget-preview.js b/js/elementor-widget-preview.js new file mode 100644 index 000000000..7d27eded4 --- /dev/null +++ b/js/elementor-widget-preview.js @@ -0,0 +1,181 @@ +/* global elementorFrontend, jQuery */ +/** + * Elementor preview handler for Visualizer charts. + * + * @since 3.11.16 + */ +// Guard against the script being injected more than once into the preview iframe. +if ( ! window.visualizerElementorPreview ) { +window.visualizerElementorPreview = true; + +( function ( $ ) { + 'use strict'; + + /** + * Poll until `condition()` returns true, then call `callback`. + * Gives up after `maxAttempts` × 100 ms. + */ + function waitFor( condition, callback, maxAttempts ) { + maxAttempts = maxAttempts === undefined ? 50 : maxAttempts; + if ( condition() ) { + callback(); + return; + } + if ( maxAttempts <= 0 ) { + return; + } + setTimeout( function () { + waitFor( condition, callback, maxAttempts - 1 ); + }, 100 ); + } + + /** + * Given the Elementor widget wrapper element, extract chart data from the + * embedded JSON script element and trigger chart rendering. + */ + function renderWidget( widgetEl ) { + var $scope = $( widgetEl ); + var $dataEl = $scope.find( 'script.visualizer-chart-data[type="application/json"]' ); + + if ( ! $dataEl.length ) { + return; + } + + var elementId = $dataEl.attr( 'data-element-id' ); + var chartEntry; + + try { + chartEntry = JSON.parse( $dataEl.text() ); + } catch ( e ) { + return; + } + + if ( ! elementId || ! chartEntry ) { + return; + } + + window.visualizer = window.visualizer || {}; + window.visualizer.charts = window.visualizer.charts || {}; + window.visualizer.charts[ elementId ] = chartEntry; + + // Build the viz object that render-google.js / render-chartjs.js expect. + // is_front:true tells render-google.js to call renderChart(id) for just + // this element rather than render() for all charts. + var viz = $.extend( {}, window.visualizer, { id: elementId, is_front: true } ); + + function doTrigger() { + $( '#' + elementId ).removeClass( 'viz-facade-loaded' ); + $( 'body' ).trigger( 'visualizer:render:chart:start', viz ); + } + + if ( chartEntry.library === 'google' || chartEntry.library === 'GoogleCharts' ) { + // render-google.js bails silently when typeof google !== 'object'. + // Poll until the Google Charts loader script has executed. + waitFor( function () { return typeof google === 'object'; }, doTrigger ); + } else { + doTrigger(); + } + } + + /** + * Scan a subtree for visualizer-chart widgets and render each one. + */ + function scanAndRender( root ) { + var $root = $( root ); + + if ( $root.is( '[data-widget_type="visualizer-chart.default"]' ) ) { + renderWidget( root ); + } + + $root.find( '[data-widget_type="visualizer-chart.default"]' ).each( function () { + renderWidget( this ); + } ); + } + + $( document ).ready( function () { + var observer = new MutationObserver( function ( mutations ) { + // Collect widget elements to render, de-duplicating within the batch. + var toRender = []; + var seen = window.WeakSet ? new WeakSet() : null; + var seenList = []; + + // Enqueue a widget element for rendering, skipping duplicates. + function enqueue( el ) { + if ( ! el ) { + return; + } + if ( seen ) { + if ( seen.has( el ) ) { + return; + } + seen.add( el ); + toRender.push( el ); + return; + } + if ( seenList.indexOf( el ) !== -1 ) { + return; + } + seenList.push( el ); + toRender.push( el ); + } + + mutations.forEach( function ( mutation ) { + mutation.addedNodes.forEach( function ( node ) { + if ( node.nodeType !== 1 ) { + return; + } + + // Only react when chart data was injected, not when chart + // rendering (SVG / canvas) mutates the DOM — that would loop. + var hasData = ( node.matches && node.matches( 'script.visualizer-chart-data[type="application/json"]' ) ) || + ( node.querySelector && node.querySelector( 'script.visualizer-chart-data[type="application/json"]' ) ); + if ( ! hasData ) { + return; + } + + // Node is the widget wrapper or contains one (new widget added). + if ( $( node ).is( '[data-widget_type="visualizer-chart.default"]' ) ) { + enqueue( node ); + } + $( node ).find( '[data-widget_type="visualizer-chart.default"]' ).each( function () { + enqueue( this ); + } ); + + // Node is inner content of an existing widget (chart switched). + // Look upward for the widget wrapper. + enqueue( $( node ).closest( '[data-widget_type="visualizer-chart.default"]' )[ 0 ] ); + } ); + } ); + + toRender.forEach( function ( el ) { + renderWidget( el ); + } ); + } ); + + observer.observe( document.documentElement, { childList: true, subtree: true } ); + + // Handle widgets already present on initial load. + scanAndRender( document.body ); + } ); + + // Register Elementor's element_ready hook as a secondary trigger. + // Called both immediately (in case elementorFrontend is already initialised) + // and on the init event (in case it fires after this script loads). + // The guard prevents double-registration if both code paths fire. + var elementorHookRegistered = false; + function registerElementorHook() { + if ( elementorHookRegistered ) { + return; + } + if ( typeof elementorFrontend !== 'undefined' && elementorFrontend.hooks ) { + elementorFrontend.hooks.addAction( + 'frontend/element_ready/visualizer-chart.default', + function ( $scope ) { renderWidget( $scope[ 0 ] ); } + ); + elementorHookRegistered = true; + } + } + registerElementorHook(); + window.addEventListener( 'elementor/frontend/init', registerElementorHook ); +}( jQuery ) ); +} // end visualizerElementorPreview guard diff --git a/js/frame.js b/js/frame.js index 95abd0ed7..4d00a46a8 100644 --- a/js/frame.js +++ b/js/frame.js @@ -100,8 +100,9 @@ // collapse other open subsections of this section $(document).on('click', '.viz-section-title', function () { var grandparent = $(this).parent().parent(); - grandparent.find('.viz-section-title.open ~ .viz-section-items').hide(); - grandparent.find('.viz-section-title.open').removeClass('open'); + grandparent.find('.viz-section-title.open').not(this).each(function () { + $(this).removeClass('open').siblings('.viz-section-items').hide(); + }); }); $('#view-remote-file').click(function () { @@ -370,6 +371,8 @@ function init_filter_import() { $( '#db-filter-save-button' ).on( 'click', function(){ $('#vz-filter-wizard').submit(); + $( '#vz-wp-sync-options' ).hide(); + $( '#vz-wp-sync-btn' ).attr( 'aria-expanded', false ); }); } @@ -444,11 +447,27 @@ } } ); + $( document ).on( 'click', '#vz-db-sync-btn', function(){ + var $options = $( '#vz-db-sync-options' ); + var isOpen = $options.is( ':visible' ); + $options.toggle(); + $( this ).attr( 'aria-expanded', ! isOpen ); + } ); + + $( document ).on( 'click', '#vz-wp-sync-btn', function(){ + var $options = $( '#vz-wp-sync-options' ); + var isOpen = $options.is( ':visible' ); + $options.toggle(); + $( this ).attr( 'aria-expanded', ! isOpen ); + } ); + $( '#db-chart-save-button' ).on( 'click', function(){ // submit only if a query has been provided. if($('#db-query-form .visualizer-db-query').val().length > 0){ $('#viz-db-wizard-params').val($('#db-query-form').serialize()); $('#vz-db-wizard').submit(); + $( '#vz-db-sync-options' ).hide(); + $( '#vz-db-sync-btn' ).attr( 'aria-expanded', false ); }else{ $('#canvas').unlock(); } diff --git a/js/library.js b/js/library.js index d0efddd14..046ed7b53 100644 --- a/js/library.js +++ b/js/library.js @@ -46,6 +46,9 @@ function createPopupProBlocker( $ , e ) { var resizeTimeout; $.fn.adjust = function () { + if ( $( '#visualizer-library' ).hasClass( 'view-list' ) ) { + return this; + } return $(this).each(function () { var width = $('#visualizer-library').width(), margin = width * 0.02; @@ -85,6 +88,26 @@ function createPopupProBlocker( $ , e ) { $(this).parent('form').submit(); }); + // Copy shortcode when clicking the code display in list view. + $( document ).on( 'click', '.viz-shortcode-display', function () { + var text = $( this ).text(); + var el = this; + if ( navigator.clipboard ) { + navigator.clipboard.writeText( text ); + } else { + var ta = document.createElement( 'textarea' ); + ta.value = text; + document.body.appendChild( ta ); + ta.select(); + document.execCommand( 'copy' ); + document.body.removeChild( ta ); + } + $( el ).addClass( 'viz-shortcode-copied' ); + setTimeout( function () { + $( el ).removeClass( 'viz-shortcode-copied' ); + }, 1200 ); + } ); + $('.visualizer-chart-shortcode').click(function (event) { if ( createPopupProBlocker( $, event ) ) { diff --git a/js/preview.js b/js/preview.js index 90768cf51..f9d5ea3ec 100644 --- a/js/preview.js +++ b/js/preview.js @@ -2,6 +2,7 @@ /* global console */ /* global vizSettingsHaveChanged */ /* global vizHaveSettingsChanged */ +/* global wp */ (function($, v) { var timeout; @@ -22,6 +23,7 @@ clear: updateChart }); $('#settings-form textarea[name="manual"]').change(validateJSON).keyup(validateJSON); + initManualConfigEditor(); vizSettingsHaveChanged(false); }; @@ -173,12 +175,42 @@ function validateJSON() { $('#visualizer-error-manual').remove(); try{ - var options = JSON.parse($(this).val()); + JSON.parse($(this).val()); }catch(error){ - $('
    Invalid JSON: ' + error + '
    ').insertAfter($(this)); + var $after = $(this).next('.CodeMirror').length ? $(this).next('.CodeMirror') : $(this); + $('
    Invalid JSON: ' + error + '
    ').insertAfter($after); } } + function initManualConfigEditor() { + var $textarea = $('textarea[name="manual"]'); + if (!$textarea.length || $textarea.data('cm-initialized')) return; + + var CodeMirrorLib = (typeof wp !== 'undefined' && wp.CodeMirror) ? wp.CodeMirror : null; + if (!CodeMirrorLib) return; + + $textarea.data('cm-initialized', true); + + var cm = CodeMirrorLib.fromTextArea($textarea.get(0), { + mode: 'application/json', + lineNumbers: true, + lineWrapping: true, + matchBrackets: true, + autoCloseBrackets: true + }); + + // Refresh when any sidebar group is expanded so line numbers render correctly + // (CodeMirror can't measure gutter width while the container is hidden). + $(document).on('click.vizManualConfig', '.viz-group-title', function() { + setTimeout(function() { cm.refresh(); }, 50); + }); + + cm.on('change', function() { + cm.save(); + $textarea.trigger('change'); + }); + } + $('.control-text').change(updateChart).keyup(updateChart); $('.control-select, .control-checkbox, .control-check').change(updateChart); $('.color-picker-hex').wpColorPicker({ @@ -186,6 +218,11 @@ clear: updateChart }); $('textarea[name="manual"]').change(validateJSON).keyup(validateJSON); + initManualConfigEditor(); + + $(document).on('change', 'input[name="paging_bool"], input[name="pagination"]', function() { + $('.viz-pagination-options').toggle($(this).is(':checked')); + }); }); })(jQuery, visualizer); diff --git a/js/render-chartjs.js b/js/render-chartjs.js index 251f92e4d..04f782d3b 100644 --- a/js/render-chartjs.js +++ b/js/render-chartjs.js @@ -148,6 +148,8 @@ } }; + override(settings, chart); + var chartjs = new Chart(context, { type: type, data: { @@ -234,8 +236,6 @@ } handleAxes(settings, chart); - - override(settings, chart); } function handleAxes(settings, chart){ @@ -501,7 +501,7 @@ if (settings.manual) { try{ var options = JSON.parse(settings.manual); - $.extend(settings, options); + $.extend(true, settings, options); delete settings.manual; }catch(error){ console.error("Error while adding manual configuration override " + settings.manual); diff --git a/js/render-facade.js b/js/render-facade.js index 5dfc069a0..0636c8d56 100644 --- a/js/render-facade.js +++ b/js/render-facade.js @@ -1,7 +1,8 @@ /* global console */ /* global visualizer */ /* global jQuery */ -var vizClipboard1=null; +window['vizClipboard1'] = window['vizClipboard1'] || null; +window['vizClipboard2'] = window['vizClipboard2'] || null; (function($, visualizer){ function initActionsButtons(v) { @@ -13,12 +14,12 @@ var vizClipboard1=null; }); } - if($('a.visualizer-action[data-visualizer-type=copy]').length > 0) { + if($('a.visualizer-action[data-visualizer-type=copy]').length > 0 && vizClipboard2 === null) { $('a.visualizer-action[data-visualizer-type=copy]').on('click', function(e) { e.preventDefault(); }); - var clipboard = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line - clipboard.on('success', function(e) { + vizClipboard2 = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line + vizClipboard2.on('success', function(e) { window.alert(v.i10n['copied']); }); } @@ -128,7 +129,7 @@ var vizClipboard1=null; } function displayChartsOnFrontEnd() { - $(window).on('scroll', function() { + function renderVisibleLazyCharts() { $('div.visualizer-front:not(.viz-facade-loaded):not(.visualizer-lazy):not(.visualizer-cw-error):empty').each(function(index, element){ // Do not render charts that are intentionally hidden. const style = window.getComputedStyle(element); @@ -136,13 +137,25 @@ var vizClipboard1=null; return; } + // Only render charts that are currently within the viewport. + const rect = element.getBoundingClientRect(); + const inViewport = rect.bottom >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight); + if (!inViewport) { + return; + } + const id = $(element).addClass('viz-facade-loaded').attr('id'); setTimeout(function(){ // Add a short delay between each chart to avoid overloading the browser event loop. showChart(id); }, ( index + 1 ) * 100); }); - }); + } + + $(window).on('scroll', renderVisibleLazyCharts); + + // Run once on page load to render any lazy charts already in the viewport. + renderVisibleLazyCharts(); $('div.visualizer-front-container:not(.visualizer-lazy-render)').each(function(index, element){ // Do not render charts that are intentionally hidden. diff --git a/js/render-google.js b/js/render-google.js index 3cdcd475f..0d7f463b2 100644 --- a/js/render-google.js +++ b/js/render-google.js @@ -26,17 +26,26 @@ var isResizeRequest = false; return; } + if ( chart.library && chart.library !== 'google' && chart.library !== 'GoogleCharts' ) { + return; + } + // re-render the chart only if it doesn't have annotations and it is on the front-end // this is to prevent the chart from showing "All series on a given axis must be of the same data type" during resize. // remember, some charts do not support annotations so they should not be included in this. var no_annotation_charts = ['tabular', 'timeline', 'gauge', 'geo', 'bubble', 'candlestick']; if ( undefined !== chart.settings && undefined !== chart.settings.series && undefined === chart.settings.series.length ) { - var chartSeries = []; - var chartSeriesValue = Object.values( chart.settings.series ); - $.each( Object.keys( chart.settings.series ), function( index, element ) { - chartSeries[element] = chartSeriesValue[index]; - } ); - chart.settings.series = chartSeries; + var seriesKeys = Object.keys( chart.settings.series ); + // Only convert when keys are numeric indices (PHP JSON-encoded array). + // String keys (e.g. named series from manual config) must be left as-is. + if ( seriesKeys.every( function( k ) { return ! isNaN( k ); } ) ) { + var chartSeries = []; + var chartSeriesValue = Object.values( chart.settings.series ); + $.each( seriesKeys, function( index, element ) { + chartSeries[ element ] = chartSeriesValue[ index ]; + } ); + chart.settings.series = chartSeries; + } } if(id !== 'canvas' && typeof chart.series !== 'undefined' && typeof chart.settings.series !== 'undefined' && ! no_annotation_charts.includes(chart.type) ) { hasAnnotation = chart.series.length - chart.settings.series.length > 1; @@ -444,19 +453,30 @@ var isResizeRequest = false; } var formatter = null; - switch (type) { - case 'number': - formatter = new gv.NumberFormat({pattern: format}); - break; - case 'date': - case 'datetime': - case 'timeofday': - formatter = new gv.DateFormat({pattern: format}); - break; - } + var $formatInput = $('input.control-text[name*="[format]"]').filter(function() { + return $(this).val() === format; + }); + try { + switch (type) { + case 'number': + formatter = new gv.NumberFormat({pattern: format}); + break; + case 'date': + case 'datetime': + case 'timeofday': + formatter = new gv.DateFormat({pattern: format}); + break; + } - if (formatter) { - formatter.format(table, index); + if (formatter) { + formatter.format(table, index); + $formatInput.nextAll('.visualizer-format-error').remove(); + } + } catch (e) { + if ($formatInput.length) { + $formatInput.nextAll('.visualizer-format-error').remove(); + $('

    ').text(visualizer.l10n.invalid_format).insertAfter($formatInput); + } } var arr = id.split('-'); diff --git a/js/simple-editor.js b/js/simple-editor.js index 109b486df..31094f283 100644 --- a/js/simple-editor.js +++ b/js/simple-editor.js @@ -30,6 +30,7 @@ button.html( button.attr( 'data-t-chart' ) ); button.attr( 'data-current', 'chart' ); $('p.viz-editor-selection').show(); + $('p.viz-info-msg').hide(); $('.viz-text-editor').hide(); $('.viz-simple-editor').hide(); $( '#canvas' ).css('z-index', '1').show(); @@ -40,6 +41,7 @@ button.html( button.attr( 'data-t-editor' ) ); button.attr( 'data-current', 'editor' ); $('p.viz-editor-selection').hide(); + $('p.viz-info-msg').show(); $('.viz-text-editor').css('z-index', '9999').show(); $('.viz-simple-editor').css('z-index', '9999').show(); $( '#canvas' ).css('z-index', '-100').hide(); @@ -53,6 +55,7 @@ button.html( button.attr( 'data-t-chart' ) ); button.attr( 'data-current', 'chart' ); $('p.viz-editor-selection').show(); + $('p.viz-info-msg').hide(); $('.viz-text-editor').hide(); $('.viz-simple-editor').hide(); $( '#canvas' ).css('z-index', '1').show(); @@ -74,6 +77,7 @@ button.html( button.attr( 'data-t-chart' ) ); button.attr( 'data-current', 'chart' ); $('p.viz-editor-selection').show(); + $('p.viz-info-msg').hide(); $('.viz-table-editor').hide(); $('.viz-simple-editor').hide(); $( '#canvas' ).css('z-index', '1').show(); @@ -84,6 +88,7 @@ button.html( button.attr( 'data-t-editor' ) ); button.attr( 'data-current', 'editor' ); $('p.viz-editor-selection').hide(); + $('p.viz-info-msg').show(); $( '.viz-table-editor' ).css("z-index", "9999").show(); $('.viz-simple-editor').css('z-index', '9999').show(); $('body').trigger('visualizer:db:editor:table:redraw', {}); @@ -98,6 +103,7 @@ button.html( button.attr( 'data-t-chart' ) ); button.attr( 'data-current', 'chart' ); $('p.viz-editor-selection').show(); + $('p.viz-info-msg').hide(); $('.viz-table-editor').hide(); $('.viz-simple-editor').hide(); $( '#canvas' ).css('z-index', '1').show(); diff --git a/package-lock.json b/package-lock.json index 05915e6f7..2b40acef5 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,20 @@ { "name": "visualizer", - "version": "3.11.14", + "version": "3.11.15", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "visualizer", - "version": "3.11.14", + "version": "3.11.15", "license": "GPL-2.0+", + "dependencies": { + "deep-filter": "^1.0.2", + "is-plain-object": "^2.0.4", + "merge": "^1.2.1", + "react-google-charts": "^3.0.8", + "uuid": "^8.3.2" + }, "devDependencies": { "@semantic-release/changelog": "^5.0.1", "@semantic-release/exec": "^5.0.0", @@ -16,6 +23,8 @@ "@wordpress/env": "^11.0.0", "@wordpress/scripts": "^27.4.0", "conventional-changelog-simple-preset": "^1.0.15", + "grunt": "^1.6.1", + "grunt-cli": "^1.5.0", "grunt-version": "^2.0.0", "grunt-wp-readme-to-markdown": "^2.0.1", "load-project-config": "~0.2.1", @@ -13495,6 +13504,15 @@ "node": ">=4.0.0" } }, + "node_modules/deep-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-filter/-/deep-filter-1.0.2.tgz", + "integrity": "sha512-Pb+qxvCSBs4pHZGE+kiiXv56tPDOqb9wv166AfBiZCSZkPNC7JqYcKKlo0SOdmGyueZMdoMKonF8aa3ixV+M9w==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -16121,15 +16139,19 @@ } }, "node_modules/findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "~5.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">= 0.6.0" + "node": ">= 10.13.0" } }, "node_modules/fined": { @@ -16822,45 +16844,45 @@ "dev": true }, "node_modules/grunt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.0.tgz", - "integrity": "sha512-yRFc0GVCDu9yxqOFzpuXQ2pEdgtLDnFv5Qz54jfIcNnpJ8Z7B7P7kPkT4VMuRvm+N+QOsI8C4v/Q0DSaoj3LgQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", "dev": true, + "license": "MIT", "dependencies": { - "dateformat": "~3.0.3", + "dateformat": "~4.6.2", "eventemitter2": "~0.4.13", "exit": "~0.1.2", - "findup-sync": "~0.3.0", + "findup-sync": "~5.0.0", "glob": "~7.1.6", - "grunt-cli": "~1.4.2", - "grunt-known-options": "~1.1.1", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", "grunt-legacy-log": "~3.0.0", "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", + "iconv-lite": "~0.6.3", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" + "nopt": "~3.0.6" }, "bin": { "grunt": "bin/grunt" }, "engines": { - "node": ">=8" + "node": ">=16" } }, "node_modules/grunt-cli": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz", - "integrity": "sha512-wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.5.0.tgz", + "integrity": "sha512-rILKAFoU0dzlf22SUfDtq2R1fosChXXlJM5j7wI6uoW8gwmXDXzbUvirlKZSYCdXl3LXFbR+8xyS+WFo+b6vlA==", "dev": true, + "license": "MIT", "dependencies": { - "grunt-known-options": "~1.1.1", + "grunt-known-options": "~2.0.0", "interpret": "~1.1.0", "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" + "nopt": "~5.0.0", + "v8flags": "^4.0.1" }, "bin": { "grunt": "bin/grunt" @@ -16870,23 +16892,27 @@ } }, "node_modules/grunt-cli/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "license": "ISC", "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1" }, "bin": { "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/grunt-known-options": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", - "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16977,6 +17003,16 @@ "grunt": ">=0.4.0" } }, + "node_modules/grunt/node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/grunt/node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -17016,6 +17052,53 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/grunt/node_modules/grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt/node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/grunt/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/grunt/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -17029,16 +17112,17 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/grunt/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/grunt/node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.10" } }, "node_modules/gzip-size": { @@ -18228,7 +18312,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -18491,7 +18574,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19619,8 +19701,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "3.4.6", @@ -20617,7 +20698,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -21058,6 +21138,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "license": "MIT" + }, "node_modules/merge-deep": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", @@ -24786,7 +24872,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -25550,8 +25635,9 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -25560,7 +25646,9 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", "dev": true, + "license": "ISC", "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -26981,7 +27069,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -26991,8 +27078,7 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -27366,7 +27452,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -27378,7 +27463,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0", @@ -27388,12 +27472,37 @@ "react": "^18.2.0" } }, + "node_modules/react-google-charts": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/react-google-charts/-/react-google-charts-3.0.15.tgz", + "integrity": "sha512-78s5xOQOJvL+jIewrWQZEHtlVk+5Yh4zZy+ODA1on1o1FaRjKWXxoo4n4JQl1XuqkF/A9NWque3KqM6pMggjzQ==", + "license": "MIT", + "dependencies": { + "react-load-script": "^0.0.6" + }, + "peerDependencies": { + "prop-types": ">=15", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/react-load-script": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/react-load-script/-/react-load-script-0.0.6.tgz", + "integrity": "sha512-aRGxDGP9VoLxcsaYvKWIW+LRrMOzz2eEcubTS4NvQPPugjk2VvMhow0wWTkSl7RxookomD1MwcP4l5UStg5ShQ==", + "deprecated": "abandoned and unmaintained", + "license": "MIT", + "peerDependencies": { + "prop-types": ">=15", + "react": ">=0.14.9" + } + }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -28287,7 +28396,6 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0" @@ -29183,15 +29291,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/socks": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", @@ -31495,6 +31594,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-compile-cache": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", @@ -31516,15 +31624,13 @@ } }, "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, + "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { @@ -42274,6 +42380,14 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-filter/-/deep-filter-1.0.2.tgz", + "integrity": "sha512-Pb+qxvCSBs4pHZGE+kiiXv56tPDOqb9wv166AfBiZCSZkPNC7JqYcKKlo0SOdmGyueZMdoMKonF8aa3ixV+M9w==", + "requires": { + "is-plain-object": "^2.0.1" + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -44193,12 +44307,15 @@ } }, "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "requires": { - "glob": "~5.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" } }, "fined": { @@ -44697,28 +44814,32 @@ "dev": true }, "grunt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.0.tgz", - "integrity": "sha512-yRFc0GVCDu9yxqOFzpuXQ2pEdgtLDnFv5Qz54jfIcNnpJ8Z7B7P7kPkT4VMuRvm+N+QOsI8C4v/Q0DSaoj3LgQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", "dev": true, "requires": { - "dateformat": "~3.0.3", + "dateformat": "~4.6.2", "eventemitter2": "~0.4.13", "exit": "~0.1.2", - "findup-sync": "~0.3.0", + "findup-sync": "~5.0.0", "glob": "~7.1.6", - "grunt-cli": "~1.4.2", - "grunt-known-options": "~1.1.1", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", "grunt-legacy-log": "~3.0.0", "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", + "iconv-lite": "~0.6.3", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" + "nopt": "~3.0.6" }, "dependencies": { + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -44745,6 +44866,40 @@ "path-is-absolute": "^1.0.0" } }, + "grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -44755,43 +44910,45 @@ "esprima": "^4.0.0" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } } } }, "grunt-cli": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz", - "integrity": "sha512-wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.5.0.tgz", + "integrity": "sha512-rILKAFoU0dzlf22SUfDtq2R1fosChXXlJM5j7wI6uoW8gwmXDXzbUvirlKZSYCdXl3LXFbR+8xyS+WFo+b6vlA==", "dev": true, "requires": { - "grunt-known-options": "~1.1.1", + "grunt-known-options": "~2.0.0", "interpret": "~1.1.0", "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" + "nopt": "~5.0.0", + "v8flags": "^4.0.1" }, "dependencies": { "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1" } } } }, "grunt-known-options": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", - "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", "dev": true }, "grunt-legacy-log": { @@ -45672,7 +45829,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -45847,8 +46003,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "issue-parser": { "version": "6.0.0", @@ -46691,8 +46846,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.4.6", @@ -47501,7 +47655,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -47837,6 +47990,11 @@ "yargs-parser": "^20.2.3" } }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, "merge-deep": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", @@ -50535,8 +50693,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-filter": { "version": "1.0.2", @@ -51114,7 +51271,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "osenv": { @@ -52096,7 +52253,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -52106,8 +52262,7 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" } } }, @@ -52374,7 +52529,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, "requires": { "loose-envify": "^1.1.0" } @@ -52383,19 +52537,32 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, "peer": true, "requires": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" } }, + "react-google-charts": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/react-google-charts/-/react-google-charts-3.0.15.tgz", + "integrity": "sha512-78s5xOQOJvL+jIewrWQZEHtlVk+5Yh4zZy+ODA1on1o1FaRjKWXxoo4n4JQl1XuqkF/A9NWque3KqM6pMggjzQ==", + "requires": { + "react-load-script": "^0.0.6" + } + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "react-load-script": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/react-load-script/-/react-load-script-0.0.6.tgz", + "integrity": "sha512-aRGxDGP9VoLxcsaYvKWIW+LRrMOzz2eEcubTS4NvQPPugjk2VvMhow0wWTkSl7RxookomD1MwcP4l5UStg5ShQ==", + "requires": {} + }, "react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -53041,7 +53208,6 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, "peer": true, "requires": { "loose-envify": "^1.1.0" @@ -53713,14 +53879,6 @@ "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } } }, "socks": { @@ -55477,6 +55635,11 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, "v8-compile-cache": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", @@ -55495,13 +55658,10 @@ } }, "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", diff --git a/package.json b/package.json index 6295b182b..1f9a04367 100755 --- a/package.json +++ b/package.json @@ -22,17 +22,27 @@ "env:up": "export DOCKER_FILE=docker-compose.ci.yml && bash bin/wp-init.sh", "env:down": "export DOCKER_FILE=docker-compose.ci.yml && bash bin/wp-down.sh", "wp-env": "wp-env", + "grunt": "grunt", "test:env:start": "wp-env start", "test:env:stop": "wp-env stop", "test:env:clean": "wp-env clean", "test:e2e:playwright": "wp-scripts test-playwright --config tests/e2e/playwright.config.js", - "test:e2e:playwright:debug": "wp-scripts test-playwright --config tests/e2e/playwright.config.js --ui" + "test:e2e:playwright:debug": "wp-scripts test-playwright --config tests/e2e/playwright.config.js --ui", + "gutenberg:build": "wp-scripts build --webpack-src-dir=classes/Visualizer/Gutenberg/src --output-path=classes/Visualizer/Gutenberg/build", + "gutenberg:dev": "wp-scripts start --webpack-src-dir=classes/Visualizer/Gutenberg/src --output-path=classes/Visualizer/Gutenberg/build" }, "pot": { "reportmsgidbugsto": "https://github.com/Codeinwp/visualizer/issues", "languageteam": "Themeisle Translate ", "lasttranslator": "Themeisle Translate Team " }, + "dependencies": { + "deep-filter": "^1.0.2", + "is-plain-object": "^2.0.4", + "merge": "^1.2.1", + "react-google-charts": "^3.0.8", + "uuid": "^8.3.2" + }, "devDependencies": { "@semantic-release/changelog": "^5.0.1", "@semantic-release/exec": "^5.0.0", @@ -41,6 +51,8 @@ "@wordpress/env": "^11.0.0", "@wordpress/scripts": "^27.4.0", "conventional-changelog-simple-preset": "^1.0.15", + "grunt": "^1.6.1", + "grunt-cli": "^1.5.0", "grunt-version": "^2.0.0", "grunt-wp-readme-to-markdown": "^2.0.1", "load-project-config": "~0.2.1", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index a96b74d51..c84cee970 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,17 +1,5 @@ parameters: ignoreErrors: - - - message: '#^Call to function is_string\(\) with string will always evaluate to true\.$#' - identifier: function.alreadyNarrowedType - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Call to function is_wp_error\(\) with string will always evaluate to false\.$#' - identifier: function.impossibleType - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse @@ -36,12 +24,6 @@ parameters: count: 1 path: classes/Visualizer/Gutenberg/Block.php - - - message: '#^Method Visualizer_Gutenberg_Block\:\:add_rest_query_vars\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - message: '#^Method Visualizer_Gutenberg_Block\:\:enqueue_gutenberg_scripts\(\) has no return type specified\.$#' identifier: missingType.return @@ -72,54 +54,6 @@ parameters: count: 1 path: classes/Visualizer/Gutenberg/Block.php - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_json_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_json_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_json_root_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_json_root_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_permission_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_permission_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_query_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_query_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - message: '#^Method Visualizer_Gutenberg_Block\:\:get_visualizer_data\(\) has no return type specified\.$#' identifier: missingType.return @@ -156,18 +90,6 @@ parameters: count: 1 path: classes/Visualizer/Gutenberg/Block.php - - - message: '#^Method Visualizer_Gutenberg_Block\:\:set_json_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:set_json_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - message: '#^Method Visualizer_Gutenberg_Block\:\:toUTF8\(\) has no return type specified\.$#' identifier: missingType.return @@ -180,30 +102,6 @@ parameters: count: 1 path: classes/Visualizer/Gutenberg/Block.php - - - message: '#^Method Visualizer_Gutenberg_Block\:\:update_chart_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:update_chart_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:upload_csv_data\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - - - message: '#^Method Visualizer_Gutenberg_Block\:\:upload_csv_data\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Gutenberg/Block.php - - message: '#^Constant VISUALIZER_PRO_VERSION not found\.$#' identifier: constant.notFound @@ -295,7 +193,7 @@ parameters: path: classes/Visualizer/Module.php - - message: '#^Method Visualizer_Module\:\:getDataAs\(\) has parameter \$final with no type specified\.$#' + message: '#^Method Visualizer_Module\:\:getDataAs\(\) has parameter \$data with no type specified\.$#' identifier: missingType.parameter count: 1 path: classes/Visualizer/Module.php @@ -1266,23 +1164,6 @@ parameters: count: 1 path: classes/Visualizer/Module/Chart.php - - - message: '#^Method Visualizer_Module_Chart\:\:handleCSVasString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Module/Chart.php - - - - message: '#^Method Visualizer_Module_Chart\:\:handleCSVasString\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Module/Chart.php - - - - message: '#^Method Visualizer_Module_Chart\:\:handleCSVasString\(\) has parameter \$editor_type with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Module/Chart.php - message: '#^Method Visualizer_Module_Chart\:\:handlePermissions\(\) has no return type specified\.$#' @@ -1386,6 +1267,12 @@ parameters: count: 1 path: classes/Visualizer/Module/Chart.php + - + message: '#^Unable to resolve the template type TUrl in call to function wp_http_validate_url$#' + identifier: argument.templateType + count: 1 + path: classes/Visualizer/Module/Chart.php + - message: '#^Undefined variable\: \$atts$#' identifier: variable.undefined @@ -1512,12 +1399,6 @@ parameters: count: 1 path: classes/Visualizer/Module/Frontend.php - - - message: '#^Method Visualizer_Module_Frontend\:\:perform_action\(\) has parameter \$params with generic class WP_REST_Request but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: classes/Visualizer/Module/Frontend.php - - message: '#^Method Visualizer_Module_Frontend\:\:printFooterScripts\(\) has no return type specified\.$#' identifier: missingType.return @@ -2034,12 +1915,6 @@ parameters: count: 1 path: classes/Visualizer/Module/Wizard.php - - - message: '#^Path in include_once\(\) "\./wp\-admin/includes/plugin\-install\.php" is not a file or it does not exist\.$#' - identifier: includeOnce.fileNotFound - count: 1 - path: classes/Visualizer/Module/Wizard.php - - message: '#^Property Visualizer_Module_Wizard\:\:\$wizard_data has no type specified\.$#' identifier: missingType.property @@ -2743,7 +2618,7 @@ parameters: path: classes/Visualizer/Render/Sidebar.php - - message: '#^Method Visualizer_Render_Sidebar\:\:_renderCheckboxItem\(\) has parameter \$default with no type specified\.$#' + message: '#^Method Visualizer_Render_Sidebar\:\:_renderCheckboxItem\(\) has parameter \$default_value with no type specified\.$#' identifier: missingType.parameter count: 1 path: classes/Visualizer/Render/Sidebar.php @@ -3421,7 +3296,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Graph.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 3 path: classes/Visualizer/Render/Sidebar/Graph.php @@ -3517,7 +3392,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Linear.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 1 path: classes/Visualizer/Render/Sidebar/Linear.php @@ -3547,7 +3422,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 3 path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Bar.php @@ -3583,7 +3458,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Line.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 2 path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Line.php @@ -3691,7 +3566,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 4 path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php @@ -3702,168 +3577,6 @@ parameters: count: 1 path: classes/Visualizer/Render/Sidebar/Type/ChartJS/Pie.php - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$__series\.$#' - identifier: property.notFound - count: 2 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$_includeCurveTypes\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$description\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$fixedHeader_bool\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$ordering_bool\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$pageLength_int\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$pagingType\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$paging_bool\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$responsive_bool\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$scrollX\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:\$title\.$#' - identifier: property.notFound - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_renderAdvancedSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_renderColumnSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_renderFormatField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_renderGeneralSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_renderTableSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:_toHTML\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:enqueue_assets\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:enqueue_assets\(\) has parameter \$deps with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:hooks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:load_assets\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:load_assets\(\) has parameter \$deps with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Method Visualizer_Render_Sidebar_Type_DataTable_DataTable\:\:load_assets\(\) has parameter \$is_frontend with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' - identifier: argument.type - count: 8 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Parameter \#4 \$desc of static method Visualizer_Render_Sidebar\:\:_renderTextItem\(\) expects string, null given\.$#' - identifier: argument.type - count: 4 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - - - message: '#^Parameter \#5 \$placeholder of static method Visualizer_Render_Sidebar\:\:_renderTextItem\(\) expects string, int given\.$#' - identifier: argument.type - count: 1 - path: classes/Visualizer/Render/Sidebar/Type/DataTable/DataTable.php - - message: '#^Access to an undefined property Visualizer_Render_Sidebar_Type_DataTable_Tabular\:\:\$__series\.$#' identifier: property.notFound @@ -4009,7 +3722,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 8 path: classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php @@ -4063,7 +3776,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 1 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Area.php @@ -4111,7 +3824,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 1 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Bubble.php @@ -4159,7 +3872,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 5 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Candlestick.php @@ -4459,7 +4172,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 1 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php @@ -4573,7 +4286,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 1 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Pie.php @@ -4699,7 +4412,7 @@ parameters: path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php - - message: '#^Parameter \#4 \$default of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' + message: '#^Parameter \#4 \$default_color of static method Visualizer_Render_Sidebar\:\:_renderColorPickerItem\(\) expects string, null given\.$#' identifier: argument.type count: 14 path: classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php @@ -5041,7 +4754,7 @@ parameters: path: classes/Visualizer/Source/Json.php - - message: '#^Method Visualizer_Source_Json\:\:getNextPage\(\) has parameter \$array with no type specified\.$#' + message: '#^Method Visualizer_Source_Json\:\:getNextPage\(\) has parameter \$data with no type specified\.$#' identifier: missingType.parameter count: 1 path: classes/Visualizer/Source/Json.php @@ -5059,7 +4772,7 @@ parameters: path: classes/Visualizer/Source/Json.php - - message: '#^Method Visualizer_Source_Json\:\:getRootElements\(\) has parameter \$array with no type specified\.$#' + message: '#^Method Visualizer_Source_Json\:\:getRootElements\(\) has parameter \$data with no type specified\.$#' identifier: missingType.parameter count: 1 path: classes/Visualizer/Source/Json.php @@ -5071,7 +4784,7 @@ parameters: path: classes/Visualizer/Source/Json.php - - message: '#^Method Visualizer_Source_Json\:\:getRootElements\(\) has parameter \$parent with no type specified\.$#' + message: '#^Method Visualizer_Source_Json\:\:getRootElements\(\) has parameter \$parent_key with no type specified\.$#' identifier: missingType.parameter count: 1 path: classes/Visualizer/Source/Json.php @@ -5387,3 +5100,25 @@ parameters: identifier: argument.type count: 1 path: index.php + + - + message: '#^Path in include_once\(\)#' + identifier: includeOnce.fileNotFound + count: 1 + path: classes/Visualizer/Source/Xlsx.php + + - + identifier: missingType.iterableValue + count: 4 + path: classes/Visualizer/Source/Xlsx/Remote.php + + - + identifier: booleanNot.alwaysTrue + count: 2 + path: classes/Visualizer/Source/Xlsx/Remote.php + + - + message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType + count: 1 + path: classes/Visualizer/Source/Xlsx/Remote.php diff --git a/phpstan.neon b/phpstan.neon index d0545aa5c..2e6cd64ba 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,19 +1,19 @@ parameters: level: 6 + reportUnmatchedIgnoredErrors: false paths: - %currentWorkingDirectory%/index.php - %currentWorkingDirectory%/classes bootstrapFiles: - %currentWorkingDirectory%/tests/php/static-analysis-stubs/symbols.php - %currentWorkingDirectory%/tests/php/static-analysis-stubs/visualizer-pro.php + - %currentWorkingDirectory%/tests/php/static-analysis-stubs/elementor.php scanDirectories: - %currentWorkingDirectory%/vendor/neitanod/forceutf8 - %currentWorkingDirectory%/vendor/openspout/openspout - %currentWorkingDirectory%/vendor/codeinwp/themeisle-sdk - ignoreErrors: - - - identifiers: - - requireOnce.fileNotFound + excludePaths: + - classes/Visualizer/Gutenberg/build (?) includes: - %currentWorkingDirectory%/vendor/szepeviktor/phpstan-wordpress/extension.neon - %currentWorkingDirectory%/phpstan-baseline.neon diff --git a/samples/bar.xlsx b/samples/bar.xlsx new file mode 100644 index 000000000..c210dc016 Binary files /dev/null and b/samples/bar.xlsx differ diff --git a/skills/e2e.md b/skills/e2e.md new file mode 100644 index 000000000..28bc1bdbf --- /dev/null +++ b/skills/e2e.md @@ -0,0 +1,43 @@ +# Run E2E Tests (Visualizer Free) + +Run the Playwright end-to-end test suite for the Visualizer free plugin. The environment uses Docker (MariaDB + WordPress on port 8889). + +## Pre-flight checks + +1. Make sure Docker is running: `docker info` +2. Check for port conflicts on 8889 and 3306 — if anything is using them, stop those services first (e.g. `brew services stop mariadb`). + +## Commands + +```bash +# 1. Install dependencies (skip if already done) +npm ci +npx playwright install --with-deps chromium +composer install --no-dev + +# 2. Boot WordPress environment (Docker + WP install + plugin activation) +DOCKER_FILE=docker-compose.ci.yml bash bin/wp-init.sh + +# 3a. Run the full Playwright suite +npm run test:e2e:playwright + +# 3b. OR run a single spec file (replace the path as needed) +# npx wp-scripts test-playwright --config tests/e2e/playwright.config.js tests/e2e/specs/gutenberg-editor.spec.js + +# 4. Tear down when done +DOCKER_FILE=docker-compose.ci.yml bash bin/wp-down.sh +``` + +## Environment + +- WordPress: http://localhost:8889 +- Credentials: `admin` / `password` +- `TI_E2E_TESTING=true` is set in `wp-config.php` by the setup script + +## Instructions + +1. Run the pre-flight checks. +2. If `wp-init.sh` fails due to a port conflict, identify and stop the conflicting service, then retry. +3. Run the tests. Show output as it streams. +4. After tests complete (pass or fail), always run the tear-down command. +5. Report a summary: how many tests passed, failed, and any error messages from failures. diff --git a/skills/unit.md b/skills/unit.md new file mode 100644 index 000000000..ce8a79aa2 --- /dev/null +++ b/skills/unit.md @@ -0,0 +1,25 @@ +# Run Unit Tests (Visualizer Free) + +Run the PHPUnit test suite for the Visualizer free plugin. + +## Commands + +```bash +# Install PHP dependencies if not already done +composer install + +# Run the full PHPUnit suite +./vendor/bin/phpunit + +# Run a single test file (replace the path as needed) +# ./vendor/bin/phpunit tests/test-export.php +``` + +## Instructions + +1. Check that `vendor/` exists. If not, run `composer install` first. +2. Run the tests. Show output as it streams. +3. Report a summary: how many tests passed, failed, and any error messages. +4. If the user specified a particular test file or test name, run only that: + - Single file: `./vendor/bin/phpunit tests/test-.php` + - Single test method: `./vendor/bin/phpunit --filter testMethodName` diff --git a/templates/support.php b/templates/support.php index 31b570b00..07e8c043f 100644 --- a/templates/support.php +++ b/templates/support.php @@ -21,17 +21,17 @@ class="dashicons dashicons-cart">
    More features
    diff --git a/tests/bootstrap.php b/tests/bootstrap.php index dd2ad1e19..230071c9a 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -5,6 +5,11 @@ * @package Visualizer */ $_tests_dir = getenv( 'WP_TESTS_DIR' ); + +if ( class_exists( '\Yoast\PHPUnitPolyfills\Autoload' ) === false ) { + require_once dirname( dirname( __FILE__ ) ) . '/vendor/yoast/phpunit-polyfills/phpunitpolyfills-autoload.php'; +} + if ( ! $_tests_dir ) { $_tests_dir = '/tmp/wordpress-tests-lib'; } diff --git a/tests/e2e/specs/elementor-widget.spec.js b/tests/e2e/specs/elementor-widget.spec.js new file mode 100644 index 000000000..38879b28c --- /dev/null +++ b/tests/e2e/specs/elementor-widget.spec.js @@ -0,0 +1,297 @@ +/** + * WordPress dependencies + */ +const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); + +/** + * Internal dependencies + */ +const { createChartWithAdmin, deleteAllCharts } = require( '../utils/common' ); + +/** + * How long to wait for the Elementor editor chrome (panel + preview iframe) to be ready. + */ +const ELEMENTOR_LOAD_TIMEOUT = 30000; + +/** + * How long to wait for a chart to finish rendering inside the preview iframe. + */ +const CHART_RENDER_TIMEOUT = 15000; + +/** + * Navigate to the Elementor editor for a given page ID, wait until it is ready, + * then dismiss any first-run modals/panels Elementor shows. + * + * @param {import('@wordpress/e2e-test-utils-playwright').Admin} admin + * @param {import('playwright/test').Page} page + * @param {number} pageId + */ +async function openElementorEditor( admin, page, pageId ) { + await admin.visitAdminPage( `post.php?post=${ pageId }&action=elementor` ); + await page.waitForSelector( '#elementor-preview-iframe', { timeout: ELEMENTOR_LOAD_TIMEOUT } ); + await page.waitForSelector( '#elementor-panel', { timeout: ELEMENTOR_LOAD_TIMEOUT } ); + await page.waitForSelector( '#elementor-panel-state-loading', { state: 'hidden', timeout: ELEMENTOR_LOAD_TIMEOUT } ); + + // Dismiss any first-run modals/panels Elementor shows (notifications dialog, + // onboarding checklist, etc.) that would block panel interactions. + await dismissElementorModals( page ); +} + +/** + * Close any Elementor modal dialogs or floating panels that appear on first launch. + * + * @param {import('playwright/test').Page} page + */ +async function dismissElementorModals( page ) { + // Elementor's "What's New" / notifications lightbox — dismiss via "Skip" button. + const skipBtn = page.locator( 'button:has-text("Skip"), button:has-text("Maybe Later")' ).first(); + if ( await skipBtn.isVisible( { timeout: 1500 } ).catch( () => false ) ) { + await skipBtn.click(); + await page.waitForTimeout( 300 ); + } + + // Generic lightbox close button (same dialog, alternative close path). + const lightboxClose = page.locator( '.dialog-lightbox-close-button' ).first(); + if ( await lightboxClose.isVisible( { timeout: 1000 } ).catch( () => false ) ) { + await lightboxClose.click(); + await page.waitForTimeout( 300 ); + } + + // Onboarding / "productivity boost" checklist panel. + const onboardingClose = page.locator( '.e-onboarding__go-pro-close-btn, [data-action="close"]' ).first(); + if ( await onboardingClose.isVisible( { timeout: 1000 } ).catch( () => false ) ) { + await onboardingClose.click(); + await page.waitForTimeout( 300 ); + } + + // Navigator / Structure panel (opens automatically on some versions). + const navigatorClose = page.locator( '#elementor-navigator__close' ).first(); + if ( await navigatorClose.isVisible( { timeout: 500 } ).catch( () => false ) ) { + await navigatorClose.click(); + } +} + +/** + * Search for the Visualizer widget in the Elementor panel and drag it onto + * the preview canvas. Resolves once the widget wrapper is present in the iframe. + * + * @param {import('playwright/test').Page} page + * @returns {Promise} + */ +async function addVisualizerWidget( page ) { + // If the panel is in widget-edit mode, press Escape to deselect and return + // to the elements list. The search box is the definitive indicator. + const searchInput = page.locator( '#elementor-panel-elements-search-input' ); + if ( ! await searchInput.isVisible( { timeout: 1000 } ).catch( () => false ) ) { + await page.keyboard.press( 'Escape' ); + await searchInput.waitFor( { timeout: 5000 } ); + } + await searchInput.fill( '' ); + await searchInput.fill( 'visualizer' ); + + // The widget card — use text filter because data-element_type lives on the + // inner .elementor-element div, not on the .elementor-element-wrapper. + const widgetHandle = page.locator( '.elementor-element-wrapper' ) + .filter( { hasText: 'Visualizer Chart' } ) + .first(); + await widgetHandle.waitFor( { timeout: 5000 } ); + + // Clicking the widget card adds it to the page in Elementor. + await widgetHandle.click(); + + const previewFrame = page.frameLocator( '#elementor-preview-iframe' ); + + // Wait until the widget wrapper appears in the preview and the panel + // switches to the widget-settings view. + await previewFrame + .locator( '[data-widget_type="visualizer-chart.default"]' ) + .waitFor( { timeout: 10000 } ); +} + +/** + * Select the first real chart from the widget's dropdown in the Elementor panel. + * + * @param {import('playwright/test').Page} page + */ +async function selectFirstChart( page ) { + // data-setting="chart_id" is on the