Google Fonts for WordPress - Version 2.2.0

Version Description

Download this release

Release Info

Developer DannyCooper
Plugin Icon 128x128 Google Fonts for WordPress
Version 2.2.0
Comparing to
See all releases

Code changes from version 2.1.9 to 2.2.0

admin/class-ogf-upload-fonts-screen.php ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Upload Fonts Admin UI
4
+ *
5
+ * @package olympus-google-fonts
6
+ */
7
+
8
+ /**
9
+ * OGF_Upload_Fonts_Admin_Screen
10
+ */
11
+ class OGF_Upload_Fonts_Admin_Screen {
12
+
13
+ /**
14
+ * Instance of OGF_Upload_Fonts_Admin_Screen
15
+ *
16
+ * @var (Object) OGF_Upload_Fonts_Admin_Screen
17
+ */
18
+ private static $instance = null;
19
+
20
+ /**
21
+ * Parent Menu Slug
22
+ *
23
+ * @var (string) $parent_menu_slug
24
+ */
25
+ protected $parent_menu_slug = 'fonts-plugin';
26
+
27
+ /**
28
+ * Instance of OGF_Upload_Fonts_Admin_Screen.
29
+ *
30
+ * @return object Class object.
31
+ */
32
+ public static function get_instance() {
33
+ if ( ! isset( self::$instance ) ) {
34
+ self::$instance = new self();
35
+ }
36
+
37
+ return self::$instance;
38
+ }
39
+
40
+ /**
41
+ * Constructor.
42
+ */
43
+ public function __construct() {
44
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
45
+
46
+ add_action( 'admin_menu', array( $this, 'register_custom_fonts_menu' ), 101 );
47
+ add_action( 'admin_head', array( $this, 'customize_output' ) );
48
+
49
+ add_filter( 'manage_edit-' . OGF_Fonts_Taxonomy::$taxonomy_slug . '_columns', array( $this, 'manage_columns' ) );
50
+
51
+ add_action( OGF_Fonts_Taxonomy::$taxonomy_slug . '_add_form_fields', array( $this, 'add_new_taxonomy_data' ) );
52
+ add_action( OGF_Fonts_Taxonomy::$taxonomy_slug . '_edit_form_fields', array( $this, 'edit_taxonomy_data' ) );
53
+
54
+ add_action( 'edited_' . OGF_Fonts_Taxonomy::$taxonomy_slug, array( $this, 'save_metadata' ) );
55
+ add_action( 'create_' . OGF_Fonts_Taxonomy::$taxonomy_slug, array( $this, 'save_metadata' ) );
56
+
57
+ add_filter( 'upload_mimes', array( $this, 'add_to_allowed_mimes' ) );
58
+ add_filter( 'wp_check_filetype_and_ext', array( $this, 'update_mime_types' ), 10, 3 );
59
+ }
60
+
61
+ /**
62
+ * Add options page
63
+ */
64
+ public function enqueue() {
65
+ wp_enqueue_media();
66
+ wp_enqueue_script( 'olympus-google-fonts-upload', plugins_url( 'assets/js/uploadFonts.js', dirname( __FILE__ ) ), false, '1.0.0' );
67
+ }
68
+
69
+ /**
70
+ * Register custom font menu
71
+ */
72
+ public function register_custom_fonts_menu() {
73
+
74
+ if ( ! defined( 'OGF_PRO' ) ) {
75
+ return;
76
+ }
77
+
78
+ $title = apply_filters( 'ogf_custom_fonts_menu_title', __( 'Upload Fonts', 'olympus-google-fonts' ) );
79
+ add_submenu_page(
80
+ $this->parent_menu_slug,
81
+ $title,
82
+ $title,
83
+ OGF_Fonts_Taxonomy::$capability,
84
+ 'edit-tags.php?taxonomy=' . OGF_Fonts_Taxonomy::$taxonomy_slug
85
+ );
86
+
87
+ }
88
+
89
+ /**
90
+ * Modify taxonomy output.
91
+ */
92
+ public function customize_output() {
93
+ global $parent_file, $submenu_file;
94
+
95
+ if ( 'edit-tags.php?taxonomy=' . OGF_Fonts_Taxonomy::$taxonomy_slug === $submenu_file ) {
96
+ $parent_file = $this->parent_menu_slug; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
97
+ }
98
+ if ( get_current_screen()->id != 'edit-' . OGF_Fonts_Taxonomy::$taxonomy_slug ) {
99
+ return;
100
+ }
101
+
102
+ ?><style>#addtag div.form-field.term-slug-wrap, #edittag tr.form-field.term-slug-wrap { display: none; }
103
+ #addtag div.form-field.term-description-wrap, #edittag tr.form-field.term-description-wrap { display: none; }</style><script>jQuery( document ).ready( function( $ ) {
104
+ var $wrapper = $( '#addtag, #edittag' );
105
+ $wrapper.find( 'tr.form-field.term-name-wrap p, div.form-field.term-name-wrap > p' ).text( '<?php esc_html_e( 'The name of the font as it appears in the customizer options.', 'olympus-google-fonts' ); ?>' );
106
+ } );</script>
107
+ <?php
108
+ }
109
+
110
+ /**
111
+ * Manage Columns
112
+ *
113
+ * @param array $columns default columns.
114
+ * @return array $columns updated columns.
115
+ */
116
+ public function manage_columns( $columns ) {
117
+
118
+ $screen = get_current_screen();
119
+ // If current screen is add new custom fonts screen.
120
+ if ( isset( $screen->base ) && 'edit-tags' == $screen->base ) {
121
+
122
+ $old_columns = $columns;
123
+ $columns = array(
124
+ 'cb' => $old_columns['cb'],
125
+ 'name' => $old_columns['name'],
126
+ );
127
+
128
+ }
129
+ return $columns;
130
+ }
131
+
132
+ /**
133
+ * Add new Taxonomy data
134
+ */
135
+ public function add_new_taxonomy_data() {
136
+ $this->font_file_new_field( 'woff', __( 'WOFF Font File', 'olympus-google-fonts' ), '' );
137
+ $this->font_file_new_field( 'woff2', __( 'WOFF2 Font File', 'olympus-google-fonts' ), '' );
138
+ $this->font_file_new_field( 'otf', __( 'OpenType (.otf) Font File', 'olympus-google-fonts' ), '' );
139
+ $this->font_file_new_field( 'ttf', __( 'TrueType (.ttf) Font File', 'olympus-google-fonts' ), '' );
140
+ }
141
+
142
+ /**
143
+ * Edit Taxonomy data
144
+ *
145
+ * @param object $term taxonomy terms.
146
+ */
147
+ public function edit_taxonomy_data( $term ) {
148
+ $data = OGF_Fonts_Taxonomy::get_font_links( $term->term_id );
149
+ $this->font_file_edit_field( 'woff', __( 'Font .woff', 'olympus-google-fonts' ), $data['woff'], __( 'Upload the font\'s .woff file or enter the URL.', 'olympus-google-fonts' ) );
150
+ $this->font_file_edit_field( 'woff2', __( 'Font .woff2', 'olympus-google-fonts' ), $data['woff2'], __( 'Upload the font\'s .woff2 file or enter the URL.', 'olympus-google-fonts' ) );
151
+ $this->font_file_edit_field( 'ttf', __( 'Font .ttf', 'olympus-google-fonts' ), $data['ttf'], __( 'Upload the font\'s .ttf file or enter the URL.', 'olympus-google-fonts' ) );
152
+ $this->font_file_edit_field( 'otf', __( 'Font .otf', 'olympus-google-fonts' ), $data['otf'], __( 'Upload the font\'s .otf file or enter the URL.', 'olympus-google-fonts' ) );
153
+
154
+ }
155
+
156
+ /**
157
+ * Add Taxonomy data field
158
+ *
159
+ * @param int $id current term id.
160
+ * @param string $title font type title.
161
+ * @param string $description title font type description.
162
+ * @param string $value title font type meta values.
163
+ */
164
+ protected function font_file_new_field( $id, $title, $description, $value = '' ) {
165
+ ?>
166
+ <div class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap" >
167
+
168
+ <label for="font-<?php echo esc_attr( $id ); ?>"><?php echo esc_html( $title ); ?></label>
169
+ <input type="text" id="font-<?php echo esc_attr( $id ); ?>" class="ogf-custom-fonts-link <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" value="<?php echo esc_attr( $value ); ?>" />
170
+ <a href="#" class="ogf-custom-fonts-upload button" data-upload-type="<?php echo esc_attr( $id ); ?>"><?php esc_html_e( 'Upload', 'olympus-google-fonts' ); ?></a>
171
+ <p><?php echo esc_html( $description ); ?></p>
172
+ </div>
173
+ <?php
174
+ }
175
+
176
+ /**
177
+ * Add Taxonomy data field
178
+ *
179
+ * @param int $id current term id.
180
+ * @param string $title font type title.
181
+ * @param string $value title font type meta values.
182
+ * @param string $description title font type description.
183
+ */
184
+ protected function font_file_edit_field( $id, $title, $value = '', $description ) {
185
+ ?>
186
+ <tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
187
+ <th scope="row">
188
+ <label for="metadata-<?php echo esc_attr( $id ); ?>">
189
+ <?php echo esc_html( $title ); ?>
190
+ </label>
191
+ </th>
192
+ <td>
193
+ <input id="metadata-<?php echo esc_attr( $id ); ?>" type="text" class="ogf-custom-fonts-link <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" value="<?php echo esc_attr( $value ); ?>" />
194
+ <a href="#" class="ogf-custom-fonts-upload button" data-upload-type="<?php echo esc_attr( $id ); ?>"><?php esc_html_e( 'Upload', 'olympus-google-fonts' ); ?></a>
195
+ <p><?php echo esc_html( $description ); ?></p>
196
+ </td>
197
+ </tr>
198
+ <?php
199
+ }
200
+
201
+ /**
202
+ * Save Taxonomy meta data value
203
+ *
204
+ * @since 1.0.0
205
+ * @param int $term_id current term id.
206
+ */
207
+ public function save_metadata( $term_id ) {
208
+ if ( isset( $_POST[ OGF_Fonts_Taxonomy::$taxonomy_slug ] ) ) {// phpcs:ignore WordPress.Security.NonceVerification.Missing
209
+ $value = array_map( 'esc_attr', $_POST[ OGF_Fonts_Taxonomy::$taxonomy_slug ] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
210
+ OGF_Fonts_Taxonomy::update_font_links( $value, $term_id );
211
+ }
212
+ }
213
+
214
+ /**
215
+ * Add WOFF and WOFF2 to the allowed mime types.
216
+ *
217
+ * @param array $mimes Current array of mime types.
218
+ * @return array $mimes Updated array of mime types.
219
+ */
220
+ public function add_to_allowed_mimes( $mimes ) {
221
+ $mimes['woff'] = 'application/x-font-woff';
222
+ $mimes['woff2'] = 'application/x-font-woff2';
223
+ $mimes['ttf'] = 'application/x-font-ttf';
224
+ $mimes['otf'] = 'font/otf';
225
+
226
+ return $mimes;
227
+ }
228
+
229
+ /**
230
+ * Correct the mome types and extension for the font types.
231
+ *
232
+ * @param array $defaults File data array containing 'ext', 'type', and
233
+ * 'proper_filename' keys.
234
+ * @param string $file Full path to the file.
235
+ * @param string $filename The name of the file (may differ from $file due to
236
+ * $file being in a tmp directory).
237
+ * @return Array File data array containing 'ext', 'type', and
238
+ */
239
+ public function update_mime_types( $defaults, $file, $filename ) {
240
+ if ( 'ttf' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
241
+ $defaults['type'] = 'application/x-font-ttf';
242
+ $defaults['ext'] = 'ttf';
243
+ }
244
+
245
+ if ( 'otf' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
246
+ $defaults['type'] = 'application/x-font-otf';
247
+ $defaults['ext'] = 'otf';
248
+ }
249
+
250
+ return $defaults;
251
+ }
252
+
253
+ }
254
+
255
+ OGF_Upload_Fonts_Admin_Screen::get_instance();
admin/class-ogf-welcome-screen.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Olympus Google Fonts Admin Pages.
4
+ *
5
+ * @package olympus-google-fonts
6
+ */
7
+
8
+ /**
9
+ * Create the admin pages.
10
+ */
11
+ class OGF_Admin_Welcome_Screen {
12
+
13
+ /**
14
+ * Start up
15
+ */
16
+ public function __construct() {
17
+ add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
18
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
19
+ }
20
+
21
+ /**
22
+ * Add options page
23
+ */
24
+ public function add_plugin_page() {
25
+
26
+ add_menu_page(
27
+ __( 'Fonts Plugin', 'olympus-google-fonts' ),
28
+ 'Fonts Plugin',
29
+ 'manage_options',
30
+ 'fonts-plugin',
31
+ array( $this, 'render_welcome_page' ),
32
+ 'dashicons-editor-textcolor',
33
+ 61
34
+ );
35
+
36
+ add_submenu_page(
37
+ 'fonts-plugin',
38
+ __( 'Customize Fonts', 'olympus-google-fonts' ),
39
+ __( 'Customize Fonts', 'olympus-google-fonts' ),
40
+ 'manage_options',
41
+ esc_url( admin_url( '/customize.php?autofocus[panel]=ogf_google_fonts' ) )
42
+ );
43
+
44
+ }
45
+
46
+ /**
47
+ * Add options page
48
+ */
49
+ public function enqueue() {
50
+ wp_enqueue_style( 'olympus-google-fonts-welcome', plugins_url( 'admin/style.css', dirname( __FILE__ ) ), false, '1.0.0' );
51
+ }
52
+
53
+ /**
54
+ * Options page callback
55
+ */
56
+ public function render_upload_page() {
57
+ ?>
58
+ <div class="eb-wrap">
59
+ <div class="eb-content">
60
+ <div class="eb-content__header">
61
+ <h1>Your Quickstart Guide</h1>
62
+ </div>
63
+ <div class="eb-content__inner">
64
+ <img class="ebook-cover" src="<?php echo esc_url( plugins_url( 'admin/fonts-plugin-quickstart-guide.png', dirname( __FILE__ ) ) ); ?>">
65
+ <p>To help you get the most out of the Google Fonts plugin we’ve put together a free quickstart guide.</p>
66
+ <p>In this beautifully-formatted, easy-to-read PDF you will learn:
67
+ <ul>
68
+ <li>How to <strong>easily</strong> customize your typography.</li>
69
+ <li>How to host fonts <strong>locally</strong> for speed, GDPR & DSGVO.</li>
70
+ <li>How to use Google Fonts without <strong>slowing down</strong> your website.</li>
71
+ </ul>
72
+ <p>Download your free copy today.</p>
73
+ <!-- Begin Mailchimp Signup Form -->
74
+ <form action="https://fontsplugin.us9.list-manage.com/subscribe/post?u=1ed15f4383eb532a1a1034fb9&amp;id=2ed49283a0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
75
+ <input type="email" value="<?php echo sanitize_email( $email ); ?>" placeholder="Your email address..." name="EMAIL" class="required email" id="mce-EMAIL">
76
+ <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_1ed15f4383eb532a1a1034fb9_2ed49283a0" tabindex="-1" value=""></div>
77
+ <input type="submit" value="Send My Guide!" name="subscribe" id="mc-embedded-subscribe" class="button">
78
+ </form>
79
+ <!--End mc_embed_signup-->
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <?php
84
+ }
85
+
86
+ /**
87
+ * Options page callback
88
+ */
89
+ public function render_welcome_page() {
90
+ $current_user = wp_get_current_user();
91
+ $email = ( string ) $current_user->user_email;
92
+ ?>
93
+ <div class="eb-wrap">
94
+ <div class="eb-content">
95
+ <div class="eb-content__header">
96
+ <h1>Your Quickstart Guide</h1>
97
+ </div>
98
+ <div class="eb-content__inner">
99
+ <img class="ebook-cover" src="<?php echo esc_url( plugins_url( 'admin/fonts-plugin-quickstart-guide.png', dirname( __FILE__ ) ) ); ?>">
100
+ <p>To help you get the most out of the Google Fonts plugin we’ve put together a free quickstart guide.</p>
101
+ <p>In this beautifully-formatted, easy-to-read PDF you will learn:
102
+ <ul>
103
+ <li>How to <strong>easily</strong> customize your typography.</li>
104
+ <li>How to host fonts <strong>locally</strong> for speed, GDPR & DSGVO.</li>
105
+ <li>How to use Google Fonts without <strong>slowing down</strong> your website.</li>
106
+ </ul>
107
+ <p>Download your free copy today.</p>
108
+ <!-- Begin Mailchimp Signup Form -->
109
+ <form action="https://fontsplugin.us9.list-manage.com/subscribe/post?u=1ed15f4383eb532a1a1034fb9&amp;id=2ed49283a0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
110
+ <input type="email" value="<?php echo sanitize_email( $email ); ?>" placeholder="Your email address..." name="EMAIL" class="required email" id="mce-EMAIL">
111
+ <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_1ed15f4383eb532a1a1034fb9_2ed49283a0" tabindex="-1" value=""></div>
112
+ <input type="submit" value="Send My Guide!" name="subscribe" id="mc-embedded-subscribe" class="button">
113
+ </form>
114
+ <!--End mc_embed_signup-->
115
+ </div>
116
+ </div>
117
+ </div>
118
+ <?php
119
+ }
120
+ }
121
+
122
+ if ( is_admin() ) {
123
+ $my_settings_page = new OGF_Admin_Welcome_Screen();
124
+ }
admin/welcome.php DELETED
@@ -1,81 +0,0 @@
1
- <?php
2
- /**
3
- * Olympus Google Fonts Welcome Page.
4
- *
5
- * @package olympus-google-fonts
6
- */
7
-
8
- /**
9
- * Create the editor blocks welcome page.
10
- */
11
- class Olympus_Google_Fonts_Welcome {
12
-
13
- /**
14
- * Start up
15
- */
16
- public function __construct() {
17
- add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
18
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
19
- }
20
-
21
- /**
22
- * Add options page
23
- */
24
- public function add_plugin_page() {
25
- // This page will be under "Settings".
26
- add_submenu_page(
27
- 'themes.php',
28
- esc_attr__( 'Google Fonts', 'olympus-google-fonts' ),
29
- esc_attr__( 'Google Fonts', 'olympus-google-fonts' ),
30
- 'manage_options',
31
- 'olympus-google-fonts',
32
- array( $this, 'create_admin_page' )
33
- );
34
- }
35
-
36
- /**
37
- * Add options page
38
- */
39
- public function enqueue() {
40
- wp_enqueue_style( 'olympus-google-fonts-welcome', plugins_url( 'admin/style.css', dirname( __FILE__ ) ), false, '1.0.0' );
41
- }
42
-
43
- /**
44
- * Options page callback
45
- */
46
- public function create_admin_page() {
47
- $current_user = wp_get_current_user();
48
- $email = (string) $current_user->user_email;
49
- ?>
50
- <div class="eb-wrap">
51
- <div class="eb-content">
52
- <div class="eb-content__header">
53
- <h1>Your Quickstart Guide</h1>
54
- </div>
55
- <div class="eb-content__inner">
56
- <img class="ebook-cover" src="<?php echo plugins_url( 'admin/fonts-plugin-quickstart-guide.png', dirname( __FILE__ ) ); ?>">
57
- <p>To help you get the most out of the Google Fonts plugin we’ve put together a free quickstart guide.</p>
58
- <p>In this beautifully-formatted, easy-to-read PDF you will learn:
59
- <ul>
60
- <li>How to <strong>easily</strong> customize your typography.</li>
61
- <li>How to host fonts <strong>locally</strong> for speed, GDPR & DSGVO.</li>
62
- <li>How to use Google Fonts without <strong>slowing down</strong> your website.</li>
63
- </ul>
64
- <p>Download your free copy today.</p>
65
- <!-- Begin Mailchimp Signup Form -->
66
- <form action="https://fontsplugin.us9.list-manage.com/subscribe/post?u=1ed15f4383eb532a1a1034fb9&amp;id=2ed49283a0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
67
- <input type="email" value="<?php echo $email; ?>" placeholder="Your email address..." name="EMAIL" class="required email" id="mce-EMAIL">
68
- <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_1ed15f4383eb532a1a1034fb9_2ed49283a0" tabindex="-1" value=""></div>
69
- <input type="submit" value="Send My Guide!" name="subscribe" id="mc-embedded-subscribe" class="button">
70
- </form>
71
- <!--End mc_embed_signup-->
72
- </div>
73
- </div>
74
- </div>
75
- <?php
76
- }
77
- }
78
-
79
- if ( is_admin() ) {
80
- $my_settings_page = new Olympus_Google_Fonts_Welcome();
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/customize-controls.js CHANGED
@@ -26,6 +26,13 @@
26
  return false;
27
  }
28
 
 
 
 
 
 
 
 
29
  // Load the font-weights for the newly selected font.
