'defer', 'in_footer' => true ]; wp_register_style( 'jvb-form', JVB_URL.'assets/css/forms.min.css', [], $version, ); wp_register_style( 'jvb-copy-hours', JVB_URL.'assets/css/copy-hours.min.css', [], $version, ); wp_register_style( 'jvb-dash', JVB_URL.'assets/css/dash.min.css', [], $version ); //Helper functions used by other classes wp_register_script( 'jvb-utility', JVB_URL.'assets/js/min/utility.min.js', ['jvb-auth'], $version, $strategy ); wp_register_script( 'jvb-auth', JVB_URL.'assets/js/min/auth.min.js', [], $version, $strategy ); wp_register_script( 'jvb-interactions', JVB_URL.'assets/js/min/interactions.min.js', [ 'jvb-queue', 'jvb-data-store' ], $version, $strategy ); wp_register_script( 'jvb-favourites', JVB_URL.'assets/js/min/favourites.min.js', [ 'jvb-queue', 'jvb-data-store', 'jvb-interactions', ], $version, $strategy ); wp_register_script( 'jvb-votes', JVB_URL.'assets/js/min/votes.min.js', [ 'jvb-queue', 'jvb-data-store', 'jvb-interactions', ], $version, $strategy ); wp_register_script( 'jvb-settings', JVB_URL.'assets/js/min/settings.min.js', [ 'jvb-utility', 'jvb-data-store' ], $version, $strategy ); wp_register_script( 'jvb-popup', JVB_URL.'assets/js/min/popup.min.js', [ 'jvb-a11y' ], $version, $strategy ); //TODO remove? // wp_register_script( // 'jvb-media', // JVB_URL.'assets/js/min/media.min.js', // [], // $version, // $strategy // ); wp_register_script( 'jvb-copy-hours', JVB_URL.'assets/js/min/hours.min.js', [ 'jvb-form', 'jvb-utility', 'jvb-modal', 'jvb-a11y' ], $version, $strategy ); wp_register_script( 'jvb-gallery', JVB_URL.'assets/js/min/gallery.min.js', [ 'jvb-utility', 'jvb-modal', ], $version, $strategy ); wp_register_script( 'jvb-swiper', JVB_URL.'assets/js/min/swiper.min.js', [ 'jvb-utility', ], $version, $strategy ); wp_register_script( 'jvb-integrations', JVB_URL.'assets/js/min/integrations.min.js', ['jvb-auth'], $version, $strategy ); $integration_nonces = [ 'jvb_square_sync' => wp_create_nonce('jvb_square_sync'), 'jvb_gmb_sync_reviews' => wp_create_nonce('jvb_gmb_sync'), 'jvb_gmb_test_api' => wp_create_nonce('jvb_gmb_test'), 'jvb_bluesky_test_post' => wp_create_nonce('jvb_bluesky_test'), 'jvb_facebook_test_post' => wp_create_nonce('jvb_facebook_test'), 'jvb_instagram_test_post' => wp_create_nonce('jvb_instagram_test'), 'jvb_instagram_sync_media' => wp_create_nonce('jvb_instagram_sync'), 'jvb_umami_refresh_data' => wp_create_nonce('jvb_umami_refresh'), 'jvb_export_integration_settings' => wp_create_nonce('jvb_integration_export'), ]; wp_register_script( 'jvb-page-nav', JVB_URL.'assets/js/min/page-nav.min.js', [], $version, $strategy ); //A11y accessibility wp_register_script( 'jvb-a11y', JVB_URL.'assets/js/min/a11y.min.js', [], $version, $strategy ); //Central Error Management wp_register_script( 'jvb-error', JVB_URL.'assets/js/min/error.min.js', [ ], $version, $strategy ); //Simple Cache Management wp_register_script( 'jvb-cache', JVB_URL.'assets/js/min/cache.min.js', [], $version, $strategy ); //Data Store - IndexedDB utility wp_register_Script( 'jvb-data-store', JVB_URL.'assets/js/min/dataStore.min.js', [], $version, $strategy ); //SEO Admin wp_register_script( 'jvb-schema', JVB_URL.'assets/js/min/schema.min.js', ['jvb-a11y', 'jvb-form', 'jvb-tabs'], $version, $strategy ); //Tabs functionality wp_register_script( 'jvb-tabs', JVB_URL.'assets/js/min/tabs.min.js', [ 'jvb-a11y' ], $version, $strategy ); //Modal functionality wp_register_script( 'jvb-modal', JVB_URL.'assets/js/min/modal.min.js', [ 'jvb-a11y' ], $version, $strategy ); //Central Queue Management wp_register_script( 'jvb-queue', JVB_URL.'assets/js/min/queue.min.js', [ 'jvb-a11y', 'jvb-error', 'jvb-data-store', 'jvb-utility', 'jvb-popup' ], $version, $strategy ); //TaxonomySelector wp_register_script( 'jvb-selector', JVB_URL.'assets/js/min/selector.min.js', [ 'jvb-utility', 'jvb-a11y', 'jvb-error', 'jvb-data-store', 'jvb-modal', // 'jvb-loading' ], $version, $strategy ); // Taxonomy creator - only for dashboard/users with permission wp_register_script( 'jvb-creator', JVB_URL.'assets/js/min/creator.min.js', ['jvb-selector'], $version, $strategy ); //PostSelector.js wp_register_script( 'jvb-post-selector', JVB_URL.'assets/js/min/postSelector.min.js', [ 'jvb-selector' ], '1.0.1', [ 'strategy' => 'defer', 'in_footer' => true, ] ); //Upload Manager wp_register_script( 'jvb-handle-selection', JVB_URL.'assets/js/min/handleSelection.min.js', [ 'jvb-a11y', 'jvb-utility', ], $version, $strategy ); //TODO: Likely don't need. wp_register_script( 'jvb-drag-handler', JVB_URL.'assets/js/min/dragHandler.min.js', [ 'jvb-a11y', 'jvb-utility', ], $version, $strategy ); //Upload Manager wp_register_script( 'jvb-uploader', JVB_URL.'assets/js/min/uploader.min.js', [ 'sortable-multidrag', 'jvb-cache', 'jvb-a11y', 'jvb-utility', 'jvb-handle-selection', 'jvb-modal', // 'jvb-drag-handler', // 'jvb-loading', 'jvb-queue', // 'jvb-notifications' ], $version, $strategy ); //Notifications wp_register_script( 'jvb-notifications', JVB_URL.'assets/js/min/notifications.min.js', [ 'jvb-utility', ], $version, $strategy ); //Base Form Handler wp_register_script( 'jvb-form', JVB_URL.'assets/js/min/form.min.js', [ 'jvb-utility', 'jvb-tabs', 'jvb-selector', 'jvb-uploader', 'sortable-js', 'jvb-populate-form', 'jvb-quill', ], $version, $strategy ); wp_register_script( 'jvb-populate-form', JVB_URL.'assets/js/min/populate.min.js', [], $version, $strategy ); //CRUD Base Manager wp_register_script( 'jvb-crud', JVB_URL.'assets/js/min/crud.min.js', [ 'jvb-selector', 'jvb-settings', 'jvb-a11y', 'jvb-error', 'jvb-data-store', 'jvb-populate-form', 'jvb-queue', 'jvb-utility', 'jvb-quill', 'jvb-form', 'jvb-view', 'jvb-modal' ], $version, $strategy ); wp_register_script( 'jvb-view', JVB_URL.'assets/js/min/view.min.js', [ 'jvb-settings', 'jvb-a11y', 'jvb-utility', 'jvb-data-store', 'jvb-error', 'jvb-populate-form' ], $version, $strategy, ); //Bio Manager TODO: Replace with Form Handler wp_register_script( 'jvb-bio', JVB_URL.'assets/js/min/bioManager.min.js', [ 'jvb-tabs', 'jvb-form', 'jvb-queue' ], $version, $strategy ); //Shop Manager TODO: Replace with Form Handler wp_register_script( 'jvb-shop', JVB_URL.'assets/js/min/shopManager.min.js', [ 'jvb-tabs', 'jvb-form', 'jvb-queue' ], $version, $strategy ); //Content Manager TODO: Replace with CRUD.js wp_register_script( 'jvb-content', JVB_URL.'assets/js/min/ContentManager.min.js', [ 'jvb-queue', 'jvb-cache', 'jvb-error', 'jvb-uploader', 'jvb-utility', 'jvb-modal', 'jvb-selector', 'jvb-post-selector', ], $version, $strategy ); //Favourites Manager TODO: Replace with CRUD.js wp_register_script( 'jvb-favourites', JVB_URL.'assets/js/min/favouritesManager.min.js', [ 'jvb-a11y', 'jvb-queue', 'jvb-cache', 'jvb-error', 'jvb-utility', 'jvb-tabs', 'jvb-selector', 'jvb-notifications', ], $version, $strategy ); //News Manager TODO: Replace with CRUD.js wp_register_script( 'jvb-news', JVB_URL.'assets/js/min/news.min.js', [ 'jvb-a11y', 'jvb-queue', 'jvb-cache', 'jvb-error', 'jvb-utility', 'jvb-modal', 'jvb-selector', 'jvb-tabs', ], $version, $strategy ); //Notification Manager TODO: Replace with CRUD? Not quite... wp_register_script( 'jvb-notification-manager', JVB_URL.'assets/js/min/notificationManager.min.js', [ 'jvb-a11y', 'jvb-tabs', ], $version, $strategy ); wp_register_script( 'jvb-navigation', JVB_URL.'assets/js/min/navigation.min.js', [], $version, $strategy ); /***************************************** Libraries *****************************************/ wp_register_script( 'quill-js', 'https://cdn.jsdelivr.net/npm/quill@2.0.3/dist/quill.js', [], null, true ); wp_register_script( 'sortable-js', 'https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js', array(), null, true ); // Load MultiDrag plugin wp_register_script( 'sortable-multidrag', 'https://cdn.jsdelivr.net/npm/sortablejs@latest/plugins/MultiDrag.min.js', array('sortable-js'), null, true ); /****************************************** Plugins ******************************************/ wp_register_script( 'jvb-quill', JVB_URL.'assets/js/min/quill.min.js', [ 'quill-js' ], $version, $strategy ); }