30
  control.container.on(
31
  'change',
@@ -35,7 +42,7 @@
35
  control.settings.family.set( value );
36
  const weightsSelect = jQuery( '.typography-font-weight select' );
37
 
38
- if ( value === 'default' || isSystemFont( value ) ) {
39
 
40
  const defaultWeights = {
41
  0: "- Default -",
26
  return false;
27
  }
28
 
29
+ function isCustomFont( fontID ) {
30
+ if ( fontID.indexOf( 'cf-' ) !== -1 ) {
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+
36
  // Load the font-weights for the newly selected font.
37
  control.container.on(
38
  'change',
42
  control.settings.family.set( value );
43
  const weightsSelect = jQuery( '.typography-font-weight select' );
44
 
45
+ if ( value === 'default' || isSystemFont( value ) || isCustomFont( value ) ) {
46
 
47
  const defaultWeights = {
48
  0: "- Default -",
assets/js/customize-preview.js CHANGED
@@ -1,4 +1,4 @@
1
- /* global ogf_elements, ogf_system_fonts */
2
  jQuery( document ).ready(
3
  function() {
4
  // Retrieve the Google Fonts url from the Customizer and append it to head.
@@ -19,6 +19,11 @@ jQuery( document ).ready(
19
  const fontID = value.replace( 'sf-', '' );
20
  v.style.setProperty( 'font-family', ogf_system_fonts[ fontID ].stack, 'important' );
21
  } );
 
 
 
 
 
22
  } else {
23
  jQuery( selector ).each( function( i, v ) {
24
  v.style.setProperty( 'font-family', '"' + value.split( '-' ).join( ' ' ) + '"', 'important' );
@@ -33,6 +38,13 @@ jQuery( document ).ready(
33
  return false;
34
  }
35
 
 
 
 
 
 
 
 
36
  // Loop through the elements and bind the controls.
37
  jQuery.map( ogf_elements, function( val, id ) {
38
  wp.customize(
1
+ /* global ogf_elements, ogf_system_fonts, ogf_custom_fonts */
2
  jQuery( document ).ready(
3
  function() {
4
  // Retrieve the Google Fonts url from the Customizer and append it to head.
19
  const fontID = value.replace( 'sf-', '' );
20
  v.style.setProperty( 'font-family', ogf_system_fonts[ fontID ].stack, 'important' );
21
  } );
22
+ } else if ( isCustomFont( value ) ) {
23
+ jQuery( selector ).each( function( i, v ) {
24
+ const fontID = value.replace( 'cf-', '' );
25
+ v.style.setProperty( 'font-family', ogf_custom_fonts[ fontID ].stack, 'important' );
26
+ } );
27
  } else {
28
  jQuery( selector ).each( function( i, v ) {
29
  v.style.setProperty( 'font-family', '"' + value.split( '-' ).join( ' ' ) + '"', 'important' );
38
  return false;
39
  }
40
 
41
+ function isCustomFont( fontID ) {
42
+ if ( fontID.indexOf( 'cf-' ) !== -1 ) {
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+
48
  // Loop through the elements and bind the controls.
49
  jQuery.map( ogf_elements, function( val, id ) {
50
  wp.customize(
assets/js/uploadFonts.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+
3
+ /**
4
+ * OgfUploadFonts
5
+ */
6
+ OgfUploadFonts = {
7
+
8
+ /**
9
+ * Initializes OgfUploadFonts.
10
+ *
11
+ * @since 1.0
12
+ * @method init
13
+ */
14
+ init: function()
15
+ {
16
+ // Init.
17
+ this._fileUploads();
18
+ },
19
+ /**
20
+ * Font File Uploads
21
+ *
22
+ * @access private
23
+ * @method _fileUploads
24
+ */
25
+ _fileUploads: function()
26
+ {
27
+ var file_frame;
28
+ window.inputWrapper = '';
29
+ $( document.body ).on('click', '.ogf-custom-fonts-upload', function(event) {
30
+ event.preventDefault();
31
+ var button = $(this),
32
+ button_type = button.data('upload-type');
33
+ window.inputWrapper = $(this).closest('.ogf-custom-fonts-file-wrap');
34
+
35
+ // If the media frame already exists, reopen it.
36
+ if ( file_frame ) {
37
+ file_frame.open();
38
+ return;
39
+ }
40
+
41
+ // Create a new media frame
42
+ file_frame = wp.media.frames.file_frame = wp.media({
43
+ multiple: false // Set to true to allow multiple files to be selected
44
+ });
45
+
46
+ // When an image is selected in the media frame...
47
+ file_frame.on( 'select', function() {
48
+
49
+ // Get media attachment details from the frame state
50
+ var attachment = file_frame.state().get('selection').first().toJSON();
51
+ window.inputWrapper.find( '.ogf-custom-fonts-link' ).val(attachment.url);
52
+ });
53
+ // Finally, open the modal
54
+ file_frame.open();
55
+ });
56
+ var file_frame;
57
+ window.inputWrapper = '';
58
+ },
59
+ }
60
+
61
+ $(function(){
62
+ OgfUploadFonts.init();
63
+ });
64
+
65
+ })(jQuery);
blocks/dist/blocks.build.js CHANGED
@@ -1 +1 @@
1
- !function(i){function a(l){if(t[l])return t[l].exports;var e=t[l]={i:l,l:!1,exports:{}};return i[l].call(e.exports,e,e.exports,a),e.l=!0,e.exports}var t={};a.m=i,a.c=t,a.d=function(i,t,l){a.o(i,t)||Object.defineProperty(i,t,{configurable:!1,enumerable:!0,get:l})},a.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return a.d(t,"a",t),t},a.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},a.p="",a(a.s=0)}([function(i,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});t(1)},function(i,a,t){"use strict";var l=t(2),e=t(5),__=wp.i18n.__;(0,wp.blocks.registerBlockType)("olympus-google-fonts/google-fonts",{title:__("Google Fonts","olympus-google-fonts"),category:"common",icon:wp.element.createElement("svg",{baseProfile:"tiny",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),wp.element.createElement("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"})),keywords:[__("Fonts","olympus-google-fonts"),__("Heading","olympus-google-fonts")],transforms:e.a,edit:l.a,save:function(){return null}})},function(i,a,t){"use strict";function l(i,a){if(!(i instanceof a))throw new TypeError("Cannot call a class as a function")}function e(i,a){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?i:a}function f(i,a){if("function"!==typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function, not "+typeof a);i.prototype=Object.create(a&&a.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(i,a):i.__proto__=a)}var v=t(3),c=t.n(v),n=t(4),o=t.n(n),r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&"function"===typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},s=function(){function i(i,a){for(var t=0;t<a.length;t++){var l=a[t];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(i,l.key,l)}}return function(a,t,l){return t&&i(a.prototype,t),l&&i(a,l),a}}(),__=wp.i18n.__,u=wp.element,d=u.Component,S=u.Fragment,m=wp.components,h=m.SelectControl,p=m.RangeControl,g=m.PanelBody,b=wp.editor,y=b.RichText,C=b.InspectorControls,k=b.BlockControls,M=b.AlignmentToolbar,O=b.PanelColorSettings,w=function(i){function a(){return l(this,a),e(this,(a.__proto__||Object.getPrototypeOf(a)).apply(this,arguments))}return f(a,i),s(a,[{key:"componentDidUpdate",value:function(i){this.props.attributes.fontID!==i.attributes.fontID&&(this.props.attributes.v="0")}},{key:"getFontsForSelect",value:function(){var i=o.a.items.map(function(i){var a=i.label;return{value:i.id,label:a}}),a=c.a.items.map(function(i){var a=i.f;return{value:a.replace(/\s+/g,"+"),label:a}});return i.concat(a)}},{key:"searchFonts",value:function(i,a){for(var t=0;t<a.length;t++)if(a[t].id===i)return a[t]}},{key:"isSystemFont",value:function(i){var a=this.searchFonts(i,o.a.items);return"object"===("undefined"===typeof a?"undefined":r(a))}},{key:"isItalic",value:function(i){return!i.includes("0i")}},{key:"getVariantsForSelect",value:function(i){if(i){var a={0:__("- Default -","olympus-google-fonts"),100:__("Thin","olympus-google-fonts"),200:__("Extra Light","olympus-google-fonts"),300:__("Light","olympus-google-fonts"),400:__("Normal","olympus-google-fonts"),500:__("Medium","olympus-google-fonts"),600:__("Semi Bold","olympus-google-fonts"),700:__("Bold","olympus-google-fonts"),800:__("Extra Bold","olympus-google-fonts"),900:__("Ultra Bold","olympus-google-fonts")};return-1===i.v.indexOf("0")?i.v.unshift("0"):console.log("This item already exists"),i.v.filter(this.isItalic).map(function(i){return{value:i,label:a[i]}})}}},{key:"getFontObject",value:function(i){if(i)for(var a=0;a<c.a.items.length;a++)if(c.a.items[a].f===i)return c.a.items[a]}},{key:"addGoogleFontToHead",value:function(i,a){if(i&&a&&!this.isSystemFont()){var t=document.head,l=document.createElement("link");l.type="text/css",l.rel="stylesheet",l.href="https://fonts.googleapis.com/css?family="+i.replace(/\s+/g,"+")+":"+a.v.join(","),t.appendChild(l)}}},{key:"render",value:function(){var i=this.props,a=i.attributes,t=i.setAttributes,l=a.fontID,e=a.content,f=a.align,v=a.variant,c=a.fontSize,n=a.lineHeight,o=a.color,r=a.blockType,s=this.getFontsForSelect();s.unshift({label:"- Default -",value:"0"});var u=[{value:"0",label:"- Default -"},{value:"400",label:"Regular"},{value:"700",label:"Bold"}];if(!this.isSystemFont(l)){var d=this.getFontObject(l.replace(/\+/g," "));u=this.getVariantsForSelect(d),this.addGoogleFontToHead(l,d)}var m=wp.element.createElement(C,null,wp.element.createElement(g,{title:__("Font Settings","olympus-google-fonts")},wp.element.createElement(h,{label:__("Block Type","olympus-google-fonts"),type:"string",value:r,options:[{label:"Paragraph",value:"p"},{label:"H1",value:"h1"},{label:"H2",value:"h2"},{label:"H3",value:"h3"},{label:"H4",value:"h4"},{label:"H5",value:"h5"},{label:"H6",value:"h6"},{label:"Span",value:"span"}],onChange:function(i){return t({blockType:i})}}),wp.element.createElement(h,{label:__("Font","olympus-google-fonts"),type:"string",value:l,options:s,onChange:function(i){return t({fontID:i})}}),wp.element.createElement(h,{label:__("Font Variant","olympus-google-fonts"),type:"string",value:v,options:u,onChange:function(i){return t({variant:i})}}),wp.element.createElement(p,{label:__("Font Size","olympus-google-fonts"),value:c,onChange:function(i){return t({fontSize:i})},allowReset:!0,min:"10",max:"50"}),wp.element.createElement(p,{label:__("Line Height","olympus-google-fonts"),value:n,onChange:function(i){return t({lineHeight:i})},allowReset:!0,min:"1",max:"3",step:"0.1"}),wp.element.createElement(O,{title:__("Color Settings","olympus-google-fonts"),colorSettings:[{value:a.color,onChange:function(i){return t({color:i})},label:__("Text Color","olympus-google-fonts")}]})));return wp.element.createElement(S,null,m,wp.element.createElement(k,null,wp.element.createElement(M,{value:f,onChange:function(i){return t({align:i})}})),wp.element.createElement(y,{tagName:r||"p",value:e,onChange:function(i){return t({content:i})},style:{fontSize:c?c+"px":void 0,textAlign:f,fontFamily:l.replace(/\+/g," "),fontWeight:v,lineHeight:n,color:o},placeholder:__("Add some content...","olympus-google-fonts"),formattingControls:["italic","link"]}))}}]),a}(d);a.a=w},function(i,a){i.exports={kind:"webfonts#webfontList",items:[{f:"ABeeZee",v:["400","400italic"]},{f:"Abel",v:["400"]},{f:"Abhaya Libre",v:["400","500","600","700","800"]},{f:"Abril Fatface",v:["400"]},{f:"Aclonica",v:["400"]},{f:"Acme",v:["400"]},{f:"Actor",v:["400"]},{f:"Adamina",v:["400"]},{f:"Advent Pro",v:["100","200","300","400","500","600","700"]},{f:"Aguafina Script",v:["400"]},{f:"Akronim",v:["400"]},{f:"Aladin",v:["400"]},{f:"Alata",v:["400"]},{f:"Alatsi",v:["400"]},{f:"Aldrich",v:["400"]},{f:"Alef",v:["400","700"]},{f:"Alegreya",v:["400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya SC",v:["400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya Sans",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya Sans SC",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Aleo",v:["300","300italic","400","400italic","700","700italic"]},{f:"Alex Brush",v:["400"]},{f:"Alfa Slab One",v:["400"]},{f:"Alice",v:["400"]},{f:"Alike",v:["400"]},{f:"Alike Angular",v:["400"]},{f:"Allan",v:["400","700"]},{f:"Allerta",v:["400"]},{f:"Allerta Stencil",v:["400"]},{f:"Allura",v:["400"]},{f:"Almarai",v:["300","400","700","800"]},{f:"Almendra",v:["400","400italic","700","700italic"]},{f:"Almendra Display",v:["400"]},{f:"Almendra SC",v:["400"]},{f:"Amarante",v:["400"]},{f:"Amaranth",v:["400","400italic","700","700italic"]},{f:"Amatic SC",v:["400","700"]},{f:"Amethysta",v:["400"]},{f:"Amiko",v:["400","600","700"]},{f:"Amiri",v:["400","400italic","700","700italic"]},{f:"Amita",v:["400","700"]},{f:"Anaheim",v:["400"]},{f:"Andada",v:["400"]},{f:"Andika",v:["400"]},{f:"Angkor",v:["400"]},{f:"Annie Use Your Telescope",v:["400"]},{f:"Anonymous Pro",v:["400","400italic","700","700italic"]},{f:"Antic",v:["400"]},{f:"Antic Didone",v:["400"]},{f:"Antic Slab",v:["400"]},{f:"Anton",v:["400"]},{f:"Arapey",v:["400","400italic"]},{f:"Arbutus",v:["400"]},{f:"Arbutus Slab",v:["400"]},{f:"Architects Daughter",v:["400"]},{f:"Archivo",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Archivo Black",v:["400"]},{f:"Archivo Narrow",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Aref Ruqaa",v:["400","700"]},{f:"Arima Madurai",v:["100","200","300","400","500","700","800","900"]},{f:"Arimo",v:["400","400italic","700","700italic"]},{f:"Arizonia",v:["400"]},{f:"Armata",v:["400"]},{f:"Arsenal",v:["400","400italic","700","700italic"]},{f:"Artifika",v:["400"]},{f:"Arvo",v:["400","400italic","700","700italic"]},{f:"Arya",v:["400","700"]},{f:"Asap",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Asap Condensed",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Asar",v:["400"]},{f:"Asset",v:["400"]},{f:"Assistant",v:["200","300","400","600","700","800"]},{f:"Astloch",v:["400","700"]},{f:"Asul",v:["400","700"]},{f:"Athiti",v:["200","300","400","500","600","700"]},{f:"Atma",v:["300","400","500","600","700"]},{f:"Atomic Age",v:["400"]},{f:"Aubrey",v:["400"]},{f:"Audiowide",v:["400"]},{f:"Autour One",v:["400"]},{f:"Average",v:["400"]},{f:"Average Sans",v:["400"]},{f:"Averia Gruesa Libre",v:["400"]},{f:"Averia Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"Averia Sans Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"Averia Serif Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"B612",v:["400","400italic","700","700italic"]},{f:"B612 Mono",v:["400","400italic","700","700italic"]},{f:"Bad Script",v:["400"]},{f:"Bahiana",v:["400"]},{f:"Bahianita",v:["400"]},{f:"Bai Jamjuree",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Baloo 2",v:["400","500","600","700","800"]},{f:"Baloo Bhai 2",v:["400","500","600","700","800"]},{f:"Baloo Bhaina 2",v:["400","500","600","700","800"]},{f:"Baloo Chettan 2",v:["400","500","600","700","800"]},{f:"Baloo Da 2",v:["400","500","600","700","800"]},{f:"Baloo Paaji 2",v:["400","500","600","700","800"]},{f:"Baloo Tamma 2",v:["400","500","600","700","800"]},{f:"Baloo Tammudu 2",v:["400","500","600","700","800"]},{f:"Baloo Thambi 2",v:["400","500","600","700","800"]},{f:"Balsamiq Sans",v:["400","400italic","700","700italic"]},{f:"Balthazar",v:["400"]},{f:"Bangers",v:["400"]},{f:"Barlow",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barlow Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barlow Semi Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barriecito",v:["400"]},{f:"Barrio",v:["400"]},{f:"Basic",v:["400"]},{f:"Baskervville",v:["400","400italic"]},{f:"Battambang",v:["400","700"]},{f:"Baumans",v:["400"]},{f:"Bayon",v:["400"]},{f:"Be Vietnam",v:["100","100italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Bebas Neue",v:["400"]},{f:"Belgrano",v:["400"]},{f:"Bellefair",v:["400"]},{f:"Belleza",v:["400"]},{f:"Bellota",v:["300","300italic","400","400italic","700","700italic"]},{f:"Bellota Text",v:["300","300italic","400","400italic","700","700italic"]},{f:"BenchNine",v:["300","400","700"]},{f:"Bentham",v:["400"]},{f:"Berkshire Swash",v:["400"]},{f:"Beth Ellen",v:["400"]},{f:"Bevan",v:["400"]},{f:"Big Shoulders Display",v:["100","300","400","500","600","700","800","900"]},{f:"Big Shoulders Text",v:["100","300","400","500","600","700","800","900"]},{f:"Bigelow Rules",v:["400"]},{f:"Bigshot One",v:["400"]},{f:"Bilbo",v:["400"]},{f:"Bilbo Swash Caps",v:["400"]},{f:"BioRhyme",v:["200","300","400","700","800"]},{f:"BioRhyme Expanded",v:["200","300","400","700","800"]},{f:"Biryani",v:["200","300","400","600","700","800","900"]},{f:"Bitter",v:["400","400italic","700"]},{f:"Black And White Picture",v:["400"]},{f:"Black Han Sans",v:["400"]},{f:"Black Ops One",v:["400"]},{f:"Blinker",v:["100","200","300","400","600","700","800","900"]},{f:"Bokor",v:["400"]},{f:"Bonbon",v:["400"]},{f:"Boogaloo",v:["400"]},{f:"Bowlby One",v:["400"]},{f:"Bowlby One SC",v:["400"]},{f:"Brawler",v:["400"]},{f:"Bree Serif",v:["400"]},{f:"Bubblegum Sans",v:["400"]},{f:"Bubbler One",v:["400"]},{f:"Buda",v:["300"]},{f:"Buenard",v:["400","700"]},{f:"Bungee",v:["400"]},{f:"Bungee Hairline",v:["400"]},{f:"Bungee Inline",v:["400"]},{f:"Bungee Outline",v:["400"]},{f:"Bungee Shade",v:["400"]},{f:"Butcherman",v:["400"]},{f:"Butterfly Kids",v:["400"]},{f:"Cabin",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cabin Condensed",v:["400","500","600","700"]},{f:"Cabin Sketch",v:["400","700"]},{f:"Caesar Dressing",v:["400"]},{f:"Cagliostro",v:["400"]},{f:"Cairo",v:["200","300","400","600","700","900"]},{f:"Caladea",v:["400","400italic","700","700italic"]},{f:"Calistoga",v:["400"]},{f:"Calligraffitti",v:["400"]},{f:"Cambay",v:["400","400italic","700","700italic"]},{f:"Cambo",v:["400"]},{f:"Candal",v:["400"]},{f:"Cantarell",v:["400","400italic","700","700italic"]},{f:"Cantata One",v:["400"]},{f:"Cantora One",v:["400"]},{f:"Capriola",v:["400"]},{f:"Cardo",v:["400","400italic","700"]},{f:"Carme",v:["400"]},{f:"Carrois Gothic",v:["400"]},{f:"Carrois Gothic SC",v:["400"]},{f:"Carter One",v:["400"]},{f:"Catamaran",v:["100","200","300","400","500","600","700","800","900"]},{f:"Caudex",v:["400","400italic","700","700italic"]},{f:"Caveat",v:["400","700"]},{f:"Caveat Brush",v:["400"]},{f:"Cedarville Cursive",v:["400"]},{f:"Ceviche One",v:["400"]},{f:"Chakra Petch",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Changa",v:["200","300","400","500","600","700","800"]},{f:"Changa One",v:["400","400italic"]},{f:"Chango",v:["400"]},{f:"Charm",v:["400","700"]},{f:"Charmonman",v:["400","700"]},{f:"Chathura",v:["100","300","400","700","800"]},{f:"Chau Philomene One",v:["400","400italic"]},{f:"Chela One",v:["400"]},{f:"Chelsea Market",v:["400"]},{f:"Chenla",v:["400"]},{f:"Cherry Cream Soda",v:["400"]},{f:"Cherry Swash",v:["400","700"]},{f:"Chewy",v:["400"]},{f:"Chicle",v:["400"]},{f:"Chilanka",v:["400"]},{f:"Chivo",v:["300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"Chonburi",v:["400"]},{f:"Cinzel",v:["400","700","900"]},{f:"Cinzel Decorative",v:["400","700","900"]},{f:"Clicker Script",v:["400"]},{f:"Coda",v:["400","800"]},{f:"Coda Caption",v:["800"]},{f:"Codystar",v:["300","400"]},{f:"Coiny",v:["400"]},{f:"Combo",v:["400"]},{f:"Comfortaa",v:["300","400","500","600","700"]},{f:"Comic Neue",v:["300","300italic","400","400italic","700","700italic"]},{f:"Coming Soon",v:["400"]},{f:"Concert One",v:["400"]},{f:"Condiment",v:["400"]},{f:"Content",v:["400","700"]},{f:"Contrail One",v:["400"]},{f:"Convergence",v:["400"]},{f:"Cookie",v:["400"]},{f:"Copse",v:["400"]},{f:"Corben",v:["400","700"]},{f:"Cormorant",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant Garamond",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant Infant",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant SC",v:["300","400","500","600","700"]},{f:"Cormorant Unicase",v:["300","400","500","600","700"]},{f:"Cormorant Upright",v:["300","400","500","600","700"]},{f:"Courgette",v:["400"]},{f:"Courier Prime",v:["400","400italic","700","700italic"]},{f:"Cousine",v:["400","400italic","700","700italic"]},{f:"Coustard",v:["400","900"]},{f:"Covered By Your Grace",v:["400"]},{f:"Crafty Girls",v:["400"]},{f:"Creepster",v:["400"]},{f:"Crete Round",v:["400","400italic"]},{f:"Crimson Pro",v:["200","300","400","500","600","700","800","900","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Crimson Text",v:["400","400italic","600","600italic","700","700italic"]},{f:"Croissant One",v:["400"]},{f:"Crushed",v:["400"]},{f:"Cuprum",v:["400","400italic","700","700italic"]},{f:"Cute Font",v:["400"]},{f:"Cutive",v:["400"]},{f:"Cutive Mono",v:["400"]},{f:"DM Mono",v:["300","300italic","400","400italic","500","500italic"]},{f:"DM Sans",v:["400","400italic","500","500italic","700","700italic"]},{f:"DM Serif Display",v:["400","400italic"]},{f:"DM Serif Text",v:["400","400italic"]},{f:"Damion",v:["400"]},{f:"Dancing Script",v:["400","500","600","700"]},{f:"Dangrek",v:["400"]},{f:"Darker Grotesque",v:["300","400","500","600","700","800","900"]},{f:"David Libre",v:["400","500","700"]},{f:"Dawning of a New Day",v:["400"]},{f:"Days One",v:["400"]},{f:"Dekko",v:["400"]},{f:"Delius",v:["400"]},{f:"Delius Swash Caps",v:["400"]},{f:"Delius Unicase",v:["400","700"]},{f:"Della Respira",v:["400"]},{f:"Denk One",v:["400"]},{f:"Devonshire",v:["400"]},{f:"Dhurjati",v:["400"]},{f:"Didact Gothic",v:["400"]},{f:"Diplomata",v:["400"]},{f:"Diplomata SC",v:["400"]},{f:"Do Hyeon",v:["400"]},{f:"Dokdo",v:["400"]},{f:"Domine",v:["400","700"]},{f:"Donegal One",v:["400"]},{f:"Doppio One",v:["400"]},{f:"Dorsa",v:["400"]},{f:"Dosis",v:["200","300","400","500","600","700","800"]},{f:"Dr Sugiyama",v:["400"]},{f:"Duru Sans",v:["400"]},{f:"Dynalight",v:["400"]},{f:"EB Garamond",v:["400","500","600","700","800","400italic","500italic","600italic","700italic","800italic"]},{f:"Eagle Lake",v:["400"]},{f:"East Sea Dokdo",v:["400"]},{f:"Eater",v:["400"]},{f:"Economica",v:["400","400italic","700","700italic"]},{f:"Eczar",v:["400","500","600","700","800"]},{f:"El Messiri",v:["400","500","600","700"]},{f:"Electrolize",v:["400"]},{f:"Elsie",v:["400","900"]},{f:"Elsie Swash Caps",v:["400","900"]},{f:"Emblema One",v:["400"]},{f:"Emilys Candy",v:["400"]},{f:"Encode Sans",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Expanded",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Semi Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Semi Expanded",v:["100","200","300","400","500","600","700","800","900"]},{f:"Engagement",v:["400"]},{f:"Englebert",v:["400"]},{f:"Enriqueta",v:["400","500","600","700"]},{f:"Epilogue",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Erica One",v:["400"]},{f:"Esteban",v:["400"]},{f:"Euphoria Script",v:["400"]},{f:"Ewert",v:["400"]},{f:"Exo",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Exo 2",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Expletus Sans",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Fahkwang",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Fanwood Text",v:["400","400italic"]},{f:"Farro",v:["300","400","500","700"]},{f:"Farsan",v:["400"]},{f:"Fascinate",v:["400"]},{f:"Fascinate Inline",v:["400"]},{f:"Faster One",v:["400"]},{f:"Fasthand",v:["400"]},{f:"Fauna One",v:["400"]},{f:"Faustina",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Federant",v:["400"]},{f:"Federo",v:["400"]},{f:"Felipa",v:["400"]},{f:"Fenix",v:["400"]},{f:"Finger Paint",v:["400"]},{f:"Fira Code",v:["300","400","500","600","700"]},{f:"Fira Mono",v:["400","500","700"]},{f:"Fira Sans",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fira Sans Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fira Sans Extra Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fjalla One",v:["400"]},{f:"Fjord One",v:["400"]},{f:"Flamenco",v:["300","400"]},{f:"Flavors",v:["400"]},{f:"Fondamento",v:["400","400italic"]},{f:"Fontdiner Swanky",v:["400"]},{f:"Forum",v:["400"]},{f:"Francois One",v:["400"]},{f:"Frank Ruhl Libre",v:["300","400","500","700","900"]},{f:"Freckle Face",v:["400"]},{f:"Fredericka the Great",v:["400"]},{f:"Fredoka One",v:["400"]},{f:"Freehand",v:["400"]},{f:"Fresca",v:["400"]},{f:"Frijole",v:["400"]},{f:"Fruktur",v:["400"]},{f:"Fugaz One",v:["400"]},{f:"GFS Didot",v:["400"]},{f:"GFS Neohellenic",v:["400","400italic","700","700italic"]},{f:"Gabriela",v:["400"]},{f:"Gaegu",v:["300","400","700"]},{f:"Gafata",v:["400"]},{f:"Galada",v:["400"]},{f:"Galdeano",v:["400"]},{f:"Galindo",v:["400"]},{f:"Gamja Flower",v:["400"]},{f:"Gayathri",v:["100","400","700"]},{f:"Gelasio",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Gentium Basic",v:["400","400italic","700","700italic"]},{f:"Gentium Book Basic",v:["400","400italic","700","700italic"]},{f:"Geo",v:["400","400italic"]},{f:"Geostar",v:["400"]},{f:"Geostar Fill",v:["400"]},{f:"Germania One",v:["400"]},{f:"Gidugu",v:["400"]},{f:"Gilda Display",v:["400"]},{f:"Girassol",v:["400"]},{f:"Give You Glory",v:["400"]},{f:"Glass Antiqua",v:["400"]},{f:"Glegoo",v:["400","700"]},{f:"Gloria Hallelujah",v:["400"]},{f:"Goblin One",v:["400"]},{f:"Gochi Hand",v:["400"]},{f:"Gorditas",v:["400","700"]},{f:"Gothic A1",v:["100","200","300","400","500","600","700","800","900"]},{f:"Gotu",v:["400"]},{f:"Goudy Bookletter 1911",v:["400"]},{f:"Graduate",v:["400"]},{f:"Grand Hotel",v:["400"]},{f:"Gravitas One",v:["400"]},{f:"Great Vibes",v:["400"]},{f:"Grenze",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Grenze Gotisch",v:["100","200","300","400","500","600","700","800","900"]},{f:"Griffy",v:["400"]},{f:"Gruppo",v:["400"]},{f:"Gudea",v:["400","400italic","700"]},{f:"Gugi",v:["400"]},{f:"Gupter",v:["400","500","700"]},{f:"Gurajada",v:["400"]},{f:"Habibi",v:["400"]},{f:"Halant",v:["300","400","500","600","700"]},{f:"Hammersmith One",v:["400"]},{f:"Hanalei",v:["400"]},{f:"Hanalei Fill",v:["400"]},{f:"Handlee",v:["400"]},{f:"Hanuman",v:["400","700"]},{f:"Happy Monkey",v:["400"]},{f:"Harmattan",v:["400","700"]},{f:"Headland One",v:["400"]},{f:"Heebo",v:["100","200","300","400","500","600","700","800","900"]},{f:"Henny Penny",v:["400"]},{f:"Hepta Slab",v:["100","200","300","400","500","600","700","800","900"]},{f:"Herr Von Muellerhoff",v:["400"]},{f:"Hi Melody",v:["400"]},{f:"Hind",v:["300","400","500","600","700"]},{f:"Hind Guntur",v:["300","400","500","600","700"]},{f:"Hind Madurai",v:["300","400","500","600","700"]},{f:"Hind Siliguri",v:["300","400","500","600","700"]},{f:"Hind Vadodara",v:["300","400","500","600","700"]},{f:"Holtwood One SC",v:["400"]},{f:"Homemade Apple",v:["400"]},{f:"Homenaje",v:["400"]},{f:"IBM Plex Mono",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Sans",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Sans Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Serif",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IM Fell DW Pica",v:["400","400italic"]},{f:"IM Fell DW Pica SC",v:["400"]},{f:"IM Fell Double Pica",v:["400","400italic"]},{f:"IM Fell Double Pica SC",v:["400"]},{f:"IM Fell English",v:["400","400italic"]},{f:"IM Fell English SC",v:["400"]},{f:"IM Fell French Canon",v:["400","400italic"]},{f:"IM Fell French Canon SC",v:["400"]},{f:"IM Fell Great Primer",v:["400","400italic"]},{f:"IM Fell Great Primer SC",v:["400"]},{f:"Ibarra Real Nova",v:["400","400italic","600","600italic","700","700italic"]},{f:"Iceberg",v:["400"]},{f:"Iceland",v:["400"]},{f:"Imprima",v:["400"]},{f:"Inconsolata",v:["200","300","400","500","600","700","800","900"]},{f:"Inder",v:["400"]},{f:"Indie Flower",v:["400"]},{f:"Inika",v:["400","700"]},{f:"Inknut Antiqua",v:["300","400","500","600","700","800","900"]},{f:"Inria Sans",v:["300","300italic","400","400italic","700","700italic"]},{f:"Inria Serif",v:["300","300italic","400","400italic","700","700italic"]},{f:"Inter",v:["100","200","300","400","500","600","700","800","900"]},{f:"Irish Grover",v:["400"]},{f:"Istok Web",v:["400","400italic","700","700italic"]},{f:"Italiana",v:["400"]},{f:"Italianno",v:["400"]},{f:"Itim",v:["400"]},{f:"Jacques Francois",v:["400"]},{f:"Jacques Francois Shadow",v:["400"]},{f:"Jaldi",v:["400","700"]},{f:"Jim Nightshade",v:["400"]},{f:"Jockey One",v:["400"]},{f:"Jolly Lodger",v:["400"]},{f:"Jomhuria",v:["400"]},{f:"Jomolhari",v:["400"]},{f:"Josefin Sans",v:["100","200","300","400","500","600","700","100italic","200italic","300italic","400italic","500italic","600italic","700italic"]},{f:"Josefin Slab",v:["100","100italic","300","300italic","400","400italic","600","600italic","700","700italic"]},{f:"Jost",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Joti One",v:["400"]},{f:"Jua",v:["400"]},{f:"Judson",v:["400","400italic","700"]},{f:"Julee",v:["400"]},{f:"Julius Sans One",v:["400"]},{f:"Junge",v:["400"]},{f:"Jura",v:["300","400","500","600","700"]},{f:"Just Another Hand",v:["400"]},{f:"Just Me Again Down Here",v:["400"]},{f:"K2D",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Kadwa",v:["400","700"]},{f:"Kalam",v:["300","400","700"]},{f:"Kameron",v:["400","700"]},{f:"Kanit",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Kantumruy",v:["300","400","700"]},{f:"Karla",v:["400","400italic","700","700italic"]},{f:"Karma",v:["300","400","500","600","700"]},{f:"Katibeh",v:["400"]},{f:"Kaushan Script",v:["400"]},{f:"Kavivanar",v:["400"]},{f:"Kavoon",v:["400"]},{f:"Kdam Thmor",v:["400"]},{f:"Keania One",v:["400"]},{f:"Kelly Slab",v:["400"]},{f:"Kenia",v:["400"]},{f:"Khand",v:["300","400","500","600","700"]},{f:"Khmer",v:["400"]},{f:"Khula",v:["300","400","600","700","800"]},{f:"Kirang Haerang",v:["400"]},{f:"Kite One",v:["400"]},{f:"Knewave",v:["400"]},{f:"KoHo",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kodchasan",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kosugi",v:["400"]},{f:"Kosugi Maru",v:["400"]},{f:"Kotta One",v:["400"]},{f:"Koulen",v:["400"]},{f:"Kranky",v:["400"]},{f:"Kreon",v:["300","400","500","600","700"]},{f:"Kristi",v:["400"]},{f:"Krona One",v:["400"]},{f:"Krub",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kulim Park",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic"]},{f:"Kumar One",v:["400"]},{f:"Kumar One Outline",v:["400"]},{f:"Kurale",v:["400"]},{f:"La Belle Aurore",v:["400"]},{f:"Lacquer",v:["400"]},{f:"Laila",v:["300","400","500","600","700"]},{f:"Lakki Reddy",v:["400"]},{f:"Lalezar",v:["400"]},{f:"Lancelot",v:["400"]},{f:"Lateef",v:["400"]},{f:"Lato",v:["100","100italic","300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"League Script",v:["400"]},{f:"Leckerli One",v:["400"]},{f:"Ledger",v:["400"]},{f:"Lekton",v:["400","400italic","700"]},{f:"Lemon",v:["400"]},{f:"Lemonada",v:["300","400","500","600","700"]},{f:"Lexend Deca",v:["400"]},{f:"Lexend Exa",v:["400"]},{f:"Lexend Giga",v:["400"]},{f:"Lexend Mega",v:["400"]},{f:"Lexend Peta",v:["400"]},{f:"Lexend Tera",v:["400"]},{f:"Lexend Zetta",v:["400"]},{f:"Libre Barcode 128",v:["400"]},{f:"Libre Barcode 128 Text",v:["400"]},{f:"Libre Barcode 39",v:["400"]},{f:"Libre Barcode 39 Extended",v:["400"]},{f:"Libre Barcode 39 Extended Text",v:["400"]},{f:"Libre Barcode 39 Text",v:["400"]},{f:"Libre Baskerville",v:["400","400italic","700"]},{f:"Libre Caslon Display",v:["400"]},{f:"Libre Caslon Text",v:["400","400italic","700"]},{f:"Libre Franklin",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Life Savers",v:["400","700","800"]},{f:"Lilita One",v:["400"]},{f:"Lily Script One",v:["400"]},{f:"Limelight",v:["400"]},{f:"Linden Hill",v:["400","400italic"]},{f:"Literata",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Liu Jian Mao Cao",v:["400"]},{f:"Livvic",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","900","900italic"]},{f:"Lobster",v:["400"]},{f:"Lobster Two",v:["400","400italic","700","700italic"]},{f:"Londrina Outline",v:["400"]},{f:"Londrina Shadow",v:["400"]},{f:"Londrina Sketch",v:["400"]},{f:"Londrina Solid",v:["100","300","400","900"]},{f:"Long Cang",v:["400"]},{f:"Lora",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Love Ya Like A Sister",v:["400"]},{f:"Loved by the King",v:["400"]},{f:"Lovers Quarrel",v:["400"]},{f:"Luckiest Guy",v:["400"]},{f:"Lusitana",v:["400","700"]},{f:"Lustria",v:["400"]},{f:"M PLUS 1p",v:["100","300","400","500","700","800","900"]},{f:"M PLUS Rounded 1c",v:["100","300","400","500","700","800","900"]},{f:"Ma Shan Zheng",v:["400"]},{f:"Macondo",v:["400"]},{f:"Macondo Swash Caps",v:["400"]},{f:"Mada",v:["200","300","400","500","600","700","900"]},{f:"Magra",v:["400","700"]},{f:"Maiden Orange",v:["400"]},{f:"Maitree",v:["200","300","400","500","600","700"]},{f:"Major Mono Display",v:["400"]},{f:"Mako",v:["400"]},{f:"Mali",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Mallanna",v:["400"]},{f:"Mandali",v:["400"]},{f:"Manjari",v:["100","400","700"]},{f:"Manrope",v:["200","300","400","500","600","700","800"]},{f:"Mansalva",v:["400"]},{f:"Manuale",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Marcellus",v:["400"]},{f:"Marcellus SC",v:["400"]},{f:"Marck Script",v:["400"]},{f:"Margarine",v:["400"]},{f:"Markazi Text",v:["400","500","600","700"]},{f:"Marko One",v:["400"]},{f:"Marmelad",v:["400"]},{f:"Martel",v:["200","300","400","600","700","800","900"]},{f:"Martel Sans",v:["200","300","400","600","700","800","900"]},{f:"Marvel",v:["400","400italic","700","700italic"]},{f:"Mate",v:["400","400italic"]},{f:"Mate SC",v:["400"]},{f:"Maven Pro",v:["400","500","600","700","800","900"]},{f:"McLaren",v:["400"]},{f:"Meddon",v:["400"]},{f:"MedievalSharp",v:["400"]},{f:"Medula One",v:["400"]},{f:"Meera Inimai",v:["400"]},{f:"Megrim",v:["400"]},{f:"Meie Script",v:["400"]},{f:"Merienda",v:["400","700"]},{f:"Merienda One",v:["400"]},{f:"Merriweather",v:["300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"Merriweather Sans",v:["300","300italic","400","400italic","700","700italic","800","800italic"]},{f:"Metal",v:["400"]},{f:"Metal Mania",v:["400"]},{f:"Metamorphous",v:["400"]},{f:"Metrophobic",v:["400"]},{f:"Michroma",v:["400"]},{f:"Milonga",v:["400"]},{f:"Miltonian",v:["400"]},{f:"Miltonian Tattoo",v:["400"]},{f:"Mina",v:["400","700"]},{f:"Miniver",v:["400"]},{f:"Miriam Libre",v:["400","700"]},{f:"Mirza",v:["400","500","600","700"]},{f:"Miss Fajardose",v:["400"]},{f:"Mitr",v:["200","300","400","500","600","700"]},{f:"Modak",v:["400"]},{f:"Modern Antiqua",v:["400"]},{f:"Mogra",v:["400"]},{f:"Molengo",v:["400"]},{f:"Molle",v:["400italic"]},{f:"Monda",v:["400","700"]},{f:"Monofett",v:["400"]},{f:"Monoton",v:["400"]},{f:"Monsieur La Doulaise",v:["400"]},{f:"Montaga",v:["400"]},{f:"Montez",v:["400"]},{f:"Montserrat",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Montserrat Alternates",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Montserrat Subrayada",v:["400","700"]},{f:"Moul",v:["400"]},{f:"Moulpali",v:["400"]},{f:"Mountains of Christmas",v:["400","700"]},{f:"Mouse Memoirs",v:["400"]},{f:"Mr Bedfort",v:["400"]},{f:"Mr Dafoe",v:["400"]},{f:"Mr De Haviland",v:["400"]},{f:"Mrs Saint Delafield",v:["400"]},{f:"Mrs Sheppards",v:["400"]},{f:"Mukta",v:["200","300","400","500","600","700","800"]},{f:"Mukta Mahee",v:["200","300","400","500","600","700","800"]},{f:"Mukta Malar",v:["200","300","400","500","600","700","800"]},{f:"Mukta Vaani",v:["200","300","400","500","600","700","800"]},{f:"Mulish",v:["200","300","400","500","600","700","800","900","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"MuseoModerno",v:["100","200","300","400","500","600","700","800","900"]},{f:"Mystery Quest",v:["400"]},{f:"NTR",v:["400"]},{f:"Nanum Brush Script",v:["400"]},{f:"Nanum Gothic",v:["400","700","800"]},{f:"Nanum Gothic Coding",v:["400","700"]},{f:"Nanum Myeongjo",v:["400","700","800"]},{f:"Nanum Pen Script",v:["400"]},{f:"Neucha",v:["400"]},{f:"Neuton",v:["200","300","400","400italic","700","800"]},{f:"New Rocker",v:["400"]},{f:"News Cycle",v:["400","700"]},{f:"Niconne",v:["400"]},{f:"Niramit",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Nixie One",v:["400"]},{f:"Nobile",v:["400","400italic","500","500italic","700","700italic"]},{f:"Nokora",v:["400","700"]},{f:"Norican",v:["400"]},{f:"Nosifer",v:["400"]},{f:"Notable",v:["400"]},{f:"Nothing You Could Do",v:["400"]},{f:"Noticia Text",v:["400","400italic","700","700italic"]},{f:"Noto Sans",v:["400","400italic","700","700italic"]},{f:"Noto Sans HK",v:["100","300","400","500","700","900"]},{f:"Noto Sans JP",v:["100","300","400","500","700","900"]},{f:"Noto Sans KR",v:["100","300","400","500","700","900"]},{f:"Noto Sans SC",v:["100","300","400","500","700","900"]},{f:"Noto Sans TC",v:["100","300","400","500","700","900"]},{f:"Noto Serif",v:["400","400italic","700","700italic"]},{f:"Noto Serif JP",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif KR",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif SC",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif TC",v:["200","300","400","500","600","700","900"]},{f:"Nova Cut",v:["400"]},{f:"Nova Flat",v:["400"]},{f:"Nova Mono",v:["400"]},{f:"Nova Oval",v:["400"]},{f:"Nova Round",v:["400"]},{f:"Nova Script",v:["400"]},{f:"Nova Slim",v:["400"]},{f:"Nova Square",v:["400"]},{f:"Numans",v:["400"]},{f:"Nunito",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Nunito Sans",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Odibee Sans",v:["400"]},{f:"Odor Mean Chey",v:["400"]},{f:"Offside",v:["400"]},{f:"Old Standard TT",v:["400","400italic","700"]},{f:"Oldenburg",v:["400"]},{f:"Oleo Script",v:["400","700"]},{f:"Oleo Script Swash Caps",v:["400","700"]},{f:"Open Sans",v:["300","300italic","400","400italic","600","600italic","700","700italic","800","800italic"]},{f:"Open Sans Condensed",v:["300","300italic","700"]},{f:"Oranienbaum",v:["400"]},{f:"Orbitron",v:["400","500","600","700","800","900"]},{f:"Oregano",v:["400","400italic"]},{f:"Orienta",v:["400"]},{f:"Original Surfer",v:["400"]},{f:"Oswald",v:["200","300","400","500","600","700"]},{f:"Over the Rainbow",v:["400"]},{f:"Overlock",v:["400","400italic","700","700italic","900","900italic"]},{f:"Overlock SC",v:["400"]},{f:"Overpass",v:["100","100italic","200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Overpass Mono",v:["300","400","600","700"]},{f:"Ovo",v:["400"]},{f:"Oxanium",v:["200","300","400","500","600","700","800"]},{f:"Oxygen",v:["300","400","700"]},{f:"Oxygen Mono",v:["400"]},{f:"PT Mono",v:["400"]},{f:"PT Sans",v:["400","400italic","700","700italic"]},{f:"PT Sans Caption",v:["400","700"]},{f:"PT Sans Narrow",v:["400","700"]},{f:"PT Serif",v:["400","400italic","700","700italic"]},{f:"PT Serif Caption",v:["400","400italic"]},{f:"Pacifico",v:["400"]},{f:"Padauk",v:["400","700"]},{f:"Palanquin",v:["100","200","300","400","500","600","700"]},{f:"Palanquin Dark",v:["400","500","600","700"]},{f:"Pangolin",v:["400"]},{f:"Paprika",v:["400"]},{f:"Parisienne",v:["400"]},{f:"Passero One",v:["400"]},{f:"Passion One",v:["400","700","900"]},{f:"Pathway Gothic One",v:["400"]},{f:"Patrick Hand",v:["400"]},{f:"Patrick Hand SC",v:["400"]},{f:"Pattaya",v:["400"]},{f:"Patua One",v:["400"]},{f:"Pavanam",v:["400"]},{f:"Paytone One",v:["400"]},{f:"Peddana",v:["400"]},{f:"Peralta",v:["400"]},{f:"Permanent Marker",v:["400"]},{f:"Petit Formal Script",v:["400"]},{f:"Petrona",v:["400"]},{f:"Philosopher",v:["400","400italic","700","700italic"]},{f:"Piedra",v:["400"]},{f:"Pinyon Script",v:["400"]},{f:"Pirata One",v:["400"]},{f:"Plaster",v:["400"]},{f:"Play",v:["400","700"]},{f:"Playball",v:["400"]},{f:"Playfair Display",v:["400","500","600","700","800","900","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Playfair Display SC",v:["400","400italic","700","700italic","900","900italic"]},{f:"Podkova",v:["400","500","600","700","800"]},{f:"Poiret One",v:["400"]},{f:"Poller One",v:["400"]},{f:"Poly",v:["400","400italic"]},{f:"Pompiere",v:["400"]},{f:"Pontano Sans",v:["400"]},{f:"Poor Story",v:["400"]},{f:"Poppins",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Port Lligat Sans",v:["400"]},{f:"Port Lligat Slab",v:["400"]},{f:"Pragati Narrow",v:["400","700"]},{f:"Prata",v:["400"]},{f:"Preahvihear",v:["400"]},{f:"Press Start 2P",v:["400"]},{f:"Pridi",v:["200","300","400","500","600","700"]},{f:"Princess Sofia",v:["400"]},{f:"Prociono",v:["400"]},{f:"Prompt",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Prosto One",v:["400"]},{f:"Proza Libre",v:["400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Public Sans",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Puritan",v:["400","400italic","700","700italic"]},{f:"Purple Purse",v:["400"]},{f:"Quando",v:["400"]},{f:"Quantico",v:["400","400italic","700","700italic"]},{f:"Quattrocento",v:["400","700"]},{f:"Quattrocento Sans",v:["400","400italic","700","700italic"]},{f:"Questrial",v:["400"]},{f:"Quicksand",v:["300","400","500","600","700"]},{f:"Quintessential",v:["400"]},{f:"Qwigley",v:["400"]},{f:"Racing Sans One",v:["400"]},{f:"Radley",v:["400","400italic"]},{f:"Rajdhani",v:["300","400","500","600","700"]},{f:"Rakkas",v:["400"]},{f:"Raleway",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Raleway Dots",v:["400"]},{f:"Ramabhadra",v:["400"]},{f:"Ramaraja",v:["400"]},{f:"Rambla",v:["400","400italic","700","700italic"]},{f:"Rammetto One",v:["400"]},{f:"Ranchers",v:["400"]},{f:"Rancho",v:["400"]},{f:"Ranga",v:["400","700"]},{f:"Rasa",v:["300","400","500","600","700"]},{f:"Rationale",v:["400"]},{f:"Ravi Prakash",v:["400"]},{f:"Recursive",v:["300","400","500","600","700","800","900"]},{f:"Red Hat Display",v:["400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Red Hat Text",v:["400","400italic","500","500italic","700","700italic"]},{f:"Red Rose",v:["300","400","700"]},{f:"Redressed",v:["400"]},{f:"Reem Kufi",v:["400"]},{f:"Reenie Beanie",v:["400"]},{f:"Revalia",v:["400"]},{f:"Rhodium Libre",v:["400"]},{f:"Ribeye",v:["400"]},{f:"Ribeye Marrow",v:["400"]},{f:"Righteous",v:["400"]},{f:"Risque",v:["400"]},{f:"Roboto",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Roboto Condensed",v:["300","300italic","400","400italic","700","700italic"]},{f:"Roboto Mono",v:["100","200","300","400","500","600","700","100italic","200italic","300italic","400italic","500italic","600italic","700italic"]},{f:"Roboto Slab",v:["100","200","300","400","500","600","700","800","900"]},{f:"Rochester",v:["400"]},{f:"Rock Salt",v:["400"]},{f:"Rokkitt",v:["100","200","300","400","500","600","700","800","900"]},{f:"Romanesco",v:["400"]},{f:"Ropa Sans",v:["400","400italic"]},{f:"Rosario",v:["300","400","500","600","700","300italic","400italic","500italic","600italic","700italic"]},{f:"Rosarivo",v:["400","400italic"]},{f:"Rouge Script",v:["400"]},{f:"Rowdies",v:["300","400","700"]},{f:"Rozha One",v:["400"]},{f:"Rubik",v:["300","300italic","400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Rubik Mono One",v:["400"]},{f:"Ruda",v:["400","500","600","700","800","900"]},{f:"Rufina",v:["400","700"]},{f:"Ruge Boogie",v:["400"]},{f:"Ruluko",v:["400"]},{f:"Rum Raisin",v:["400"]},{f:"Ruslan Display",v:["400"]},{f:"Russo One",v:["400"]},{f:"Ruthie",v:["400"]},{f:"Rye",v:["400"]},{f:"Sacramento",v:["400"]},{f:"Sahitya",v:["400","700"]},{f:"Sail",v:["400"]},{f:"Saira",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Extra Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Semi Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Stencil One",v:["400"]},{f:"Salsa",v:["400"]},{f:"Sanchez",v:["400","400italic"]},{f:"Sancreek",v:["400"]},{f:"Sansita",v:["400","400italic","700","700italic","800","800italic","900","900italic"]},{f:"Sarabun",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Sarala",v:["400","700"]},{f:"Sarina",v:["400"]},{f:"Sarpanch",v:["400","500","600","700","800","900"]},{f:"Satisfy",v:["400"]},{f:"Sawarabi Gothic",v:["400"]},{f:"Sawarabi Mincho",v:["400"]},{f:"Scada",v:["400","400italic","700","700italic"]},{f:"Scheherazade",v:["400","700"]},{f:"Schoolbell",v:["400"]},{f:"Scope One",v:["400"]},{f:"Seaweed Script",v:["400"]},{f:"Secular One",v:["400"]},{f:"Sedgwick Ave",v:["400"]},{f:"Sedgwick Ave Display",v:["400"]},{f:"Sen",v:["400","700","800"]},{f:"Sevillana",v:["400"]},{f:"Seymour One",v:["400"]},{f:"Shadows Into Light",v:["400"]},{f:"Shadows Into Light Two",v:["400"]},{f:"Shanti",v:["400"]},{f:"Share",v:["400","400italic","700","700italic"]},{f:"Share Tech",v:["400"]},{f:"Share Tech Mono",v:["400"]},{f:"Shojumaru",v:["400"]},{f:"Short Stack",v:["400"]},{f:"Shrikhand",v:["400"]},{f:"Siemreap",v:["400"]},{f:"Sigmar One",v:["400"]},{f:"Signika",v:["300","400","500","600","700"]},{f:"Signika Negative",v:["300","400","600","700"]},{f:"Simonetta",v:["400","400italic","900","900italic"]},{f:"Single Day",v:["400"]},{f:"Sintony",v:["400","700"]},{f:"Sirin Stencil",v:["400"]},{f:"Six Caps",v:["400"]},{f:"Skranji",v:["400","700"]},{f:"Slabo 13px",v:["400"]},{f:"Slabo 27px",v:["400"]},{f:"Slackey",v:["400"]},{f:"Smokum",v:["400"]},{f:"Smythe",v:["400"]},{f:"Sniglet",v:["400","800"]},{f:"Snippet",v:["400"]},{f:"Snowburst One",v:["400"]},{f:"Sofadi One",v:["400"]},{f:"Sofia",v:["400"]},{f:"Solway",v:["300","400","500","700","800"]},{f:"Song Myung",v:["400"]},{f:"Sonsie One",v:["400"]},{f:"Sora",v:["100","200","300","400","500","600","700","800"]},{f:"Sorts Mill Goudy",v:["400","400italic"]},{f:"Source Code Pro",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","900","900italic"]},{f:"Source Sans Pro",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900","900italic"]},{f:"Source Serif Pro",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900","900italic"]},{f:"Space Mono",v:["400","400italic","700","700italic"]},{f:"Spartan",v:["100","200","300","400","500","600","700","800","900"]},{f:"Special Elite",v:["400"]},{f:"Spectral",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Spectral SC",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Spicy Rice",v:["400"]},{f:"Spinnaker",v:["400"]},{f:"Spirax",v:["400"]},{f:"Squada One",v:["400"]},{f:"Sree Krushnadevaraya",v:["400"]},{f:"Sriracha",v:["400"]},{f:"Srisakdi",v:["400","700"]},{f:"Staatliches",v:["400"]},{f:"Stalemate",v:["400"]},{f:"Stalinist One",v:["400"]},{f:"Stardos Stencil",v:["400","700"]},{f:"Stint Ultra Condensed",v:["400"]},{f:"Stint Ultra Expanded",v:["400"]},{f:"Stoke",v:["300","400"]},{f:"Strait",v:["400"]},{f:"Stylish",v:["400"]},{f:"Sue Ellen Francisco",v:["400"]},{f:"Suez One",v:["400"]},{f:"Sulphur Point",v:["300","400","700"]},{f:"Sumana",v:["400","700"]},{f:"Sunflower",v:["300","500","700"]},{f:"Sunshiney",v:["400"]},{f:"Supermercado One",v:["400"]},{f:"Sura",v:["400","700"]},{f:"Suranna",v:["400"]},{f:"Suravaram",v:["400"]},{f:"Suwannaphum",v:["400"]},{f:"Swanky and Moo Moo",v:["400"]},{f:"Syncopate",v:["400","700"]},{f:"Tajawal",v:["200","300","400","500","700","800","900"]},{f:"Tangerine",v:["400","700"]},{f:"Taprom",v:["400"]},{f:"Tauri",v:["400"]},{f:"Taviraj",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Teko",v:["300","400","500","600","700"]},{f:"Telex",v:["400"]},{f:"Tenali Ramakrishna",v:["400"]},{f:"Tenor Sans",v:["400"]},{f:"Text Me One",v:["400"]},{f:"Thasadith",v:["400","400italic","700","700italic"]},{f:"The Girl Next Door",v:["400"]},{f:"Tienne",v:["400","700","900"]},{f:"Tillana",v:["400","500","600","700","800"]},{f:"Timmana",v:["400"]},{f:"Tinos",v:["400","400italic","700","700italic"]},{f:"Titan One",v:["400"]},{f:"Titillium Web",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900"]},{f:"Tomorrow",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Trade Winds",v:["400"]},{f:"Trirong",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Trocchi",v:["400"]},{f:"Trochut",v:["400","400italic","700"]},{f:"Trykker",v:["400"]},{f:"Tulpen One",v:["400"]},{f:"Turret Road",v:["200","300","400","500","700","800"]},{f:"Ubuntu",v:["300","300italic","400","400italic","500","500italic","700","700italic"]},{f:"Ubuntu Condensed",v:["400"]},{f:"Ubuntu Mono",v:["400","400italic","700","700italic"]},{f:"Ultra",v:["400"]},{f:"Uncial Antiqua",v:["400"]},{f:"Underdog",v:["400"]},{f:"Unica One",v:["400"]},{f:"UnifrakturCook",v:["700"]},{f:"UnifrakturMaguntia",v:["400"]},{f:"Unkempt",v:["400","700"]},{f:"Unlock",v:["400"]},{f:"Unna",v:["400","400italic","700","700italic"]},{f:"VT323",v:["400"]},{f:"Vampiro One",v:["400"]},{f:"Varela",v:["400"]},{f:"Varela Round",v:["400"]},{f:"Varta",v:["300","400","500","600","700"]},{f:"Vast Shadow",v:["400"]},{f:"Vesper Libre",v:["400","500","700","900"]},{f:"Viaoda Libre",v:["400"]},{f:"Vibes",v:["400"]},{f:"Vibur",v:["400"]},{f:"Vidaloka",v:["400"]},{f:"Viga",v:["400"]},{f:"Voces",v:["400"]},{f:"Volkhov",v:["400","400italic","700","700italic"]},{f:"Vollkorn",v:["400","500","600","700","800","900","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Vollkorn SC",v:["400","600","700","900"]},{f:"Voltaire",v:["400"]},{f:"Waiting for the Sunrise",v:["400"]},{f:"Wallpoet",v:["400"]},{f:"Walter Turncoat",v:["400"]},{f:"Warnes",v:["400"]},{f:"Wellfleet",v:["400"]},{f:"Wendy One",v:["400"]},{f:"Wire One",v:["400"]},{f:"Work Sans",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Yanone Kaffeesatz",v:["200","300","400","500","600","700"]},{f:"Yantramanav",v:["100","300","400","500","700","900"]},{f:"Yatra One",v:["400"]},{f:"Yellowtail",v:["400"]},{f:"Yeon Sung",v:["400"]},{f:"Yeseva One",v:["400"]},{f:"Yesteryear",v:["400"]},{f:"Yrsa",v:["300","400","500","600","700"]},{f:"ZCOOL KuaiLe",v:["400"]},{f:"ZCOOL QingKe HuangYou",v:["400"]},{f:"ZCOOL XiaoWei",v:["400"]},{f:"Zeyada",v:["400"]},{f:"Zhi Mang Xing",v:["400"]},{f:"Zilla Slab",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Zilla Slab Highlight",v:["400","700"]}]}},function(i,a){i.exports={kind:"webfonts#webfontList",items:[{id:"arial",label:"Arial",stack:"Arial, Helvetica Neue, Helvetica, sans-serif"},{id:"calibri",label:"Calibri",stack:"Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;"},{id:"consolas",label:"Consolas",stack:"Consolas, monaco, monospace"},{id:"courier-new",label:"Courier New",stack:"Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace"},{id:"helvetica",label:"Helvetica Neue",stack:"Helvetica Neue, Helvetica, Arial, sans-serif"},{id:"georgia",label:"Georgia",stack:"Georgia, Times, Times New Roman, serif"},{id:"futura",label:"Futura",stack:"Futura, Trebuchet MS, Arial, sans-serif"},{id:"lucida-grande",label:"Lucida Grande",stack:"Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif"},{id:"tahoma",label:"Tahoma",stack:"Tahoma, Verdana, Segoe, sans-serif"},{id:"times-new-roman",label:"Times New Roman",stack:"TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif"},{id:"trebuchet",label:"Trebuchet MS",stack:"Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif"},{id:"palatino",label:"Palatino",stack:"Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif"},{id:"verdana",label:"Verdana",stack:"Verdana, Geneva, sans-serif;"}]}},function(i,a,t){"use strict";var l=wp.blocks.createBlock,e={from:[{type:"block",blocks:["core/paragraph"],transform:function(i){var a=i.content;return l("olympus-google-fonts/google-fonts",{content:a})}},{type:"block",blocks:["core/heading"],transform:function(i){var a=i.content,t=i.level;return l("olympus-google-fonts/google-fonts",{content:a,blockType:"h"+t})}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(i){var a=i.content;return l("core/paragraph",{content:a})}}]};a.a=e}]);
1
+ !function(i){function a(e){if(t[e])return t[e].exports;var l=t[e]={i:e,l:!1,exports:{}};return i[e].call(l.exports,l,l.exports,a),l.l=!0,l.exports}var t={};a.m=i,a.c=t,a.d=function(i,t,e){a.o(i,t)||Object.defineProperty(i,t,{configurable:!1,enumerable:!0,get:e})},a.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return a.d(t,"a",t),t},a.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},a.p="",a(a.s=0)}([function(i,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});t(1)},function(i,a,t){"use strict";var e=t(2),l=t(5),__=wp.i18n.__;(0,wp.blocks.registerBlockType)("olympus-google-fonts/google-fonts",{title:__("Google Fonts","olympus-google-fonts"),category:"common",icon:wp.element.createElement("svg",{baseProfile:"tiny",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),wp.element.createElement("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"})),keywords:[__("Fonts","olympus-google-fonts"),__("Heading","olympus-google-fonts")],transforms:l.a,edit:e.a,save:function(){return null}})},function(i,a,t){"use strict";function e(i,a){if(!(i instanceof a))throw new TypeError("Cannot call a class as a function")}function l(i,a){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?i:a}function f(i,a){if("function"!==typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function, not "+typeof a);i.prototype=Object.create(a&&a.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(i,a):i.__proto__=a)}var c=t(3),v=t.n(c),n=t(4),o=t.n(n),r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&"function"===typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},s=function(){function i(i,a){for(var t=0;t<a.length;t++){var e=a[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(a,t,e){return t&&i(a.prototype,t),e&&i(a,e),a}}(),__=wp.i18n.__,u=wp.element,d=u.Component,m=u.Fragment,S=wp.components,h=S.SelectControl,p=S.RangeControl,g=S.PanelBody,b=wp.editor,y=b.RichText,C=b.InspectorControls,k=b.BlockControls,M=b.AlignmentToolbar,O=b.PanelColorSettings,w=function(i){function a(){return e(this,a),l(this,(a.__proto__||Object.getPrototypeOf(a)).apply(this,arguments))}return f(a,i),s(a,[{key:"componentDidUpdate",value:function(i){this.props.attributes.fontID!==i.attributes.fontID&&(this.props.attributes.v="0")}},{key:"getFontsForSelect",value:function(){var i=o.a.items.map(function(i){var a=i.label;return{value:i.id,label:a}}),a=v.a.items.map(function(i){var a=i.f;return{value:a.replace(/\s+/g,"+"),label:a}}),t=i.concat(a),e=Object.values(ogf_custom_fonts).map(function(i){return{value:i.id,label:i.label}});return t.concat(e)}},{key:"searchFonts",value:function(i,a){for(var t=0;t<a.length;t++)if(a[t].id===i)return a[t]}},{key:"isCustomFont",value:function(i){var a=this.searchFonts(i,Object.values(ogf_custom_fonts));return"object"===("undefined"===typeof a?"undefined":r(a))}},{key:"isSystemFont",value:function(i){var a=this.searchFonts(i,o.a.items);return"object"===("undefined"===typeof a?"undefined":r(a))}},{key:"isItalic",value:function(i){return!i.includes("0i")}},{key:"getVariantsForSelect",value:function(i){if(i){var a={0:__("- Default -","olympus-google-fonts"),100:__("Thin","olympus-google-fonts"),200:__("Extra Light","olympus-google-fonts"),300:__("Light","olympus-google-fonts"),400:__("Normal","olympus-google-fonts"),500:__("Medium","olympus-google-fonts"),600:__("Semi Bold","olympus-google-fonts"),700:__("Bold","olympus-google-fonts"),800:__("Extra Bold","olympus-google-fonts"),900:__("Ultra Bold","olympus-google-fonts")};return-1===i.v.indexOf("0")?i.v.unshift("0"):console.log("This item already exists"),i.v.filter(this.isItalic).map(function(i){return{value:i,label:a[i]}})}}},{key:"getFontObject",value:function(i){if(i)for(var a=0;a<v.a.items.length;a++)if(v.a.items[a].f===i)return v.a.items[a]}},{key:"addGoogleFontToHead",value:function(i,a){if(i&&a){var t=document.head,e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href="https://fonts.googleapis.com/css?family="+i.replace(/\s+/g,"+")+":"+a.v.join(","),t.appendChild(e)}}},{key:"render",value:function(){var i=this.props,a=i.attributes,t=i.setAttributes,e=a.fontID,l=a.content,f=a.align,c=a.variant,v=a.fontSize,n=a.lineHeight,o=a.color,r=a.blockType,s=this.getFontsForSelect();s.unshift({label:"- Default -",value:"0"});var u=[{value:"0",label:"- Default -"},{value:"400",label:"Regular"},{value:"700",label:"Bold"}];if(!this.isSystemFont(e)&&!this.isCustomFont(e)){var d=this.getFontObject(e.replace(/\+/g," "));u=this.getVariantsForSelect(d),this.addGoogleFontToHead(e,d)}var S=wp.element.createElement(C,null,wp.element.createElement(g,{title:__("Font Settings","olympus-google-fonts")},wp.element.createElement(h,{label:__("Block Type","olympus-google-fonts"),type:"string",value:r,options:[{label:"Paragraph",value:"p"},{label:"H1",value:"h1"},{label:"H2",value:"h2"},{label:"H3",value:"h3"},{label:"H4",value:"h4"},{label:"H5",value:"h5"},{label:"H6",value:"h6"},{label:"Span",value:"span"}],onChange:function(i){return t({blockType:i})}}),wp.element.createElement(h,{label:__("Font","olympus-google-fonts"),type:"string",value:e,options:s,onChange:function(i){return t({fontID:i})}}),wp.element.createElement(h,{label:__("Font Variant","olympus-google-fonts"),type:"string",value:c,options:u,onChange:function(i){return t({variant:i})}}),wp.element.createElement(p,{label:__("Font Size","olympus-google-fonts"),value:v,onChange:function(i){return t({fontSize:i})},allowReset:!0,min:"10",max:"50"}),wp.element.createElement(p,{label:__("Line Height","olympus-google-fonts"),value:n,onChange:function(i){return t({lineHeight:i})},allowReset:!0,min:"1",max:"3",step:"0.1"}),wp.element.createElement(O,{title:__("Color Settings","olympus-google-fonts"),colorSettings:[{value:a.color,onChange:function(i){return t({color:i})},label:__("Text Color","olympus-google-fonts")}]})));return wp.element.createElement(m,null,S,wp.element.createElement(k,null,wp.element.createElement(M,{value:f,onChange:function(i){return t({align:i})}})),wp.element.createElement(y,{tagName:r||"p",value:l,onChange:function(i){return t({content:i})},style:{fontSize:v?v+"px":void 0,textAlign:f,fontFamily:e.replace(/\+/g," "),fontWeight:c,lineHeight:n,color:o},placeholder:__("Add some content...","olympus-google-fonts"),formattingControls:["italic","link"]}))}}]),a}(d);a.a=w},function(i,a){i.exports={kind:"webfonts#webfontList",items:[{f:"ABeeZee",v:["400","400italic"]},{f:"Abel",v:["400"]},{f:"Abhaya Libre",v:["400","500","600","700","800"]},{f:"Abril Fatface",v:["400"]},{f:"Aclonica",v:["400"]},{f:"Acme",v:["400"]},{f:"Actor",v:["400"]},{f:"Adamina",v:["400"]},{f:"Advent Pro",v:["100","200","300","400","500","600","700"]},{f:"Aguafina Script",v:["400"]},{f:"Akronim",v:["400"]},{f:"Aladin",v:["400"]},{f:"Alata",v:["400"]},{f:"Alatsi",v:["400"]},{f:"Aldrich",v:["400"]},{f:"Alef",v:["400","700"]},{f:"Alegreya",v:["400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya SC",v:["400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya Sans",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Alegreya Sans SC",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{f:"Aleo",v:["300","300italic","400","400italic","700","700italic"]},{f:"Alex Brush",v:["400"]},{f:"Alfa Slab One",v:["400"]},{f:"Alice",v:["400"]},{f:"Alike",v:["400"]},{f:"Alike Angular",v:["400"]},{f:"Allan",v:["400","700"]},{f:"Allerta",v:["400"]},{f:"Allerta Stencil",v:["400"]},{f:"Allura",v:["400"]},{f:"Almarai",v:["300","400","700","800"]},{f:"Almendra",v:["400","400italic","700","700italic"]},{f:"Almendra Display",v:["400"]},{f:"Almendra SC",v:["400"]},{f:"Amarante",v:["400"]},{f:"Amaranth",v:["400","400italic","700","700italic"]},{f:"Amatic SC",v:["400","700"]},{f:"Amethysta",v:["400"]},{f:"Amiko",v:["400","600","700"]},{f:"Amiri",v:["400","400italic","700","700italic"]},{f:"Amita",v:["400","700"]},{f:"Anaheim",v:["400"]},{f:"Andada",v:["400"]},{f:"Andika",v:["400"]},{f:"Angkor",v:["400"]},{f:"Annie Use Your Telescope",v:["400"]},{f:"Anonymous Pro",v:["400","400italic","700","700italic"]},{f:"Antic",v:["400"]},{f:"Antic Didone",v:["400"]},{f:"Antic Slab",v:["400"]},{f:"Anton",v:["400"]},{f:"Arapey",v:["400","400italic"]},{f:"Arbutus",v:["400"]},{f:"Arbutus Slab",v:["400"]},{f:"Architects Daughter",v:["400"]},{f:"Archivo",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Archivo Black",v:["400"]},{f:"Archivo Narrow",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Aref Ruqaa",v:["400","700"]},{f:"Arima Madurai",v:["100","200","300","400","500","700","800","900"]},{f:"Arimo",v:["400","400italic","700","700italic"]},{f:"Arizonia",v:["400"]},{f:"Armata",v:["400"]},{f:"Arsenal",v:["400","400italic","700","700italic"]},{f:"Artifika",v:["400"]},{f:"Arvo",v:["400","400italic","700","700italic"]},{f:"Arya",v:["400","700"]},{f:"Asap",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Asap Condensed",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Asar",v:["400"]},{f:"Asset",v:["400"]},{f:"Assistant",v:["200","300","400","600","700","800"]},{f:"Astloch",v:["400","700"]},{f:"Asul",v:["400","700"]},{f:"Athiti",v:["200","300","400","500","600","700"]},{f:"Atma",v:["300","400","500","600","700"]},{f:"Atomic Age",v:["400"]},{f:"Aubrey",v:["400"]},{f:"Audiowide",v:["400"]},{f:"Autour One",v:["400"]},{f:"Average",v:["400"]},{f:"Average Sans",v:["400"]},{f:"Averia Gruesa Libre",v:["400"]},{f:"Averia Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"Averia Sans Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"Averia Serif Libre",v:["300","300italic","400","400italic","700","700italic"]},{f:"B612",v:["400","400italic","700","700italic"]},{f:"B612 Mono",v:["400","400italic","700","700italic"]},{f:"Bad Script",v:["400"]},{f:"Bahiana",v:["400"]},{f:"Bahianita",v:["400"]},{f:"Bai Jamjuree",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Baloo 2",v:["400","500","600","700","800"]},{f:"Baloo Bhai 2",v:["400","500","600","700","800"]},{f:"Baloo Bhaina 2",v:["400","500","600","700","800"]},{f:"Baloo Chettan 2",v:["400","500","600","700","800"]},{f:"Baloo Da 2",v:["400","500","600","700","800"]},{f:"Baloo Paaji 2",v:["400","500","600","700","800"]},{f:"Baloo Tamma 2",v:["400","500","600","700","800"]},{f:"Baloo Tammudu 2",v:["400","500","600","700","800"]},{f:"Baloo Thambi 2",v:["400","500","600","700","800"]},{f:"Balsamiq Sans",v:["400","400italic","700","700italic"]},{f:"Balthazar",v:["400"]},{f:"Bangers",v:["400"]},{f:"Barlow",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barlow Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barlow Semi Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Barriecito",v:["400"]},{f:"Barrio",v:["400"]},{f:"Basic",v:["400"]},{f:"Baskervville",v:["400","400italic"]},{f:"Battambang",v:["400","700"]},{f:"Baumans",v:["400"]},{f:"Bayon",v:["400"]},{f:"Be Vietnam",v:["100","100italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Bebas Neue",v:["400"]},{f:"Belgrano",v:["400"]},{f:"Bellefair",v:["400"]},{f:"Belleza",v:["400"]},{f:"Bellota",v:["300","300italic","400","400italic","700","700italic"]},{f:"Bellota Text",v:["300","300italic","400","400italic","700","700italic"]},{f:"BenchNine",v:["300","400","700"]},{f:"Bentham",v:["400"]},{f:"Berkshire Swash",v:["400"]},{f:"Beth Ellen",v:["400"]},{f:"Bevan",v:["400"]},{f:"Big Shoulders Display",v:["100","300","400","500","600","700","800","900"]},{f:"Big Shoulders Text",v:["100","300","400","500","600","700","800","900"]},{f:"Bigelow Rules",v:["400"]},{f:"Bigshot One",v:["400"]},{f:"Bilbo",v:["400"]},{f:"Bilbo Swash Caps",v:["400"]},{f:"BioRhyme",v:["200","300","400","700","800"]},{f:"BioRhyme Expanded",v:["200","300","400","700","800"]},{f:"Biryani",v:["200","300","400","600","700","800","900"]},{f:"Bitter",v:["400","400italic","700"]},{f:"Black And White Picture",v:["400"]},{f:"Black Han Sans",v:["400"]},{f:"Black Ops One",v:["400"]},{f:"Blinker",v:["100","200","300","400","600","700","800","900"]},{f:"Bokor",v:["400"]},{f:"Bonbon",v:["400"]},{f:"Boogaloo",v:["400"]},{f:"Bowlby One",v:["400"]},{f:"Bowlby One SC",v:["400"]},{f:"Brawler",v:["400"]},{f:"Bree Serif",v:["400"]},{f:"Bubblegum Sans",v:["400"]},{f:"Bubbler One",v:["400"]},{f:"Buda",v:["300"]},{f:"Buenard",v:["400","700"]},{f:"Bungee",v:["400"]},{f:"Bungee Hairline",v:["400"]},{f:"Bungee Inline",v:["400"]},{f:"Bungee Outline",v:["400"]},{f:"Bungee Shade",v:["400"]},{f:"Butcherman",v:["400"]},{f:"Butterfly Kids",v:["400"]},{f:"Cabin",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cabin Condensed",v:["400","500","600","700"]},{f:"Cabin Sketch",v:["400","700"]},{f:"Caesar Dressing",v:["400"]},{f:"Cagliostro",v:["400"]},{f:"Cairo",v:["200","300","400","600","700","900"]},{f:"Caladea",v:["400","400italic","700","700italic"]},{f:"Calistoga",v:["400"]},{f:"Calligraffitti",v:["400"]},{f:"Cambay",v:["400","400italic","700","700italic"]},{f:"Cambo",v:["400"]},{f:"Candal",v:["400"]},{f:"Cantarell",v:["400","400italic","700","700italic"]},{f:"Cantata One",v:["400"]},{f:"Cantora One",v:["400"]},{f:"Capriola",v:["400"]},{f:"Cardo",v:["400","400italic","700"]},{f:"Carme",v:["400"]},{f:"Carrois Gothic",v:["400"]},{f:"Carrois Gothic SC",v:["400"]},{f:"Carter One",v:["400"]},{f:"Catamaran",v:["100","200","300","400","500","600","700","800","900"]},{f:"Caudex",v:["400","400italic","700","700italic"]},{f:"Caveat",v:["400","700"]},{f:"Caveat Brush",v:["400"]},{f:"Cedarville Cursive",v:["400"]},{f:"Ceviche One",v:["400"]},{f:"Chakra Petch",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Changa",v:["200","300","400","500","600","700","800"]},{f:"Changa One",v:["400","400italic"]},{f:"Chango",v:["400"]},{f:"Charm",v:["400","700"]},{f:"Charmonman",v:["400","700"]},{f:"Chathura",v:["100","300","400","700","800"]},{f:"Chau Philomene One",v:["400","400italic"]},{f:"Chela One",v:["400"]},{f:"Chelsea Market",v:["400"]},{f:"Chenla",v:["400"]},{f:"Cherry Cream Soda",v:["400"]},{f:"Cherry Swash",v:["400","700"]},{f:"Chewy",v:["400"]},{f:"Chicle",v:["400"]},{f:"Chilanka",v:["400"]},{f:"Chivo",v:["300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"Chonburi",v:["400"]},{f:"Cinzel",v:["400","700","900"]},{f:"Cinzel Decorative",v:["400","700","900"]},{f:"Clicker Script",v:["400"]},{f:"Coda",v:["400","800"]},{f:"Coda Caption",v:["800"]},{f:"Codystar",v:["300","400"]},{f:"Coiny",v:["400"]},{f:"Combo",v:["400"]},{f:"Comfortaa",v:["300","400","500","600","700"]},{f:"Comic Neue",v:["300","300italic","400","400italic","700","700italic"]},{f:"Coming Soon",v:["400"]},{f:"Concert One",v:["400"]},{f:"Condiment",v:["400"]},{f:"Content",v:["400","700"]},{f:"Contrail One",v:["400"]},{f:"Convergence",v:["400"]},{f:"Cookie",v:["400"]},{f:"Copse",v:["400"]},{f:"Corben",v:["400","700"]},{f:"Cormorant",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant Garamond",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant Infant",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Cormorant SC",v:["300","400","500","600","700"]},{f:"Cormorant Unicase",v:["300","400","500","600","700"]},{f:"Cormorant Upright",v:["300","400","500","600","700"]},{f:"Courgette",v:["400"]},{f:"Courier Prime",v:["400","400italic","700","700italic"]},{f:"Cousine",v:["400","400italic","700","700italic"]},{f:"Coustard",v:["400","900"]},{f:"Covered By Your Grace",v:["400"]},{f:"Crafty Girls",v:["400"]},{f:"Creepster",v:["400"]},{f:"Crete Round",v:["400","400italic"]},{f:"Crimson Pro",v:["200","300","400","500","600","700","800","900","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Crimson Text",v:["400","400italic","600","600italic","700","700italic"]},{f:"Croissant One",v:["400"]},{f:"Crushed",v:["400"]},{f:"Cuprum",v:["400","400italic","700","700italic"]},{f:"Cute Font",v:["400"]},{f:"Cutive",v:["400"]},{f:"Cutive Mono",v:["400"]},{f:"DM Mono",v:["300","300italic","400","400italic","500","500italic"]},{f:"DM Sans",v:["400","400italic","500","500italic","700","700italic"]},{f:"DM Serif Display",v:["400","400italic"]},{f:"DM Serif Text",v:["400","400italic"]},{f:"Damion",v:["400"]},{f:"Dancing Script",v:["400","500","600","700"]},{f:"Dangrek",v:["400"]},{f:"Darker Grotesque",v:["300","400","500","600","700","800","900"]},{f:"David Libre",v:["400","500","700"]},{f:"Dawning of a New Day",v:["400"]},{f:"Days One",v:["400"]},{f:"Dekko",v:["400"]},{f:"Delius",v:["400"]},{f:"Delius Swash Caps",v:["400"]},{f:"Delius Unicase",v:["400","700"]},{f:"Della Respira",v:["400"]},{f:"Denk One",v:["400"]},{f:"Devonshire",v:["400"]},{f:"Dhurjati",v:["400"]},{f:"Didact Gothic",v:["400"]},{f:"Diplomata",v:["400"]},{f:"Diplomata SC",v:["400"]},{f:"Do Hyeon",v:["400"]},{f:"Dokdo",v:["400"]},{f:"Domine",v:["400","700"]},{f:"Donegal One",v:["400"]},{f:"Doppio One",v:["400"]},{f:"Dorsa",v:["400"]},{f:"Dosis",v:["200","300","400","500","600","700","800"]},{f:"Dr Sugiyama",v:["400"]},{f:"Duru Sans",v:["400"]},{f:"Dynalight",v:["400"]},{f:"EB Garamond",v:["400","500","600","700","800","400italic","500italic","600italic","700italic","800italic"]},{f:"Eagle Lake",v:["400"]},{f:"East Sea Dokdo",v:["400"]},{f:"Eater",v:["400"]},{f:"Economica",v:["400","400italic","700","700italic"]},{f:"Eczar",v:["400","500","600","700","800"]},{f:"El Messiri",v:["400","500","600","700"]},{f:"Electrolize",v:["400"]},{f:"Elsie",v:["400","900"]},{f:"Elsie Swash Caps",v:["400","900"]},{f:"Emblema One",v:["400"]},{f:"Emilys Candy",v:["400"]},{f:"Encode Sans",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Expanded",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Semi Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Encode Sans Semi Expanded",v:["100","200","300","400","500","600","700","800","900"]},{f:"Engagement",v:["400"]},{f:"Englebert",v:["400"]},{f:"Enriqueta",v:["400","500","600","700"]},{f:"Epilogue",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Erica One",v:["400"]},{f:"Esteban",v:["400"]},{f:"Euphoria Script",v:["400"]},{f:"Ewert",v:["400"]},{f:"Exo",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Exo 2",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Expletus Sans",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Fahkwang",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Fanwood Text",v:["400","400italic"]},{f:"Farro",v:["300","400","500","700"]},{f:"Farsan",v:["400"]},{f:"Fascinate",v:["400"]},{f:"Fascinate Inline",v:["400"]},{f:"Faster One",v:["400"]},{f:"Fasthand",v:["400"]},{f:"Fauna One",v:["400"]},{f:"Faustina",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Federant",v:["400"]},{f:"Federo",v:["400"]},{f:"Felipa",v:["400"]},{f:"Fenix",v:["400"]},{f:"Finger Paint",v:["400"]},{f:"Fira Code",v:["300","400","500","600","700"]},{f:"Fira Mono",v:["400","500","700"]},{f:"Fira Sans",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fira Sans Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fira Sans Extra Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Fjalla One",v:["400"]},{f:"Fjord One",v:["400"]},{f:"Flamenco",v:["300","400"]},{f:"Flavors",v:["400"]},{f:"Fondamento",v:["400","400italic"]},{f:"Fontdiner Swanky",v:["400"]},{f:"Forum",v:["400"]},{f:"Francois One",v:["400"]},{f:"Frank Ruhl Libre",v:["300","400","500","700","900"]},{f:"Freckle Face",v:["400"]},{f:"Fredericka the Great",v:["400"]},{f:"Fredoka One",v:["400"]},{f:"Freehand",v:["400"]},{f:"Fresca",v:["400"]},{f:"Frijole",v:["400"]},{f:"Fruktur",v:["400"]},{f:"Fugaz One",v:["400"]},{f:"GFS Didot",v:["400"]},{f:"GFS Neohellenic",v:["400","400italic","700","700italic"]},{f:"Gabriela",v:["400"]},{f:"Gaegu",v:["300","400","700"]},{f:"Gafata",v:["400"]},{f:"Galada",v:["400"]},{f:"Galdeano",v:["400"]},{f:"Galindo",v:["400"]},{f:"Gamja Flower",v:["400"]},{f:"Gayathri",v:["100","400","700"]},{f:"Gelasio",v:["400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Gentium Basic",v:["400","400italic","700","700italic"]},{f:"Gentium Book Basic",v:["400","400italic","700","700italic"]},{f:"Geo",v:["400","400italic"]},{f:"Geostar",v:["400"]},{f:"Geostar Fill",v:["400"]},{f:"Germania One",v:["400"]},{f:"Gidugu",v:["400"]},{f:"Gilda Display",v:["400"]},{f:"Girassol",v:["400"]},{f:"Give You Glory",v:["400"]},{f:"Glass Antiqua",v:["400"]},{f:"Glegoo",v:["400","700"]},{f:"Gloria Hallelujah",v:["400"]},{f:"Goblin One",v:["400"]},{f:"Gochi Hand",v:["400"]},{f:"Gorditas",v:["400","700"]},{f:"Gothic A1",v:["100","200","300","400","500","600","700","800","900"]},{f:"Gotu",v:["400"]},{f:"Goudy Bookletter 1911",v:["400"]},{f:"Graduate",v:["400"]},{f:"Grand Hotel",v:["400"]},{f:"Gravitas One",v:["400"]},{f:"Great Vibes",v:["400"]},{f:"Grenze",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Grenze Gotisch",v:["100","200","300","400","500","600","700","800","900"]},{f:"Griffy",v:["400"]},{f:"Gruppo",v:["400"]},{f:"Gudea",v:["400","400italic","700"]},{f:"Gugi",v:["400"]},{f:"Gupter",v:["400","500","700"]},{f:"Gurajada",v:["400"]},{f:"Habibi",v:["400"]},{f:"Halant",v:["300","400","500","600","700"]},{f:"Hammersmith One",v:["400"]},{f:"Hanalei",v:["400"]},{f:"Hanalei Fill",v:["400"]},{f:"Handlee",v:["400"]},{f:"Hanuman",v:["400","700"]},{f:"Happy Monkey",v:["400"]},{f:"Harmattan",v:["400","700"]},{f:"Headland One",v:["400"]},{f:"Heebo",v:["100","200","300","400","500","600","700","800","900"]},{f:"Henny Penny",v:["400"]},{f:"Hepta Slab",v:["100","200","300","400","500","600","700","800","900"]},{f:"Herr Von Muellerhoff",v:["400"]},{f:"Hi Melody",v:["400"]},{f:"Hind",v:["300","400","500","600","700"]},{f:"Hind Guntur",v:["300","400","500","600","700"]},{f:"Hind Madurai",v:["300","400","500","600","700"]},{f:"Hind Siliguri",v:["300","400","500","600","700"]},{f:"Hind Vadodara",v:["300","400","500","600","700"]},{f:"Holtwood One SC",v:["400"]},{f:"Homemade Apple",v:["400"]},{f:"Homenaje",v:["400"]},{f:"IBM Plex Mono",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Sans",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Sans Condensed",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IBM Plex Serif",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"IM Fell DW Pica",v:["400","400italic"]},{f:"IM Fell DW Pica SC",v:["400"]},{f:"IM Fell Double Pica",v:["400","400italic"]},{f:"IM Fell Double Pica SC",v:["400"]},{f:"IM Fell English",v:["400","400italic"]},{f:"IM Fell English SC",v:["400"]},{f:"IM Fell French Canon",v:["400","400italic"]},{f:"IM Fell French Canon SC",v:["400"]},{f:"IM Fell Great Primer",v:["400","400italic"]},{f:"IM Fell Great Primer SC",v:["400"]},{f:"Ibarra Real Nova",v:["400","400italic","600","600italic","700","700italic"]},{f:"Iceberg",v:["400"]},{f:"Iceland",v:["400"]},{f:"Imprima",v:["400"]},{f:"Inconsolata",v:["200","300","400","500","600","700","800","900"]},{f:"Inder",v:["400"]},{f:"Indie Flower",v:["400"]},{f:"Inika",v:["400","700"]},{f:"Inknut Antiqua",v:["300","400","500","600","700","800","900"]},{f:"Inria Sans",v:["300","300italic","400","400italic","700","700italic"]},{f:"Inria Serif",v:["300","300italic","400","400italic","700","700italic"]},{f:"Inter",v:["100","200","300","400","500","600","700","800","900"]},{f:"Irish Grover",v:["400"]},{f:"Istok Web",v:["400","400italic","700","700italic"]},{f:"Italiana",v:["400"]},{f:"Italianno",v:["400"]},{f:"Itim",v:["400"]},{f:"Jacques Francois",v:["400"]},{f:"Jacques Francois Shadow",v:["400"]},{f:"Jaldi",v:["400","700"]},{f:"Jim Nightshade",v:["400"]},{f:"Jockey One",v:["400"]},{f:"Jolly Lodger",v:["400"]},{f:"Jomhuria",v:["400"]},{f:"Jomolhari",v:["400"]},{f:"Josefin Sans",v:["100","200","300","400","500","600","700","100italic","200italic","300italic","400italic","500italic","600italic","700italic"]},{f:"Josefin Slab",v:["100","100italic","300","300italic","400","400italic","600","600italic","700","700italic"]},{f:"Jost",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Joti One",v:["400"]},{f:"Jua",v:["400"]},{f:"Judson",v:["400","400italic","700"]},{f:"Julee",v:["400"]},{f:"Julius Sans One",v:["400"]},{f:"Junge",v:["400"]},{f:"Jura",v:["300","400","500","600","700"]},{f:"Just Another Hand",v:["400"]},{f:"Just Me Again Down Here",v:["400"]},{f:"K2D",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Kadwa",v:["400","700"]},{f:"Kalam",v:["300","400","700"]},{f:"Kameron",v:["400","700"]},{f:"Kanit",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Kantumruy",v:["300","400","700"]},{f:"Karla",v:["400","400italic","700","700italic"]},{f:"Karma",v:["300","400","500","600","700"]},{f:"Katibeh",v:["400"]},{f:"Kaushan Script",v:["400"]},{f:"Kavivanar",v:["400"]},{f:"Kavoon",v:["400"]},{f:"Kdam Thmor",v:["400"]},{f:"Keania One",v:["400"]},{f:"Kelly Slab",v:["400"]},{f:"Kenia",v:["400"]},{f:"Khand",v:["300","400","500","600","700"]},{f:"Khmer",v:["400"]},{f:"Khula",v:["300","400","600","700","800"]},{f:"Kirang Haerang",v:["400"]},{f:"Kite One",v:["400"]},{f:"Knewave",v:["400"]},{f:"KoHo",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kodchasan",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kosugi",v:["400"]},{f:"Kosugi Maru",v:["400"]},{f:"Kotta One",v:["400"]},{f:"Koulen",v:["400"]},{f:"Kranky",v:["400"]},{f:"Kreon",v:["300","400","500","600","700"]},{f:"Kristi",v:["400"]},{f:"Krona One",v:["400"]},{f:"Krub",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Kulim Park",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic"]},{f:"Kumar One",v:["400"]},{f:"Kumar One Outline",v:["400"]},{f:"Kurale",v:["400"]},{f:"La Belle Aurore",v:["400"]},{f:"Lacquer",v:["400"]},{f:"Laila",v:["300","400","500","600","700"]},{f:"Lakki Reddy",v:["400"]},{f:"Lalezar",v:["400"]},{f:"Lancelot",v:["400"]},{f:"Lateef",v:["400"]},{f:"Lato",v:["100","100italic","300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"League Script",v:["400"]},{f:"Leckerli One",v:["400"]},{f:"Ledger",v:["400"]},{f:"Lekton",v:["400","400italic","700"]},{f:"Lemon",v:["400"]},{f:"Lemonada",v:["300","400","500","600","700"]},{f:"Lexend Deca",v:["400"]},{f:"Lexend Exa",v:["400"]},{f:"Lexend Giga",v:["400"]},{f:"Lexend Mega",v:["400"]},{f:"Lexend Peta",v:["400"]},{f:"Lexend Tera",v:["400"]},{f:"Lexend Zetta",v:["400"]},{f:"Libre Barcode 128",v:["400"]},{f:"Libre Barcode 128 Text",v:["400"]},{f:"Libre Barcode 39",v:["400"]},{f:"Libre Barcode 39 Extended",v:["400"]},{f:"Libre Barcode 39 Extended Text",v:["400"]},{f:"Libre Barcode 39 Text",v:["400"]},{f:"Libre Baskerville",v:["400","400italic","700"]},{f:"Libre Caslon Display",v:["400"]},{f:"Libre Caslon Text",v:["400","400italic","700"]},{f:"Libre Franklin",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Life Savers",v:["400","700","800"]},{f:"Lilita One",v:["400"]},{f:"Lily Script One",v:["400"]},{f:"Limelight",v:["400"]},{f:"Linden Hill",v:["400","400italic"]},{f:"Literata",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Liu Jian Mao Cao",v:["400"]},{f:"Livvic",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","900","900italic"]},{f:"Lobster",v:["400"]},{f:"Lobster Two",v:["400","400italic","700","700italic"]},{f:"Londrina Outline",v:["400"]},{f:"Londrina Shadow",v:["400"]},{f:"Londrina Sketch",v:["400"]},{f:"Londrina Solid",v:["100","300","400","900"]},{f:"Long Cang",v:["400"]},{f:"Lora",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Love Ya Like A Sister",v:["400"]},{f:"Loved by the King",v:["400"]},{f:"Lovers Quarrel",v:["400"]},{f:"Luckiest Guy",v:["400"]},{f:"Lusitana",v:["400","700"]},{f:"Lustria",v:["400"]},{f:"M PLUS 1p",v:["100","300","400","500","700","800","900"]},{f:"M PLUS Rounded 1c",v:["100","300","400","500","700","800","900"]},{f:"Ma Shan Zheng",v:["400"]},{f:"Macondo",v:["400"]},{f:"Macondo Swash Caps",v:["400"]},{f:"Mada",v:["200","300","400","500","600","700","900"]},{f:"Magra",v:["400","700"]},{f:"Maiden Orange",v:["400"]},{f:"Maitree",v:["200","300","400","500","600","700"]},{f:"Major Mono Display",v:["400"]},{f:"Mako",v:["400"]},{f:"Mali",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Mallanna",v:["400"]},{f:"Mandali",v:["400"]},{f:"Manjari",v:["100","400","700"]},{f:"Manrope",v:["200","300","400","500","600","700","800"]},{f:"Mansalva",v:["400"]},{f:"Manuale",v:["400","500","600","700","400italic","500italic","600italic","700italic"]},{f:"Marcellus",v:["400"]},{f:"Marcellus SC",v:["400"]},{f:"Marck Script",v:["400"]},{f:"Margarine",v:["400"]},{f:"Markazi Text",v:["400","500","600","700"]},{f:"Marko One",v:["400"]},{f:"Marmelad",v:["400"]},{f:"Martel",v:["200","300","400","600","700","800","900"]},{f:"Martel Sans",v:["200","300","400","600","700","800","900"]},{f:"Marvel",v:["400","400italic","700","700italic"]},{f:"Mate",v:["400","400italic"]},{f:"Mate SC",v:["400"]},{f:"Maven Pro",v:["400","500","600","700","800","900"]},{f:"McLaren",v:["400"]},{f:"Meddon",v:["400"]},{f:"MedievalSharp",v:["400"]},{f:"Medula One",v:["400"]},{f:"Meera Inimai",v:["400"]},{f:"Megrim",v:["400"]},{f:"Meie Script",v:["400"]},{f:"Merienda",v:["400","700"]},{f:"Merienda One",v:["400"]},{f:"Merriweather",v:["300","300italic","400","400italic","700","700italic","900","900italic"]},{f:"Merriweather Sans",v:["300","300italic","400","400italic","700","700italic","800","800italic"]},{f:"Metal",v:["400"]},{f:"Metal Mania",v:["400"]},{f:"Metamorphous",v:["400"]},{f:"Metrophobic",v:["400"]},{f:"Michroma",v:["400"]},{f:"Milonga",v:["400"]},{f:"Miltonian",v:["400"]},{f:"Miltonian Tattoo",v:["400"]},{f:"Mina",v:["400","700"]},{f:"Miniver",v:["400"]},{f:"Miriam Libre",v:["400","700"]},{f:"Mirza",v:["400","500","600","700"]},{f:"Miss Fajardose",v:["400"]},{f:"Mitr",v:["200","300","400","500","600","700"]},{f:"Modak",v:["400"]},{f:"Modern Antiqua",v:["400"]},{f:"Mogra",v:["400"]},{f:"Molengo",v:["400"]},{f:"Molle",v:["400italic"]},{f:"Monda",v:["400","700"]},{f:"Monofett",v:["400"]},{f:"Monoton",v:["400"]},{f:"Monsieur La Doulaise",v:["400"]},{f:"Montaga",v:["400"]},{f:"Montez",v:["400"]},{f:"Montserrat",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Montserrat Alternates",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Montserrat Subrayada",v:["400","700"]},{f:"Moul",v:["400"]},{f:"Moulpali",v:["400"]},{f:"Mountains of Christmas",v:["400","700"]},{f:"Mouse Memoirs",v:["400"]},{f:"Mr Bedfort",v:["400"]},{f:"Mr Dafoe",v:["400"]},{f:"Mr De Haviland",v:["400"]},{f:"Mrs Saint Delafield",v:["400"]},{f:"Mrs Sheppards",v:["400"]},{f:"Mukta",v:["200","300","400","500","600","700","800"]},{f:"Mukta Mahee",v:["200","300","400","500","600","700","800"]},{f:"Mukta Malar",v:["200","300","400","500","600","700","800"]},{f:"Mukta Vaani",v:["200","300","400","500","600","700","800"]},{f:"Mulish",v:["200","300","400","500","600","700","800","900","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"MuseoModerno",v:["100","200","300","400","500","600","700","800","900"]},{f:"Mystery Quest",v:["400"]},{f:"NTR",v:["400"]},{f:"Nanum Brush Script",v:["400"]},{f:"Nanum Gothic",v:["400","700","800"]},{f:"Nanum Gothic Coding",v:["400","700"]},{f:"Nanum Myeongjo",v:["400","700","800"]},{f:"Nanum Pen Script",v:["400"]},{f:"Neucha",v:["400"]},{f:"Neuton",v:["200","300","400","400italic","700","800"]},{f:"New Rocker",v:["400"]},{f:"News Cycle",v:["400","700"]},{f:"Niconne",v:["400"]},{f:"Niramit",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Nixie One",v:["400"]},{f:"Nobile",v:["400","400italic","500","500italic","700","700italic"]},{f:"Nokora",v:["400","700"]},{f:"Norican",v:["400"]},{f:"Nosifer",v:["400"]},{f:"Notable",v:["400"]},{f:"Nothing You Could Do",v:["400"]},{f:"Noticia Text",v:["400","400italic","700","700italic"]},{f:"Noto Sans",v:["400","400italic","700","700italic"]},{f:"Noto Sans HK",v:["100","300","400","500","700","900"]},{f:"Noto Sans JP",v:["100","300","400","500","700","900"]},{f:"Noto Sans KR",v:["100","300","400","500","700","900"]},{f:"Noto Sans SC",v:["100","300","400","500","700","900"]},{f:"Noto Sans TC",v:["100","300","400","500","700","900"]},{f:"Noto Serif",v:["400","400italic","700","700italic"]},{f:"Noto Serif JP",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif KR",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif SC",v:["200","300","400","500","600","700","900"]},{f:"Noto Serif TC",v:["200","300","400","500","600","700","900"]},{f:"Nova Cut",v:["400"]},{f:"Nova Flat",v:["400"]},{f:"Nova Mono",v:["400"]},{f:"Nova Oval",v:["400"]},{f:"Nova Round",v:["400"]},{f:"Nova Script",v:["400"]},{f:"Nova Slim",v:["400"]},{f:"Nova Square",v:["400"]},{f:"Numans",v:["400"]},{f:"Nunito",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Nunito Sans",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Odibee Sans",v:["400"]},{f:"Odor Mean Chey",v:["400"]},{f:"Offside",v:["400"]},{f:"Old Standard TT",v:["400","400italic","700"]},{f:"Oldenburg",v:["400"]},{f:"Oleo Script",v:["400","700"]},{f:"Oleo Script Swash Caps",v:["400","700"]},{f:"Open Sans",v:["300","300italic","400","400italic","600","600italic","700","700italic","800","800italic"]},{f:"Open Sans Condensed",v:["300","300italic","700"]},{f:"Oranienbaum",v:["400"]},{f:"Orbitron",v:["400","500","600","700","800","900"]},{f:"Oregano",v:["400","400italic"]},{f:"Orienta",v:["400"]},{f:"Original Surfer",v:["400"]},{f:"Oswald",v:["200","300","400","500","600","700"]},{f:"Over the Rainbow",v:["400"]},{f:"Overlock",v:["400","400italic","700","700italic","900","900italic"]},{f:"Overlock SC",v:["400"]},{f:"Overpass",v:["100","100italic","200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Overpass Mono",v:["300","400","600","700"]},{f:"Ovo",v:["400"]},{f:"Oxanium",v:["200","300","400","500","600","700","800"]},{f:"Oxygen",v:["300","400","700"]},{f:"Oxygen Mono",v:["400"]},{f:"PT Mono",v:["400"]},{f:"PT Sans",v:["400","400italic","700","700italic"]},{f:"PT Sans Caption",v:["400","700"]},{f:"PT Sans Narrow",v:["400","700"]},{f:"PT Serif",v:["400","400italic","700","700italic"]},{f:"PT Serif Caption",v:["400","400italic"]},{f:"Pacifico",v:["400"]},{f:"Padauk",v:["400","700"]},{f:"Palanquin",v:["100","200","300","400","500","600","700"]},{f:"Palanquin Dark",v:["400","500","600","700"]},{f:"Pangolin",v:["400"]},{f:"Paprika",v:["400"]},{f:"Parisienne",v:["400"]},{f:"Passero One",v:["400"]},{f:"Passion One",v:["400","700","900"]},{f:"Pathway Gothic One",v:["400"]},{f:"Patrick Hand",v:["400"]},{f:"Patrick Hand SC",v:["400"]},{f:"Pattaya",v:["400"]},{f:"Patua One",v:["400"]},{f:"Pavanam",v:["400"]},{f:"Paytone One",v:["400"]},{f:"Peddana",v:["400"]},{f:"Peralta",v:["400"]},{f:"Permanent Marker",v:["400"]},{f:"Petit Formal Script",v:["400"]},{f:"Petrona",v:["400"]},{f:"Philosopher",v:["400","400italic","700","700italic"]},{f:"Piedra",v:["400"]},{f:"Pinyon Script",v:["400"]},{f:"Pirata One",v:["400"]},{f:"Plaster",v:["400"]},{f:"Play",v:["400","700"]},{f:"Playball",v:["400"]},{f:"Playfair Display",v:["400","500","600","700","800","900","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Playfair Display SC",v:["400","400italic","700","700italic","900","900italic"]},{f:"Podkova",v:["400","500","600","700","800"]},{f:"Poiret One",v:["400"]},{f:"Poller One",v:["400"]},{f:"Poly",v:["400","400italic"]},{f:"Pompiere",v:["400"]},{f:"Pontano Sans",v:["400"]},{f:"Poor Story",v:["400"]},{f:"Poppins",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Port Lligat Sans",v:["400"]},{f:"Port Lligat Slab",v:["400"]},{f:"Pragati Narrow",v:["400","700"]},{f:"Prata",v:["400"]},{f:"Preahvihear",v:["400"]},{f:"Press Start 2P",v:["400"]},{f:"Pridi",v:["200","300","400","500","600","700"]},{f:"Princess Sofia",v:["400"]},{f:"Prociono",v:["400"]},{f:"Prompt",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Prosto One",v:["400"]},{f:"Proza Libre",v:["400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Public Sans",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Puritan",v:["400","400italic","700","700italic"]},{f:"Purple Purse",v:["400"]},{f:"Quando",v:["400"]},{f:"Quantico",v:["400","400italic","700","700italic"]},{f:"Quattrocento",v:["400","700"]},{f:"Quattrocento Sans",v:["400","400italic","700","700italic"]},{f:"Questrial",v:["400"]},{f:"Quicksand",v:["300","400","500","600","700"]},{f:"Quintessential",v:["400"]},{f:"Qwigley",v:["400"]},{f:"Racing Sans One",v:["400"]},{f:"Radley",v:["400","400italic"]},{f:"Rajdhani",v:["300","400","500","600","700"]},{f:"Rakkas",v:["400"]},{f:"Raleway",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Raleway Dots",v:["400"]},{f:"Ramabhadra",v:["400"]},{f:"Ramaraja",v:["400"]},{f:"Rambla",v:["400","400italic","700","700italic"]},{f:"Rammetto One",v:["400"]},{f:"Ranchers",v:["400"]},{f:"Rancho",v:["400"]},{f:"Ranga",v:["400","700"]},{f:"Rasa",v:["300","400","500","600","700"]},{f:"Rationale",v:["400"]},{f:"Ravi Prakash",v:["400"]},{f:"Recursive",v:["300","400","500","600","700","800","900"]},{f:"Red Hat Display",v:["400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Red Hat Text",v:["400","400italic","500","500italic","700","700italic"]},{f:"Red Rose",v:["300","400","700"]},{f:"Redressed",v:["400"]},{f:"Reem Kufi",v:["400"]},{f:"Reenie Beanie",v:["400"]},{f:"Revalia",v:["400"]},{f:"Rhodium Libre",v:["400"]},{f:"Ribeye",v:["400"]},{f:"Ribeye Marrow",v:["400"]},{f:"Righteous",v:["400"]},{f:"Risque",v:["400"]},{f:"Roboto",v:["100","100italic","300","300italic","400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Roboto Condensed",v:["300","300italic","400","400italic","700","700italic"]},{f:"Roboto Mono",v:["100","200","300","400","500","600","700","100italic","200italic","300italic","400italic","500italic","600italic","700italic"]},{f:"Roboto Slab",v:["100","200","300","400","500","600","700","800","900"]},{f:"Rochester",v:["400"]},{f:"Rock Salt",v:["400"]},{f:"Rokkitt",v:["100","200","300","400","500","600","700","800","900"]},{f:"Romanesco",v:["400"]},{f:"Ropa Sans",v:["400","400italic"]},{f:"Rosario",v:["300","400","500","600","700","300italic","400italic","500italic","600italic","700italic"]},{f:"Rosarivo",v:["400","400italic"]},{f:"Rouge Script",v:["400"]},{f:"Rowdies",v:["300","400","700"]},{f:"Rozha One",v:["400"]},{f:"Rubik",v:["300","300italic","400","400italic","500","500italic","700","700italic","900","900italic"]},{f:"Rubik Mono One",v:["400"]},{f:"Ruda",v:["400","500","600","700","800","900"]},{f:"Rufina",v:["400","700"]},{f:"Ruge Boogie",v:["400"]},{f:"Ruluko",v:["400"]},{f:"Rum Raisin",v:["400"]},{f:"Ruslan Display",v:["400"]},{f:"Russo One",v:["400"]},{f:"Ruthie",v:["400"]},{f:"Rye",v:["400"]},{f:"Sacramento",v:["400"]},{f:"Sahitya",v:["400","700"]},{f:"Sail",v:["400"]},{f:"Saira",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Extra Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Semi Condensed",v:["100","200","300","400","500","600","700","800","900"]},{f:"Saira Stencil One",v:["400"]},{f:"Salsa",v:["400"]},{f:"Sanchez",v:["400","400italic"]},{f:"Sancreek",v:["400"]},{f:"Sansita",v:["400","400italic","700","700italic","800","800italic","900","900italic"]},{f:"Sarabun",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Sarala",v:["400","700"]},{f:"Sarina",v:["400"]},{f:"Sarpanch",v:["400","500","600","700","800","900"]},{f:"Satisfy",v:["400"]},{f:"Sawarabi Gothic",v:["400"]},{f:"Sawarabi Mincho",v:["400"]},{f:"Scada",v:["400","400italic","700","700italic"]},{f:"Scheherazade",v:["400","700"]},{f:"Schoolbell",v:["400"]},{f:"Scope One",v:["400"]},{f:"Seaweed Script",v:["400"]},{f:"Secular One",v:["400"]},{f:"Sedgwick Ave",v:["400"]},{f:"Sedgwick Ave Display",v:["400"]},{f:"Sen",v:["400","700","800"]},{f:"Sevillana",v:["400"]},{f:"Seymour One",v:["400"]},{f:"Shadows Into Light",v:["400"]},{f:"Shadows Into Light Two",v:["400"]},{f:"Shanti",v:["400"]},{f:"Share",v:["400","400italic","700","700italic"]},{f:"Share Tech",v:["400"]},{f:"Share Tech Mono",v:["400"]},{f:"Shojumaru",v:["400"]},{f:"Short Stack",v:["400"]},{f:"Shrikhand",v:["400"]},{f:"Siemreap",v:["400"]},{f:"Sigmar One",v:["400"]},{f:"Signika",v:["300","400","500","600","700"]},{f:"Signika Negative",v:["300","400","600","700"]},{f:"Simonetta",v:["400","400italic","900","900italic"]},{f:"Single Day",v:["400"]},{f:"Sintony",v:["400","700"]},{f:"Sirin Stencil",v:["400"]},{f:"Six Caps",v:["400"]},{f:"Skranji",v:["400","700"]},{f:"Slabo 13px",v:["400"]},{f:"Slabo 27px",v:["400"]},{f:"Slackey",v:["400"]},{f:"Smokum",v:["400"]},{f:"Smythe",v:["400"]},{f:"Sniglet",v:["400","800"]},{f:"Snippet",v:["400"]},{f:"Snowburst One",v:["400"]},{f:"Sofadi One",v:["400"]},{f:"Sofia",v:["400"]},{f:"Solway",v:["300","400","500","700","800"]},{f:"Song Myung",v:["400"]},{f:"Sonsie One",v:["400"]},{f:"Sora",v:["100","200","300","400","500","600","700","800"]},{f:"Sorts Mill Goudy",v:["400","400italic"]},{f:"Source Code Pro",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","900","900italic"]},{f:"Source Sans Pro",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900","900italic"]},{f:"Source Serif Pro",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900","900italic"]},{f:"Space Mono",v:["400","400italic","700","700italic"]},{f:"Spartan",v:["100","200","300","400","500","600","700","800","900"]},{f:"Special Elite",v:["400"]},{f:"Spectral",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Spectral SC",v:["200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{f:"Spicy Rice",v:["400"]},{f:"Spinnaker",v:["400"]},{f:"Spirax",v:["400"]},{f:"Squada One",v:["400"]},{f:"Sree Krushnadevaraya",v:["400"]},{f:"Sriracha",v:["400"]},{f:"Srisakdi",v:["400","700"]},{f:"Staatliches",v:["400"]},{f:"Stalemate",v:["400"]},{f:"Stalinist One",v:["400"]},{f:"Stardos Stencil",v:["400","700"]},{f:"Stint Ultra Condensed",v:["400"]},{f:"Stint Ultra Expanded",v:["400"]},{f:"Stoke",v:["300","400"]},{f:"Strait",v:["400"]},{f:"Stylish",v:["400"]},{f:"Sue Ellen Francisco",v:["400"]},{f:"Suez One",v:["400"]},{f:"Sulphur Point",v:["300","400","700"]},{f:"Sumana",v:["400","700"]},{f:"Sunflower",v:["300","500","700"]},{f:"Sunshiney",v:["400"]},{f:"Supermercado One",v:["400"]},{f:"Sura",v:["400","700"]},{f:"Suranna",v:["400"]},{f:"Suravaram",v:["400"]},{f:"Suwannaphum",v:["400"]},{f:"Swanky and Moo Moo",v:["400"]},{f:"Syncopate",v:["400","700"]},{f:"Tajawal",v:["200","300","400","500","700","800","900"]},{f:"Tangerine",v:["400","700"]},{f:"Taprom",v:["400"]},{f:"Tauri",v:["400"]},{f:"Taviraj",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Teko",v:["300","400","500","600","700"]},{f:"Telex",v:["400"]},{f:"Tenali Ramakrishna",v:["400"]},{f:"Tenor Sans",v:["400"]},{f:"Text Me One",v:["400"]},{f:"Thasadith",v:["400","400italic","700","700italic"]},{f:"The Girl Next Door",v:["400"]},{f:"Tienne",v:["400","700","900"]},{f:"Tillana",v:["400","500","600","700","800"]},{f:"Timmana",v:["400"]},{f:"Tinos",v:["400","400italic","700","700italic"]},{f:"Titan One",v:["400"]},{f:"Titillium Web",v:["200","200italic","300","300italic","400","400italic","600","600italic","700","700italic","900"]},{f:"Tomorrow",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Trade Winds",v:["400"]},{f:"Trirong",v:["100","100italic","200","200italic","300","300italic","400","400italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{f:"Trocchi",v:["400"]},{f:"Trochut",v:["400","400italic","700"]},{f:"Trykker",v:["400"]},{f:"Tulpen One",v:["400"]},{f:"Turret Road",v:["200","300","400","500","700","800"]},{f:"Ubuntu",v:["300","300italic","400","400italic","500","500italic","700","700italic"]},{f:"Ubuntu Condensed",v:["400"]},{f:"Ubuntu Mono",v:["400","400italic","700","700italic"]},{f:"Ultra",v:["400"]},{f:"Uncial Antiqua",v:["400"]},{f:"Underdog",v:["400"]},{f:"Unica One",v:["400"]},{f:"UnifrakturCook",v:["700"]},{f:"UnifrakturMaguntia",v:["400"]},{f:"Unkempt",v:["400","700"]},{f:"Unlock",v:["400"]},{f:"Unna",v:["400","400italic","700","700italic"]},{f:"VT323",v:["400"]},{f:"Vampiro One",v:["400"]},{f:"Varela",v:["400"]},{f:"Varela Round",v:["400"]},{f:"Varta",v:["300","400","500","600","700"]},{f:"Vast Shadow",v:["400"]},{f:"Vesper Libre",v:["400","500","700","900"]},{f:"Viaoda Libre",v:["400"]},{f:"Vibes",v:["400"]},{f:"Vibur",v:["400"]},{f:"Vidaloka",v:["400"]},{f:"Viga",v:["400"]},{f:"Voces",v:["400"]},{f:"Volkhov",v:["400","400italic","700","700italic"]},{f:"Vollkorn",v:["400","500","600","700","800","900","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Vollkorn SC",v:["400","600","700","900"]},{f:"Voltaire",v:["400"]},{f:"Waiting for the Sunrise",v:["400"]},{f:"Wallpoet",v:["400"]},{f:"Walter Turncoat",v:["400"]},{f:"Warnes",v:["400"]},{f:"Wellfleet",v:["400"]},{f:"Wendy One",v:["400"]},{f:"Wire One",v:["400"]},{f:"Work Sans",v:["100","200","300","400","500","600","700","800","900","100italic","200italic","300italic","400italic","500italic","600italic","700italic","800italic","900italic"]},{f:"Yanone Kaffeesatz",v:["200","300","400","500","600","700"]},{f:"Yantramanav",v:["100","300","400","500","700","900"]},{f:"Yatra One",v:["400"]},{f:"Yellowtail",v:["400"]},{f:"Yeon Sung",v:["400"]},{f:"Yeseva One",v:["400"]},{f:"Yesteryear",v:["400"]},{f:"Yrsa",v:["300","400","500","600","700"]},{f:"ZCOOL KuaiLe",v:["400"]},{f:"ZCOOL QingKe HuangYou",v:["400"]},{f:"ZCOOL XiaoWei",v:["400"]},{f:"Zeyada",v:["400"]},{f:"Zhi Mang Xing",v:["400"]},{f:"Zilla Slab",v:["300","300italic","400","400italic","500","500italic","600","600italic","700","700italic"]},{f:"Zilla Slab Highlight",v:["400","700"]}]}},function(i,a){i.exports={kind:"webfonts#webfontList",items:[{id:"arial",label:"Arial",stack:"Arial, Helvetica Neue, Helvetica, sans-serif"},{id:"calibri",label:"Calibri",stack:"Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;"},{id:"consolas",label:"Consolas",stack:"Consolas, monaco, monospace"},{id:"courier-new",label:"Courier New",stack:"Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace"},{id:"helvetica",label:"Helvetica Neue",stack:"Helvetica Neue, Helvetica, Arial, sans-serif"},{id:"georgia",label:"Georgia",stack:"Georgia, Times, Times New Roman, serif"},{id:"futura",label:"Futura",stack:"Futura, Trebuchet MS, Arial, sans-serif"},{id:"lucida-grande",label:"Lucida Grande",stack:"Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif"},{id:"tahoma",label:"Tahoma",stack:"Tahoma, Verdana, Segoe, sans-serif"},{id:"times-new-roman",label:"Times New Roman",stack:"TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif"},{id:"trebuchet",label:"Trebuchet MS",stack:"Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif"},{id:"palatino",label:"Palatino",stack:"Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif"},{id:"verdana",label:"Verdana",stack:"Verdana, Geneva, sans-serif;"}]}},function(i,a,t){"use strict";var e=wp.blocks.createBlock,l={from:[{type:"block",blocks:["core/paragraph"],transform:function(i){var a=i.content;return e("olympus-google-fonts/google-fonts",{content:a})}},{type:"block",blocks:["core/heading"],transform:function(i){var a=i.content,t=i.level;return e("olympus-google-fonts/google-fonts",{content:a,blockType:"h"+t})}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(i){var a=i.content;return e("core/paragraph",{content:a})}}]};a.a=l}]);
blocks/init.php CHANGED
@@ -23,6 +23,7 @@ function olympus_google_fonts_block_js() {
23
  OGF_VERSION,
24
  false
25
  );
 
26
  }
27
 
28
  add_action( 'enqueue_block_editor_assets', 'olympus_google_fonts_block_js' );
@@ -49,7 +50,7 @@ function olympus_google_fonts_register_block() {
49
  ),
50
  'variant' => array(
51
  'type' => 'string',
52
- 'default' => 'regular',
53
  ),
54
  'fontSize' => array(
55
  'type' => 'number',
@@ -93,24 +94,17 @@ function olympus_google_fonts_block_render( $attributes ) {
93
 
94
  if ( $font_id ) {
95
 
96
- $system_fonts = ogf_system_fonts();
 
97
 
98
- if ( array_key_exists( $font_id, $system_fonts ) ) {
99
-
100
- $font_family = $system_fonts[ $font_id ]['stack'];
101
-
102
- } else {
103
-
104
- $font_family = esc_attr( str_replace( '+', ' ', $font_id ) );
105
- $font_id = str_replace( '+', '-', strtolower( $font_id ) );
106
- $fonts = ogf_fonts_array();
107
- $variants = $fonts[ $font_id ]['v'];
108
- unset( $variants[0] );
109
 
110
  $variants_for_url = join( array_keys( $variants ), ',' );
111
 
112
- wp_enqueue_style( 'google-font-' . $font_id, 'https://fonts.googleapis.com/css?family=' . $font_family . ':' . $variants_for_url . '&display=swap', array(), OGF_VERSION );
113
 
 
114
  }
115
 
116
  $style = "font-family: {$font_family};";
@@ -136,7 +130,7 @@ function olympus_google_fonts_block_render( $attributes ) {
136
  $style .= "color: {$color};";
137
  }
138
 
139
- $output .= '<' . $block_type . ' class="google-fonts-blocks" style="' . $style . '">';
140
  $output .= $content;
141
  $output .= '</' . $block_type . '>';
142
 
23
  OGF_VERSION,
24
  false
25
  );
26
+ wp_localize_script( 'olympus-google-fonts-block-js', 'ogf_custom_fonts', ogf_custom_fonts() );
27
  }
28
 
29
  add_action( 'enqueue_block_editor_assets', 'olympus_google_fonts_block_js' );
50
  ),
51
  'variant' => array(
52
  'type' => 'string',
53
+ 'default' => 'normal',
54
  ),
55
  'fontSize' => array(
56
  'type' => 'number',
94
 
95
  if ( $font_id ) {
96
 
97
+ // standardize the format.
98
+ $font_id_standardized = str_replace( '+', '-', strtolower( $font_id ) );
99
 
100
+ if ( array_key_exists( $font_id_standardized, OGF_Fonts::$google_fonts ) ) {
101
+ $variants = OGF_Fonts::$google_fonts[ $font_id_standardized ]['v'];
 
 
 
 
 
 
 
 
 
102
 
103
  $variants_for_url = join( array_keys( $variants ), ',' );
104
 
105
+ wp_enqueue_style( 'google-font-' . $font_id_standardized, 'https://fonts.googleapis.com/css?family=' . $font_id . ':' . $variants_for_url . '&display=swap', array(), OGF_VERSION );
106
 
107
+ $font_family = esc_attr( str_replace( '+', ' ', $font_id ) );
108
  }
109
 
110
  $style = "font-family: {$font_family};";
130
  $style .= "color: {$color};";
131
  }
132
 
133
+ $output .= '<' . $block_type . ' class="fonts-plugin-block" style="' . $style . '">';
134
  $output .= $content;
135
  $output .= '</' . $block_type . '>';
136
 
blocks/src/google-fonts/edit.js CHANGED
@@ -42,7 +42,17 @@ class GoogleFontsBlock extends Component {
42
  };
43
  } );
44
 
45
- return systemFonts.concat( googleFonts );
 
 
 
 
 
 
 
 
 
 
46
  }
47
 
48
  searchFonts( nameKey, myArray ){
@@ -53,15 +63,23 @@ class GoogleFontsBlock extends Component {
53
  }
54
  }
55
 
56
- isSystemFont( fontID ) {
57
- const searchResults = this.searchFonts( fontID, systemFontsJson.items );
58
 
59
  if ( typeof searchResults === 'object' ) {
60
  return true;
61
  }
62
 
63
  return false;
 
 
 
 
 
 
 
64
 
 
65
  }
66
 
67
  /**
@@ -138,7 +156,7 @@ class GoogleFontsBlock extends Component {
138
  * @param {Object} fontObject The font object.
139
  */
140
  addGoogleFontToHead( fontFamily, fontObject ) {
141
- if ( ! fontFamily || ! fontObject || this.isSystemFont() ) {
142
  return;
143
  }
144
 
@@ -174,7 +192,7 @@ class GoogleFontsBlock extends Component {
174
  },
175
  ];
176
 
177
- if ( ! this.isSystemFont( fontID ) ) {
178
  const fontObject = this.getFontObject( fontID.replace( /\+/g, ' ' ) );
179
  variantOptions = this.getVariantsForSelect( fontObject );
180
  this.addGoogleFontToHead( fontID, fontObject );
42
  };
43
  } );
44
 
45
+ const combinedFonts = systemFonts.concat( googleFonts );
46
+
47
+ const customFonts = Object.values(ogf_custom_fonts).map( ( font ) => {
48
+
49
+ return {
50
+ value: font.id,
51
+ label: font.label,
52
+ };
53
+ } );
54
+
55
+ return combinedFonts.concat( customFonts );
56
  }
57
 
58
  searchFonts( nameKey, myArray ){
63
  }
64
  }
65
 
66
+ isCustomFont( fontID ) {
67
+ const searchResults = this.searchFonts( fontID, Object.values(ogf_custom_fonts) );
68
 
69
  if ( typeof searchResults === 'object' ) {
70
  return true;
71
  }
72
 
73
  return false;
74
+ }
75
+
76
+ isSystemFont( fontID ) {
77
+ const searchResults = this.searchFonts( fontID, systemFontsJson.items );
78
+ if ( typeof searchResults === 'object' ) {
79
+ return true;
80
+ }
81
 
82
+ return false;
83
  }
84
 
85
  /**
156
  * @param {Object} fontObject The font object.
157
  */
158
  addGoogleFontToHead( fontFamily, fontObject ) {
159
+ if ( ! fontFamily || ! fontObject ) {
160
  return;
161
  }
162
 
192
  },
193
  ];
194
 
195
+ if ( ! this.isSystemFont( fontID ) && ! this.isCustomFont( fontID ) ) {
196
  const fontObject = this.getFontObject( fontID.replace( /\+/g, ' ' ) );
197
  variantOptions = this.getVariantsForSelect( fontObject );
198
  this.addGoogleFontToHead( fontID, fontObject );
changelog.txt CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  = 2.1.9 =
2
 
3
  * Fix minor javascript error
1
+ = 2.2.0 =
2
+
3
+ * Performance improvements
4
+ * Add easy access links in wp-admin
5
+
6
  = 2.1.9 =
7
 
8
  * Fix minor javascript error
class-olympus-google-fonts.php CHANGED
@@ -39,6 +39,10 @@ class Olympus_Google_Fonts {
39
  */
40
  public function includes() {
41
 
 
 
 
 
42
  // Required files for building the Google Fonts URL.
43
  include OGF_DIR_PATH . 'includes/functions.php';
44
  include OGF_DIR_PATH . 'includes/class-ogf-fonts.php';
@@ -84,7 +88,7 @@ class Olympus_Google_Fonts {
84
 
85
  $fonts = new OGF_Fonts();
86
 
87
- if ( $fonts->has_custom_fonts() ) {
88
  $url = $fonts->build_url();
89
  wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
90
 
@@ -123,6 +127,7 @@ class Olympus_Google_Fonts {
123
 
124
  wp_localize_script( 'ogf-customize-controls', 'ogf_font_array', ogf_fonts_array() );
125
  wp_localize_script( 'ogf-customize-controls', 'ogf_system_fonts', ogf_system_fonts() );
 
126
  wp_localize_script( 'ogf-customize-controls', 'ogf_font_variants', ogf_font_variants() );
127
  }
128
 
@@ -137,6 +142,7 @@ class Olympus_Google_Fonts {
137
 
138
  wp_localize_script( 'ogf-customize-preview', 'ogf_elements', $elements );
139
  wp_localize_script( 'ogf-customize-preview', 'ogf_system_fonts', ogf_system_fonts() );
 
140
 
141
  }
142
 
39
  */
40
  public function includes() {
41
 
42
+ // Custom uploads functionality.
43
+ require OGF_DIR_PATH . 'includes/class-ogf-fonts-taxonomy.php';
44
+ require OGF_DIR_PATH . 'admin/class-ogf-upload-fonts-screen.php';
45
+
46
  // Required files for building the Google Fonts URL.
47
  include OGF_DIR_PATH . 'includes/functions.php';
48
  include OGF_DIR_PATH . 'includes/class-ogf-fonts.php';
88
 
89
  $fonts = new OGF_Fonts();
90
 
91
+ if ( $fonts->has_google_fonts() ) {
92
  $url = $fonts->build_url();
93
  wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
94
 
127
 
128
  wp_localize_script( 'ogf-customize-controls', 'ogf_font_array', ogf_fonts_array() );
129
  wp_localize_script( 'ogf-customize-controls', 'ogf_system_fonts', ogf_system_fonts() );
130
+ wp_localize_script( 'ogf-customize-controls', 'ogf_custom_fonts', ogf_custom_fonts() );
131
  wp_localize_script( 'ogf-customize-controls', 'ogf_font_variants', ogf_font_variants() );
132
  }
133
 
142
 
143
  wp_localize_script( 'ogf-customize-preview', 'ogf_elements', $elements );
144
  wp_localize_script( 'ogf-customize-preview', 'ogf_system_fonts', ogf_system_fonts() );
145
+ wp_localize_script( 'ogf-customize-preview', 'ogf_custom_fonts', ogf_custom_fonts() );
146
 
147
  }
148
 
includes/class-ogf-classic-editor.php CHANGED
@@ -32,10 +32,9 @@ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
32
  * Class constructor.
33
  */
34
  public function __construct() {
 
35
  $this->ogf_fonts = new OGF_Fonts();
36
- if ( ! $this->ogf_fonts->has_custom_fonts() ) {
37
- return;
38
- }
39
  add_filter( 'mce_buttons', array( $this, 'tinymce_add_buttons' ), 1 );
40
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_custom_options' ) );
41
  add_filter( 'ogf_classic_font_formats', array( $this, 'tinymce_add_fonts' ) );
@@ -64,6 +63,20 @@ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
64
  $base_type = get_theme_mod( 'ogf_body_font' );
65
  $headings_type = get_theme_mod( 'ogf_headings_font' );
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  $opt['font_formats'] = apply_filters( 'ogf_classic_font_formats', 'Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;' );
68
 
69
  if ( ! isset( $opt['content_style'] ) ) {
@@ -77,6 +90,7 @@ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
77
  $opt['content_style'] .= '#tinymce h1, #tinymce h2, #tinymce h3, #tinymce h4, #tinymce h5, #tinymce h6 { font-family: ' . $headings_type . ' !important; }';
78
  }
79
 
 
80
  return $opt;
81
  }
82
 
@@ -89,7 +103,13 @@ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
89
  $new_default = '';
90
  $choices = $this->ogf_fonts->choices;
91
  foreach ( array_unique( $choices ) as $font ) {
92
- if ( ! ogf_is_system_font( $font ) ) {
 
 
 
 
 
 
93
  $new_default .= $this->ogf_fonts->get_font_name( $font ) . '=' . $this->ogf_fonts->get_font_name( $font ) . ';';
94
  }
95
  }
@@ -102,7 +122,7 @@ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
102
  */
103
  public function google_fonts_enqueue() {
104
  global $editor_styles;
105
- if ( $this->ogf_fonts->has_custom_fonts() ) {
106
  $editor_styles[] = $this->ogf_fonts->build_url();
107
  }
108
  }
32
  * Class constructor.
33
  */
34
  public function __construct() {
35
+
36
  $this->ogf_fonts = new OGF_Fonts();
37
+
 
 
38
  add_filter( 'mce_buttons', array( $this, 'tinymce_add_buttons' ), 1 );
39
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_custom_options' ) );
40
  add_filter( 'ogf_classic_font_formats', array( $this, 'tinymce_add_fonts' ) );
63
  $base_type = get_theme_mod( 'ogf_body_font' );
64
  $headings_type = get_theme_mod( 'ogf_headings_font' );
65
 
66
+ if ( ogf_is_custom_font( $base_type ) ) {
67
+ $base_type = str_replace( 'cf-', '', $base_type );
68
+ }
69
+ if ( ogf_is_custom_font( $headings_type ) ) {
70
+ $headings_type = str_replace( 'cf-', '', $headings_type );
71
+ }
72
+
73
+ if ( ogf_is_system_font( $base_type ) ) {
74
+ $base_type = str_replace( 'cf-', '', $base_type );
75
+ }
76
+ if ( ogf_is_system_font( $headings_type ) ) {
77
+ $headings_type = str_replace( 'cf-', '', $headings_type );
78
+ }
79
+
80
  $opt['font_formats'] = apply_filters( 'ogf_classic_font_formats', 'Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;' );
81
 
82
  if ( ! isset( $opt['content_style'] ) ) {
90
  $opt['content_style'] .= '#tinymce h1, #tinymce h2, #tinymce h3, #tinymce h4, #tinymce h5, #tinymce h6 { font-family: ' . $headings_type . ' !important; }';
91
  }
92
 
93
+ $opt['content_style'] .= render_custom_font_css();
94
  return $opt;
95
  }
96
 
103
  $new_default = '';
104
  $choices = $this->ogf_fonts->choices;
105
  foreach ( array_unique( $choices ) as $font ) {
106
+ if ( ogf_is_system_font( $font ) ) {
107
+ // do nothing.
108
+ } elseif ( ogf_is_custom_font( $font ) ) {
109
+ $fonts = ogf_custom_fonts();
110
+ $font = str_replace( 'cf-', '', $font );
111
+ $new_default .= $fonts[ $font ]['label'] . '=' . $fonts[ $font ]['stack'] . ';';
112
+ } else {
113
  $new_default .= $this->ogf_fonts->get_font_name( $font ) . '=' . $this->ogf_fonts->get_font_name( $font ) . ';';
114
  }
115
  }
122
  */
123
  public function google_fonts_enqueue() {
124
  global $editor_styles;
125
+ if ( $this->ogf_fonts->has_google_fonts() ) {
126
  $editor_styles[] = $this->ogf_fonts->build_url();
127
  }
128
  }
includes/class-ogf-fonts-taxonomy.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Custom Fonts Upload Taxonomy
4
+ *
5
+ * @package olympus-google-fonts
6
+ */
7
+
8
+ /**
9
+ * OGF_Fonts_Taxonomy
10
+ */
11
+ class OGF_Fonts_Taxonomy {
12
+ /**
13
+ * Instance of OGF_Fonts_Taxonomy
14
+ *
15
+ * @var (Object) OGF_Fonts_Taxonomy
16
+ */
17
+ private static $instance = null;
18
+
19
+ /**
20
+ * Fonts
21
+ *
22
+ * @var (string) $fonts
23
+ */
24
+ public static $fonts = null;
25
+
26
+ /**
27
+ * Capability required for this menu to be displayed
28
+ *
29
+ * @var (string) $capability
30
+ */
31
+ public static $capability = 'edit_theme_options';
32
+
33
+ /**
34
+ * Register Taxonomy
35
+ *
36
+ * @var (string) $register_taxonomy
37
+ */
38
+ public static $taxonomy_slug = 'ogf_custom_fonts';
39
+
40
+ /**
41
+ * Instance of OGF_Fonts_Taxonomy.
42
+ *
43
+ * @return object Class object.
44
+ */
45
+ public static function get_instance() {
46
+ if ( ! isset( self::$instance ) ) {
47
+ self::$instance = new self();
48
+ }
49
+
50
+ return self::$instance;
51
+ }
52
+
53
+ /**
54
+ * Constructor.
55
+ */
56
+ public function __construct() {
57
+ $this->register_fonts_taxonomy();
58
+ }
59
+
60
+ /**
61
+ * Register custom font taxonomy
62
+ */
63
+ public function register_fonts_taxonomy() {
64
+ $labels = array(
65
+ 'name' => __( 'Custom Fonts', 'olympus-google-fonts' ),
66
+ 'singular_name' => __( 'Font', 'olympus-google-fonts' ),
67
+ 'menu_name' => _x( 'Custom Fonts', 'Admin menu name', 'olympus-google-fonts' ),
68
+ 'search_items' => __( 'Search Fonts', 'olympus-google-fonts' ),
69
+ 'all_items' => __( 'All Fonts', 'olympus-google-fonts' ),
70
+ 'parent_item' => __( 'Parent Font', 'olympus-google-fonts' ),
71
+ 'parent_item_colon' => __( 'Parent Font:', 'olympus-google-fonts' ),
72
+ 'edit_item' => __( 'Edit Font', 'olympus-google-fonts' ),
73
+ 'update_item' => __( 'Update Font', 'olympus-google-fonts' ),
74
+ 'add_new_item' => __( 'Add New Font', 'olympus-google-fonts' ),
75
+ 'new_item_name' => __( 'New Font Name', 'olympus-google-fonts' ),
76
+ 'not_found' => __( 'No fonts found', 'olympus-google-fonts' ),
77
+ );
78
+
79
+ $args = array(
80
+ 'hierarchical' => false,
81
+ 'labels' => $labels,
82
+ 'public' => false,
83
+ 'show_in_nav_menus' => false,
84
+ 'show_ui' => true,
85
+ 'capabilities' => array( self::$capability ),
86
+ 'query_var' => false,
87
+ 'rewrite' => false,
88
+ );
89
+
90
+ register_taxonomy(
91
+ self::$taxonomy_slug,
92
+ array(),
93
+ $args
94
+ );
95
+ }
96
+
97
+ /**
98
+ * Default fonts
99
+ *
100
+ * @param array $fonts fonts array of fonts.
101
+ */
102
+ protected static function default_args( $fonts ) {
103
+ return wp_parse_args(
104
+ $fonts,
105
+ array(
106
+ 'woff' => '',
107
+ 'woff2' => '',
108
+ 'ttf' => '',
109
+ 'otf' => '',
110
+ )
111
+ );
112
+ }
113
+
114
+ /**
115
+ * Get fonts
116
+ *
117
+ * @return array $fonts fonts array of fonts.
118
+ */
119
+ public static function get_fonts() {
120
+
121
+ if ( is_null( self::$fonts ) ) {
122
+ self::$fonts = array();
123
+
124
+ $terms = get_terms(
125
+ self::$taxonomy_slug,
126
+ array(
127
+ 'hide_empty' => false,
128
+ )
129
+ );
130
+
131
+ if ( ! empty( $terms ) ) {
132
+ foreach ( $terms as $term ) {
133
+ self::$fonts[ $term->slug ]['id'] = $term->slug;
134
+ self::$fonts[ $term->slug ]['label'] = $term->name;
135
+ self::$fonts[ $term->slug ]['stack'] = $term->slug;
136
+ self::$fonts[ $term->slug ]['files'] = self::get_font_links( $term->term_id );
137
+ }
138
+ }
139
+ }
140
+ return self::$fonts;
141
+ }
142
+
143
+ /**
144
+ * Get font data from name
145
+ *
146
+ * @param string $name custom font name.
147
+ * @return array $font_links custom font data.
148
+ */
149
+ public static function get_links_by_name( $name ) {
150
+
151
+ $terms = get_terms(
152
+ self::$taxonomy_slug,
153
+ array(
154
+ 'hide_empty' => false,
155
+ )
156
+ );
157
+
158
+ $font_links = array();
159
+
160
+ if ( ! empty( $terms ) ) {
161
+
162
+ foreach ( $terms as $term ) {
163
+ if ( $term->name == $name ) {
164
+ $font_links[ $term->slug ] = self::get_font_links( $term->term_id );
165
+ }
166
+ }
167
+ }
168
+
169
+ return $font_links;
170
+
171
+ }
172
+
173
+ /**
174
+ * Get font links
175
+ *
176
+ * @param int $term_id custom font term id.
177
+ * @return array $links custom font data links.
178
+ */
179
+ public static function get_font_links( $term_id ) {
180
+ $links = get_option( 'taxonomy_' . self::$taxonomy_slug . "_{$term_id}", array() );
181
+ return self::default_args( $links );
182
+ }
183
+
184
+ /**
185
+ * Update font data from name
186
+ *
187
+ * @param array $posted custom font data.
188
+ * @param int $term_id custom font term id.
189
+ */
190
+ public static function update_font_links( $posted, $term_id ) {
191
+
192
+ $links = self::get_font_links( $term_id );
193
+ foreach ( array_keys( $links ) as $key ) {
194
+ if ( isset( $posted[ $key ] ) ) {
195
+ $links[ $key ] = $posted[ $key ];
196
+ } else {
197
+ $links[ $key ] = '';
198
+ }
199
+ }
200
+ update_option( 'taxonomy_' . self::$taxonomy_slug . "_{$term_id}", $links );
201
+ }
202
+
203
+ }
204
+
205
+ OGF_Fonts_Taxonomy::get_instance();
includes/class-ogf-fonts.php CHANGED
@@ -17,7 +17,7 @@ class OGF_Fonts {
17
  *
18
  * @var array
19
  */
20
- public $google_fonts = array();
21
 
22
  /**
23
  * The users font choices.
@@ -31,7 +31,7 @@ class OGF_Fonts {
31
  */
32
  public function __construct() {
33
 
34
- $this->google_fonts = ogf_fonts_array();
35
  $this->get_choices();
36
 
37
  }
@@ -85,7 +85,11 @@ class OGF_Fonts {
85
  */
86
  public function get_font_weights( $font_id ) {
87
 
88
- $weights = $this->google_fonts[ $font_id ]['v'];
 
 
 
 
89
 
90
  unset( $weights['0'] );
91
 
@@ -104,21 +108,30 @@ class OGF_Fonts {
104
  */
105
  public function get_font_name( $font_id ) {
106
 
107
- return $this->google_fonts[ $font_id ]['f'];
108
 
109
  }
110
 
111
  /**
112
- * Helper to check if the user is using any Google fonts.
113
  */
114
  public function has_custom_fonts() {
115
 
 
 
 
 
 
 
 
 
 
116
  if ( empty( $this->choices ) ) {
117
  return false;
118
  }
119
 
120
  foreach ( $this->choices as $choice ) {
121
- if ( ! ogf_is_system_font( $choice ) ) {
122
  return true;
123
  }
124
  }
@@ -167,23 +180,23 @@ class OGF_Fonts {
167
  foreach ( $fonts as $font_id ) {
168
 
169
  // Check the users choice is a real font.
170
- if ( array_key_exists( $font_id, $this->google_fonts ) ) {
171
 
172
- $font_id_for_url = $this->get_font_id( $this->google_fonts[ $font_id ]['f'] );
173
 
174
- $weights = $this->filter_selected_weights( $font_id, $this->google_fonts[ $font_id ]['v'] );
175
 
176
  $families[] = $font_id_for_url . ':' . implode( ',', array_keys( $weights ) );
177
 
178
  }
179
  }
180
 
181
- $query_args = array(
182
- 'family' => implode( '|', $families ),
183
- 'display' => 'swap',
184
- );
185
 
186
- return add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
187
 
188
  }
189
 
17
  *
18
  * @var array
19
  */
20
+ public static $google_fonts = array();
21
 
22
  /**
23
  * The users font choices.
31
  */
32
  public function __construct() {
33
 
34
+ self::$google_fonts = ogf_fonts_array();
35
  $this->get_choices();
36
 
37
  }
85
  */
86
  public function get_font_weights( $font_id ) {
87
 
88
+ $weights = self::$google_fonts[ $font_id ]['v'];
89
+
90
+ if ( ! is_array( $weights ) ) {
91
+ return array();
92
+ }
93
 
94
  unset( $weights['0'] );
95
 
108
  */
109
  public function get_font_name( $font_id ) {
110
 
111
+ return self::$google_fonts[ $font_id ]['f'];
112
 
113
  }
114
 
115
  /**
116
+ * DEPRECATED use has_google_fonts() instead.
117
  */
118
  public function has_custom_fonts() {
119
 
120
+ return $this->has_google_fonts();
121
+
122
+ }
123
+
124
+ /**
125
+ * Helper to check if the user is using any Google fonts.
126
+ */
127
+ public function has_google_fonts() {
128
+
129
  if ( empty( $this->choices ) ) {
130
  return false;
131
  }
132
 
133
  foreach ( $this->choices as $choice ) {
134
+ if ( ! ogf_is_system_font( $choice ) && ! ogf_is_custom_font( $choice ) ) {
135
  return true;
136
  }
137
  }
180
  foreach ( $fonts as $font_id ) {
181
 
182
  // Check the users choice is a real font.
183
+ if ( array_key_exists( $font_id, self::$google_fonts ) ) {
184
 
185
+ $font_id_for_url = $this->get_font_id( self::$google_fonts[ $font_id ]['f'] );
186
 
187
+ $weights = $this->filter_selected_weights( $font_id, self::$google_fonts[ $font_id ]['v'] );
188
 
189
  $families[] = $font_id_for_url . ':' . implode( ',', array_keys( $weights ) );
190
 
191
  }
192
  }
193
 
194
+ $query_args = array(
195
+ 'family' => implode( '|', $families ),
196
+ 'display' => 'swap',
197
+ );
198
 
199
+ return add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
200
 
201
  }
202
 
includes/class-ogf-welcome.php CHANGED
@@ -86,7 +86,7 @@ if ( ! class_exists( 'OGF_Welcome' ) ) :
86
  }
87
  ?>
88
 
89
- <div class="notice notice-<?php echo esc_attr( $this->type ); ?> is-dismissible notice-dismiss-dc" data-notice="<?php echo esc_attr( $this->slug ); ?>">
90
  <p>
91
  <?php
92
  echo $this->message; // WPCS: XSS ok.
86
  }
87
  ?>
88
 
89
+ <div class="notice notice-<?php echo esc_attr( $this->type ); ?> is-dismissible notice-dismiss-dc" data-notice="<?php echo esc_attr( $this->slug ); ?>">
90
  <p>
91
  <?php
92
  echo $this->message; // WPCS: XSS ok.
includes/customizer/controls/class-ogf-customize-typography-control.php CHANGED
@@ -128,7 +128,7 @@ class OGF_Customize_Typography_Control extends WP_Customize_Control {
128
  <option value="default">
129
  <?php esc_html_e( 'Default Font', 'olympus-google-fonts' ); ?>
130
  </option>
131
- <# if ( typeof ogf_custom_fonts !== "undefined" ) { #>
132
  <option disabled><?php esc_html_e( '- Custom Fonts -', 'olympus-google-fonts' ); ?></option>
133
  <# _.each( ogf_custom_fonts, function( font_data, font_id ) { #>
134
  <option value="cf-{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.label }}</option>
@@ -258,7 +258,7 @@ class OGF_Customize_Typography_Control extends WP_Customize_Control {
258
  return $all_variants;
259
  }
260
 
261
- if ( ogf_is_system_font( $font ) ) {
262
  return array(
263
  '0' => esc_html__( '- Default -', 'olympus-google-fonts' ),
264
  '400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
128
  <option value="default">
129
  <?php esc_html_e( 'Default Font', 'olympus-google-fonts' ); ?>
130
  </option>
131
+ <# if ( ! _.isEmpty( ogf_custom_fonts ) ) { #>
132
  <option disabled><?php esc_html_e( '- Custom Fonts -', 'olympus-google-fonts' ); ?></option>
133
  <# _.each( ogf_custom_fonts, function( font_data, font_id ) { #>
134
  <option value="cf-{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.label }}</option>
258
  return $all_variants;
259
  }
260
 
261
+ if ( ogf_is_system_font( $font ) || ogf_is_custom_font( $font ) ) {
262
  return array(
263
  '0' => esc_html__( '- Default -', 'olympus-google-fonts' ),
264
  '400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
includes/customizer/controls/class-ogf-customize-upsell-control.php CHANGED
@@ -37,7 +37,7 @@ class OGF_Customize_Upsell_Control extends WP_Customize_Control {
37
  <li>✅ Unlock Font Size & Color</li>
38
  <li>📦 Host Fonts Locally</li>
39
  <li>⚡️ Optimized Font Loading</li>
40
- <li>🧙‍ Custom Elements</li>
41
  </ul>
42
  <a class="upsell__button button button-primary" href="https://fontsplugin.com/pro-upgrade/?utm_source=plugin&utm_medium=customizer&utm_campaign=<?php echo esc_attr( $this->section ); ?>" target="_blank">Learn More</a>
43
  </div>
37
  <li>✅ Unlock Font Size & Color</li>
38
  <li>📦 Host Fonts Locally</li>
39
  <li>⚡️ Optimized Font Loading</li>
40
+ <li>🧙‍ Upload Custom Fonts</li>
41
  </ul>
42
  <a class="upsell__button button button-primary" href="https://fontsplugin.com/pro-upgrade/?utm_source=plugin&utm_medium=customizer&utm_campaign=<?php echo esc_attr( $this->section ); ?>" target="_blank">Learn More</a>
43
  </div>
includes/customizer/output-css.php CHANGED
@@ -17,6 +17,7 @@ function ogf_output_css() {
17
  <?php
18
 
19
  do_action( 'ogf_inline_styles' );
 
20
 
21
  foreach ( ogf_get_elements() as $id => $values ) {
22
  ogf_generate_css( $values['selectors'], $id );
@@ -24,6 +25,8 @@ function ogf_output_css() {
24
  foreach ( ogf_get_custom_elements() as $id => $values ) {
25
  ogf_generate_css( $values['selectors'], $id );
26
  }
 
 
27
  ?>
28
  </style>
29
  <!-- Fonts Plugin CSS -->
@@ -33,6 +36,43 @@ function ogf_output_css() {
33
  // Output custom CSS to live site.
34
  add_action( 'wp_head', 'ogf_output_css', 1000 );
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  /**
37
  * Helper function to build the CSS styles.
38
  *
@@ -146,24 +186,36 @@ function ogf_generate_css( $selector, $option_name ) {
146
  */
147
  function ogf_build_font_stack( $font_id ) {
148
 
149
- $google_fonts = ogf_fonts_array();
150
 
151
- if ( array_key_exists( $font_id, $google_fonts ) ) {
152
 
153
- $stack = '"' . $google_fonts[ $font_id ]['f'] . '"';
154
 
155
- return $stack;
156
 
157
- }
 
 
 
158
 
159
- $system_fonts = ogf_system_fonts();
160
 
161
- $font_id = str_replace( 'sf-', '', $font_id );
162
 
163
- if ( array_key_exists( $font_id, $system_fonts ) ) {
 
 
 
164
 
165
- return $system_fonts[ $font_id ]['stack'];
166
 
 
 
 
 
 
 
167
  }
168
 
169
  }
17
  <?php
18
 
19
  do_action( 'ogf_inline_styles' );
20
+ echo render_custom_font_css();
21
 
22
  foreach ( ogf_get_elements() as $id => $values ) {
23
  ogf_generate_css( $values['selectors'], $id );
25
  foreach ( ogf_get_custom_elements() as $id => $values ) {
26
  ogf_generate_css( $values['selectors'], $id );
27
  }
28
+
29
+
30
  ?>
31
  </style>
32
  <!-- Fonts Plugin CSS -->
36
  // Output custom CSS to live site.
37
  add_action( 'wp_head', 'ogf_output_css', 1000 );
38
 
39
+ /**
40
+ *
41
+ */
42
+ function render_custom_font_css() {
43
+ $fonts = OGF_Fonts_Taxonomy::get_fonts();
44
+
45
+ $css = '';
46
+
47
+ foreach ( $fonts as $font => $data ) {
48
+
49
+ $files = $data['files'];
50
+
51
+ if ( $files['woff'] || $files['woff2'] || $files['ttf'] || $files['otf'] ) {
52
+
53
+ $arr = array();
54
+ $css .= '@font-face { font-family:' . esc_attr( $font ) . '; src:';
55
+ if ( $data['files']['woff'] ) {
56
+ $arr[] = 'url(' . esc_url( $data['files']['woff'] ) . ") format('woff')";
57
+ }
58
+ if ( $data['files']['woff2'] ) {
59
+ $arr[] = 'url(' . esc_url( $data['files']['woff2'] ) . ") format('woff2')";
60
+ }
61
+ if ( $data['files']['ttf'] ) {
62
+ $arr[] = 'url(' . esc_url( $data['files']['ttf'] ) . ") format('truetype')";
63
+ }
64
+ if ( $data['files']['otf'] ) {
65
+ $arr[] = 'url(' . esc_url( $data['files']['otf'] ) . ") format('opentype')";
66
+ }
67
+ $css .= join( ', ', $arr );
68
+ $css .= '; }';
69
+ }
70
+ }
71
+
72
+ return $css;
73
+
74
+ }
75
+
76
  /**
77
  * Helper function to build the CSS styles.
78
  *
186
  */
187
  function ogf_build_font_stack( $font_id ) {
188
 
189
+ if ( strpos( $font_id, 'sf-' ) !== false ) {
190
 
191
+ $system_fonts = ogf_system_fonts();
192
 
193
+ $font_id = str_replace( 'sf-', '', $font_id );
194
 
195
+ if ( array_key_exists( $font_id, $system_fonts ) ) {
196
 
197
+ return $system_fonts[ $font_id ]['stack'];
198
+
199
+ }
200
+ } elseif ( strpos( $font_id, 'cf-' ) !== false ) {
201
 
202
+ $custom_fonts = ogf_custom_fonts();
203
 
204
+ $font_id = str_replace( 'cf-', '', $font_id );
205
 
206
+ if ( array_key_exists( $font_id, $custom_fonts ) ) {
207
+ return $custom_fonts[ $font_id ]['stack'];
208
+ }
209
+ } else {
210
 
211
+ $google_fonts = ogf_fonts_array();
212
 
213
+ if ( array_key_exists( $font_id, $google_fonts ) ) {
214
+
215
+ $stack = '"' . $google_fonts[ $font_id ]['f'] . '"';
216
+
217
+ return $stack;
218
+ }
219
  }
220
 
221
  }
includes/customizer/settings.php CHANGED
@@ -185,7 +185,7 @@ function ogf_customize_register( $wp_customize ) {
185
  // Build the selective font loading controls.
186
  foreach ( $choices as $font_id ) {
187
 
188
- if ( ogf_is_system_font( $font_id ) ) {
189
  return;
190
  }
191
 
185
  // Build the selective font loading controls.
186
  foreach ( $choices as $font_id ) {
187
 
188
+ if ( ogf_is_system_font( $font_id ) || ogf_is_custom_font( $font_id ) ) {
189
  return;
190
  }
191
 
includes/functions.php CHANGED
@@ -190,6 +190,16 @@ function ogf_fonts_array() {
190
  return $fonts;
191
  }
192
 
 
 
 
 
 
 
 
 
 
 
193
  /**
194
  * Return a array of system fonts.
195
  */
@@ -316,3 +326,15 @@ function ogf_is_system_font( $font_id ) {
316
  }
317
  return false;
318
  }
 
 
 
 
 
 
 
 
 
 
 
 
190
  return $fonts;
191
  }
192
 
193
+ /**
194
+ * Return a array of custom fonts.
195
+ */
196
+ function ogf_custom_fonts() {
197
+
198
+ return OGF_Fonts_Taxonomy::get_fonts();
199
+
200
+ }
201
+
202
+
203
  /**
204
  * Return a array of system fonts.
205
  */
326
  }
327
  return false;
328
  }
329
+
330
+ /**
331
+ * Check if a font is a custom font (not Google Font).
332
+ *
333
+ * @param string $font_id The ID of the font to check.
334
+ */
335
+ function ogf_is_custom_font( $font_id ) {
336
+ if ( strpos( $font_id, 'cf-' ) === 0 ) {
337
+ return true;
338
+ }
339
+ return false;
340
+ }
includes/gutenberg/output-css.php CHANGED
@@ -14,7 +14,7 @@ function ogf_gutenberg_enqueue_fonts() {
14
 
15
  $fonts = new OGF_Fonts();
16
 
17
- if ( $fonts->has_custom_fonts() ) {
18
  $url = $fonts->build_url();
19
  wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
20
 
14
 
15
  $fonts = new OGF_Fonts();
16
 
17
+ if ( $fonts->has_google_fonts() ) {
18
  $url = $fonts->build_url();
19
  wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
20
 
olympus-google-fonts.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin Name: Fonts Plugin | Google Fonts Typography
6
  * Plugin URI: https://wordpress.org/plugins/olympus-google-fonts/
7
  * Description: The easiest to use Google Fonts typography plugin. No coding required. 900+ font choices.
8
- * Version: 2.1.9
9
  * Author: Fonts Plugin
10
  * Author URI: https://fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=description
11
  * Text Domain: olympus-google-fonts
@@ -18,13 +18,13 @@
18
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
19
  */
20
 
21
- define( 'OGF_VERSION', '2.1.9' );
22
  define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
24
 
25
  require OGF_DIR_PATH . 'class-olympus-google-fonts.php';
26
  require OGF_DIR_PATH . 'blocks/init.php';
27
- require OGF_DIR_PATH . 'admin/welcome.php';
28
 
29
  $gfwp = new Olympus_Google_Fonts();
30
 
5
  * Plugin Name: Fonts Plugin | Google Fonts Typography
6
  * Plugin URI: https://wordpress.org/plugins/olympus-google-fonts/
7
  * Description: The easiest to use Google Fonts typography plugin. No coding required. 900+ font choices.
8
+ * Version: 2.2.0
9
  * Author: Fonts Plugin
10
  * Author URI: https://fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=description
11
  * Text Domain: olympus-google-fonts
18
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
19
  */
20
 
21
+ define( 'OGF_VERSION', '2.2.0' );
22
  define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
24
 
25
  require OGF_DIR_PATH . 'class-olympus-google-fonts.php';
26
  require OGF_DIR_PATH . 'blocks/init.php';
27
+ require OGF_DIR_PATH . 'admin/class-ogf-welcome-screen.php';
28
 
29
  $gfwp = new Olympus_Google_Fonts();
30
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://fontsplugin.com/#pricing
5
  Requires at least: 4.0
6
  Tested up to: 5.5
7
  License: GPLv2 or later
8
- Stable tag: 2.1.9
9
 
10
  The easiest to use Google Fonts Typography Plugin. No coding required. 900+ font choices.
11
 
5
  Requires at least: 4.0
6
  Tested up to: 5.5
7
  License: GPLv2 or later
8
+ Stable tag: 2.2.0
9
 
10
  The easiest to use Google Fonts Typography Plugin. No coding required. 900+ font choices.
11