Version Description
- Support for the Block Editor (Gutenberg)
Download this release
Release Info
Developer | markjaquith |
Plugin | ![]() |
Version | 3.1.0 |
Comparing to | |
See all releases |
Code changes from version 3.0.1 to 3.1.0
- classes/plugin.php +169 -57
- css/quick-add.css +1 -1
- css/quick-add.css.map +1 -1
- cypress.env.json +4 -0
- cypress.json +3 -0
- js/clipboard.min.js +2 -2
- js/gutenberg.jsx +144 -0
- js/gutenberg.min.js +206 -0
- js/meta-box.min.js +28 -2
- js/new-tab.min.js +26 -2
- js/quick-add.jsx +21 -2
- js/quick-add.min.js +234 -2
- package-lock.json +7501 -8546
- page-links-to.php +1 -1
- phpcs.xml +27 -0
- readme.txt +5 -2
- templates/quick-add.php +0 -5
classes/plugin.php
CHANGED
@@ -1,4 +1,10 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
defined( 'WPINC' ) or die;
|
3 |
|
4 |
/**
|
@@ -25,7 +31,7 @@ class CWS_PageLinksTo {
|
|
25 |
const DISMISSED_NOTICES = 'page_links_dismissed_options';
|
26 |
const MESSAGE_ID = 4;
|
27 |
const NEWSLETTER_URL = 'https://pages.convertkit.com/8eb23c1339/1ce4614706';
|
28 |
-
const CSS_JS_VERSION = '3.
|
29 |
|
30 |
/**
|
31 |
* Whether to replace WP links with their specified URLs.
|
@@ -58,6 +64,12 @@ class CWS_PageLinksTo {
|
|
58 |
return self::$instance;
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
public function get_file() {
|
62 |
return $this->file;
|
63 |
}
|
@@ -69,9 +81,9 @@ class CWS_PageLinksTo {
|
|
69 |
* @return true Will always return true.
|
70 |
*/
|
71 |
public function hook( $hook ) {
|
|
|
72 |
$priority = 10;
|
73 |
$method = self::sanitize_method( $hook );
|
74 |
-
$args = func_get_args();
|
75 |
unset( $args[0] );
|
76 |
foreach ( (array) $args as $arg ) {
|
77 |
if ( is_int( $arg ) ) {
|
@@ -133,9 +145,9 @@ class CWS_PageLinksTo {
|
|
133 |
*/
|
134 |
function register_hooks() {
|
135 |
// Hook in to URL generation.
|
136 |
-
$this->hook( 'page_link',
|
137 |
-
$this->hook( 'post_link',
|
138 |
-
$this->hook( 'post_type_link',
|
139 |
$this->hook( 'attachment_link', 'link', 20 );
|
140 |
|
141 |
// Non-standard priority hooks.
|
@@ -165,15 +177,55 @@ class CWS_PageLinksTo {
|
|
165 |
$this->hook( 'page_row_actions' );
|
166 |
$this->hook( 'post_row_actions', 'page_row_actions' );
|
167 |
|
168 |
-
|
169 |
// Notices.
|
170 |
if ( self::should_display_message() ) {
|
171 |
$this->hook( 'admin_notices', 'notify_generic' );
|
172 |
}
|
173 |
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
}
|
178 |
|
179 |
/**
|
@@ -230,14 +282,21 @@ class CWS_PageLinksTo {
|
|
230 |
*/
|
231 |
public function admin_enqueue_scripts() {
|
232 |
wp_register_script( 'plt-clipboard', $this->get_url() . 'js/clipboard.min.js', array(), self::CSS_JS_VERSION, true );
|
233 |
-
|
234 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
}
|
236 |
|
237 |
/**
|
238 |
* Adds our items to the admin bar.
|
239 |
*
|
240 |
-
* @
|
|
|
241 |
*/
|
242 |
public function admin_bar_menu( $bar ) {
|
243 |
if ( is_admin() ) {
|
@@ -253,7 +312,7 @@ class CWS_PageLinksTo {
|
|
253 |
/**
|
254 |
* Filters the page row actions.
|
255 |
*
|
256 |
-
* @param array
|
257 |
* @param WP_Post $post The current post row being processed.
|
258 |
* @return array The updated array of actions.
|
259 |
*/
|
@@ -265,16 +324,16 @@ class CWS_PageLinksTo {
|
|
265 |
$original_key = 'plt_original';
|
266 |
|
267 |
foreach ( $actions as $key => $html ) {
|
268 |
-
$new_actions
|
269 |
|
270 |
if ( 'view' === $key ) {
|
271 |
$inserted = true;
|
272 |
-
$new_actions
|
273 |
}
|
274 |
}
|
275 |
|
276 |
if ( ! $inserted ) {
|
277 |
-
$new_actions
|
278 |
}
|
279 |
|
280 |
$actions = $new_actions;
|
@@ -306,8 +365,8 @@ class CWS_PageLinksTo {
|
|
306 |
/**
|
307 |
* Returns a single piece of post meta.
|
308 |
*
|
309 |
-
* @param int
|
310 |
-
* @param string
|
311 |
* @return string|false the post meta, or false, if it doesn't exist.
|
312 |
*/
|
313 |
public static function get_post_meta( $post_id, $key ) {
|
@@ -354,7 +413,7 @@ class CWS_PageLinksTo {
|
|
354 |
* @return void
|
355 |
*/
|
356 |
public function do_meta_boxes( $page, $context ) {
|
357 |
-
if ( self::is_supported_post_type( $page ) && 'advanced' === $context ) {
|
358 |
add_meta_box( 'page-links-to', _x( 'Page Links To', 'Meta box title', 'page-links-to' ), array( $this, 'meta_box' ), $page, 'advanced', 'low' );
|
359 |
}
|
360 |
}
|
@@ -366,6 +425,12 @@ class CWS_PageLinksTo {
|
|
366 |
* @return bool Whether this post type supports custom links.
|
367 |
*/
|
368 |
public static function is_supported_post_type( $type ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
/*
|
370 |
Plugins that use custom post types can use this filter to hide the
|
371 |
PLT UI in their post type.
|
@@ -397,7 +462,7 @@ class CWS_PageLinksTo {
|
|
397 |
} else {
|
398 |
$linked = true;
|
399 |
}
|
400 |
-
|
401 |
<p><?php _e( 'Point this content to:', 'page-links-to' ); ?></p>
|
402 |
<p><label><input type="radio" id="cws-links-to-choose-wp" name="cws_links_to_choice" value="wp" <?php checked( ! $linked ); ?> /> <?php _e( 'Its normal WordPress URL', 'page-links-to' ); ?></label></p>
|
403 |
<p><label><input type="radio" id="cws-links-to-choose-custom" name="cws_links_to_choice" value="custom" <?php checked( $linked ); ?> /> <?php _e( 'A custom URL', 'page-links-to' ); ?></label></p>
|
@@ -408,7 +473,7 @@ class CWS_PageLinksTo {
|
|
408 |
</div>
|
409 |
|
410 |
<script src="<?php echo esc_url( $this->get_url() ) . 'js/meta-box.min.js?v=' . self::CSS_JS_VERSION; ?>"></script>
|
411 |
-
|
412 |
}
|
413 |
|
414 |
/**
|
@@ -526,7 +591,7 @@ class CWS_PageLinksTo {
|
|
526 |
if ( $meta_link ) {
|
527 |
$link = apply_filters( 'page_links_to_link', $meta_link, $post, $link );
|
528 |
$link = esc_url( $link );
|
529 |
-
if ( ! is_admin() && self::get_target( $post->ID ) ) {
|
530 |
$link .= '#new_tab';
|
531 |
}
|
532 |
}
|
@@ -567,6 +632,7 @@ class CWS_PageLinksTo {
|
|
567 |
/**
|
568 |
* Retrieves all posts that have a specified custom URL.
|
569 |
*
|
|
|
570 |
* @return array Array of post objects.
|
571 |
*/
|
572 |
public static function get_custom_url_posts( $url ) {
|
@@ -607,9 +673,7 @@ class CWS_PageLinksTo {
|
|
607 |
return false;
|
608 |
}
|
609 |
|
610 |
-
$link = self::get_link( get_queried_object_id() );
|
611 |
-
|
612 |
-
$link = self::absolute_url( $link );
|
613 |
|
614 |
return $link;
|
615 |
}
|
@@ -617,7 +681,7 @@ class CWS_PageLinksTo {
|
|
617 |
/**
|
618 |
* Makes a relative URL into an absolute one.
|
619 |
*
|
620 |
-
* @param string $
|
621 |
* @return string The absolute URL.
|
622 |
*/
|
623 |
public static function absolute_url( $url ) {
|
@@ -643,19 +707,19 @@ class CWS_PageLinksTo {
|
|
643 |
* Filters the list of pages to alter the links and targets.
|
644 |
*
|
645 |
* @param string $output the wp_list_pages() HTML block from WordPress.
|
646 |
-
* @param array
|
647 |
-
* @param array
|
648 |
* @return string the modified HTML block.
|
649 |
*/
|
650 |
function wp_list_pages( $output, $_args = array(), $pages = array() ) {
|
651 |
$highlight = false;
|
652 |
|
653 |
-
$this_url = esc_url_raw( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI
|
654 |
|
655 |
foreach ( (array) $pages as $page ) {
|
656 |
$page_url = self::get_link( $page->ID );
|
657 |
|
658 |
-
if ( $page_url && $this_url === $page_url
|
659 |
$highlight = true;
|
660 |
$current_page = esc_url( $page_url );
|
661 |
$current_page_id = $page->ID;
|
@@ -761,7 +825,6 @@ class CWS_PageLinksTo {
|
|
761 |
*/
|
762 |
public static function should_display_message() {
|
763 |
return false;
|
764 |
-
// return ! self::has_dismissed_notice( self::MESSAGE_ID ) && current_user_can( 'manage_options' );
|
765 |
}
|
766 |
|
767 |
/**
|
@@ -805,29 +868,68 @@ class CWS_PageLinksTo {
|
|
805 |
* @return void
|
806 |
*/
|
807 |
public static function notify_generic() {
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
823 |
});
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
831 |
<?php
|
832 |
}
|
833 |
|
@@ -837,11 +939,21 @@ class CWS_PageLinksTo {
|
|
837 |
* @return void
|
838 |
*/
|
839 |
public static function notify_of_external_link() {
|
840 |
-
|
841 |
-
|
842 |
-
|
|
|
|
|
|
|
|
|
|
|
843 |
}
|
844 |
|
|
|
|
|
|
|
|
|
|
|
845 |
public function edit_form_after_title() {
|
846 |
$this->replace = true;
|
847 |
$post = get_post();
|
@@ -875,7 +987,7 @@ class CWS_PageLinksTo {
|
|
875 |
/**
|
876 |
* Filter the post states to indicate which ones are linked using this plugin.
|
877 |
*
|
878 |
-
* @param array
|
879 |
* @param WP_Post $post The current post object being displayed.
|
880 |
* @return array The modified post states array.
|
881 |
*/
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* The Page Links To plugin.
|
4 |
+
*
|
5 |
+
* @package PageLinksTo
|
6 |
+
*/
|
7 |
+
|
8 |
defined( 'WPINC' ) or die;
|
9 |
|
10 |
/**
|
31 |
const DISMISSED_NOTICES = 'page_links_dismissed_options';
|
32 |
const MESSAGE_ID = 4;
|
33 |
const NEWSLETTER_URL = 'https://pages.convertkit.com/8eb23c1339/1ce4614706';
|
34 |
+
const CSS_JS_VERSION = '3.1.0';
|
35 |
|
36 |
/**
|
37 |
* Whether to replace WP links with their specified URLs.
|
64 |
return self::$instance;
|
65 |
}
|
66 |
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Returns the main plugin file path.
|
70 |
+
*
|
71 |
+
* @return string The main plugin file path.
|
72 |
+
*/
|
73 |
public function get_file() {
|
74 |
return $this->file;
|
75 |
}
|
81 |
* @return true Will always return true.
|
82 |
*/
|
83 |
public function hook( $hook ) {
|
84 |
+
$args = func_get_args();
|
85 |
$priority = 10;
|
86 |
$method = self::sanitize_method( $hook );
|
|
|
87 |
unset( $args[0] );
|
88 |
foreach ( (array) $args as $arg ) {
|
89 |
if ( is_int( $arg ) ) {
|
145 |
*/
|
146 |
function register_hooks() {
|
147 |
// Hook in to URL generation.
|
148 |
+
$this->hook( 'page_link', 'link', 20 );
|
149 |
+
$this->hook( 'post_link', 'link', 20 );
|
150 |
+
$this->hook( 'post_type_link', 'link', 20 );
|
151 |
$this->hook( 'attachment_link', 'link', 20 );
|
152 |
|
153 |
// Non-standard priority hooks.
|
177 |
$this->hook( 'page_row_actions' );
|
178 |
$this->hook( 'post_row_actions', 'page_row_actions' );
|
179 |
|
|
|
180 |
// Notices.
|
181 |
if ( self::should_display_message() ) {
|
182 |
$this->hook( 'admin_notices', 'notify_generic' );
|
183 |
}
|
184 |
|
185 |
+
$post_type_names = array_keys( get_post_types() );
|
186 |
+
|
187 |
+
foreach ( $post_type_names as $type ) {
|
188 |
+
if ( self::is_supported_post_type( $type ) ) {
|
189 |
+
$this->register_meta( self::LINK_META_KEY, $type );
|
190 |
+
$this->register_meta( self::TARGET_META_KEY, $type );
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Registers a post meta key for a given post type.
|
197 |
+
*
|
198 |
+
* @param string $key The key name.
|
199 |
+
* @param string $post_type The post type.
|
200 |
+
* @return boolean Whether the meta key was registered.
|
201 |
+
*/
|
202 |
+
public function register_meta( $key, $post_type ) {
|
203 |
+
return register_meta(
|
204 |
+
'post',
|
205 |
+
$key,
|
206 |
+
array(
|
207 |
+
'object_type' => $post_type,
|
208 |
+
'type' => 'string',
|
209 |
+
'single' => true,
|
210 |
+
'show_in_rest' => true,
|
211 |
+
'auth_callback' => array( $this, 'rest_auth' ),
|
212 |
+
)
|
213 |
+
);
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Determines REST API authentication.
|
218 |
+
*
|
219 |
+
* @param bool $allowed Whether it is allowed.
|
220 |
+
* @param string $meta_key The meta key being checked.
|
221 |
+
* @param int $post_id The post ID being checked.
|
222 |
+
* @param int $user_id The user ID being checked.
|
223 |
+
* @param string $cap The current capability.
|
224 |
+
* @param array $caps All capabilities.
|
225 |
+
* @return bool Whether the user can do it.
|
226 |
+
*/
|
227 |
+
public function rest_auth( $allowed, $meta_key, $post_id, $user_id, $cap, $caps ) {
|
228 |
+
return user_can( $user_id, 'edit_post', $post_id );
|
229 |
}
|
230 |
|
231 |
/**
|
282 |
*/
|
283 |
public function admin_enqueue_scripts() {
|
284 |
wp_register_script( 'plt-clipboard', $this->get_url() . 'js/clipboard.min.js', array(), self::CSS_JS_VERSION, true );
|
285 |
+
|
286 |
+
if ( current_user_can( 'edit_posts' ) ) {
|
287 |
+
wp_enqueue_script( 'plt-quick-add', $this->get_url() . 'js/quick-add.min.js', array( 'plt-clipboard', 'jquery-ui-dialog' ), self::CSS_JS_VERSION, true );
|
288 |
+
wp_enqueue_style( 'plt-quick-add', $this->get_url() . 'css/quick-add.css', array( 'wp-jquery-ui-dialog' ), self::CSS_JS_VERSION );
|
289 |
+
}
|
290 |
+
|
291 |
+
// Gutenberg.
|
292 |
+
wp_enqueue_script( 'plt-gutenberg', $this->get_url() . 'js/gutenberg.min.js', array( 'wp-edit-post', 'wp-element', 'wp-plugins' ), self::CSS_JS_VERSION, true );
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
* Adds our items to the admin bar.
|
297 |
*
|
298 |
+
* @param WP_Admin_Bar $bar The admin bar object.
|
299 |
+
* @return void
|
300 |
*/
|
301 |
public function admin_bar_menu( $bar ) {
|
302 |
if ( is_admin() ) {
|
312 |
/**
|
313 |
* Filters the page row actions.
|
314 |
*
|
315 |
+
* @param array $actions The current array of actions.
|
316 |
* @param WP_Post $post The current post row being processed.
|
317 |
* @return array The updated array of actions.
|
318 |
*/
|
324 |
$original_key = 'plt_original';
|
325 |
|
326 |
foreach ( $actions as $key => $html ) {
|
327 |
+
$new_actions[ $key ] = $html;
|
328 |
|
329 |
if ( 'view' === $key ) {
|
330 |
$inserted = true;
|
331 |
+
$new_actions[ $original_key ] = $original_html;
|
332 |
}
|
333 |
}
|
334 |
|
335 |
if ( ! $inserted ) {
|
336 |
+
$new_actions[ $original_key ] = $original_html;
|
337 |
}
|
338 |
|
339 |
$actions = $new_actions;
|
365 |
/**
|
366 |
* Returns a single piece of post meta.
|
367 |
*
|
368 |
+
* @param int $post_id a post ID.
|
369 |
+
* @param string $key a post meta key.
|
370 |
* @return string|false the post meta, or false, if it doesn't exist.
|
371 |
*/
|
372 |
public static function get_post_meta( $post_id, $key ) {
|
413 |
* @return void
|
414 |
*/
|
415 |
public function do_meta_boxes( $page, $context ) {
|
416 |
+
if ( ! self::is_block_editor() && self::is_supported_post_type( $page ) && 'advanced' === $context ) {
|
417 |
add_meta_box( 'page-links-to', _x( 'Page Links To', 'Meta box title', 'page-links-to' ), array( $this, 'meta_box' ), $page, 'advanced', 'low' );
|
418 |
}
|
419 |
}
|
425 |
* @return bool Whether this post type supports custom links.
|
426 |
*/
|
427 |
public static function is_supported_post_type( $type ) {
|
428 |
+
if ( is_object( $type ) ) {
|
429 |
+
if ( isset( $type->id ) ) {
|
430 |
+
$type = $type->id;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
/*
|
435 |
Plugins that use custom post types can use this filter to hide the
|
436 |
PLT UI in their post type.
|
462 |
} else {
|
463 |
$linked = true;
|
464 |
}
|
465 |
+
?>
|
466 |
<p><?php _e( 'Point this content to:', 'page-links-to' ); ?></p>
|
467 |
<p><label><input type="radio" id="cws-links-to-choose-wp" name="cws_links_to_choice" value="wp" <?php checked( ! $linked ); ?> /> <?php _e( 'Its normal WordPress URL', 'page-links-to' ); ?></label></p>
|
468 |
<p><label><input type="radio" id="cws-links-to-choose-custom" name="cws_links_to_choice" value="custom" <?php checked( $linked ); ?> /> <?php _e( 'A custom URL', 'page-links-to' ); ?></label></p>
|
473 |
</div>
|
474 |
|
475 |
<script src="<?php echo esc_url( $this->get_url() ) . 'js/meta-box.min.js?v=' . self::CSS_JS_VERSION; ?>"></script>
|
476 |
+
<?php
|
477 |
}
|
478 |
|
479 |
/**
|
591 |
if ( $meta_link ) {
|
592 |
$link = apply_filters( 'page_links_to_link', $meta_link, $post, $link );
|
593 |
$link = esc_url( $link );
|
594 |
+
if ( ! is_admin() && ! (defined( 'REST_REQUEST' ) && REST_REQUEST ) && self::get_target( $post->ID ) ) {
|
595 |
$link .= '#new_tab';
|
596 |
}
|
597 |
}
|
632 |
/**
|
633 |
* Retrieves all posts that have a specified custom URL.
|
634 |
*
|
635 |
+
* @param string $url The URL to check.
|
636 |
* @return array Array of post objects.
|
637 |
*/
|
638 |
public static function get_custom_url_posts( $url ) {
|
673 |
return false;
|
674 |
}
|
675 |
|
676 |
+
$link = self::absolute_url( self::get_link( get_queried_object_id() ) );
|
|
|
|
|
677 |
|
678 |
return $link;
|
679 |
}
|
681 |
/**
|
682 |
* Makes a relative URL into an absolute one.
|
683 |
*
|
684 |
+
* @param string $url The relative URL.
|
685 |
* @return string The absolute URL.
|
686 |
*/
|
687 |
public static function absolute_url( $url ) {
|
707 |
* Filters the list of pages to alter the links and targets.
|
708 |
*
|
709 |
* @param string $output the wp_list_pages() HTML block from WordPress.
|
710 |
+
* @param array $_args (Unused) the arguments passed to `wp_list_pages()`.
|
711 |
+
* @param array $pages Array of WP_Post objects.
|
712 |
* @return string the modified HTML block.
|
713 |
*/
|
714 |
function wp_list_pages( $output, $_args = array(), $pages = array() ) {
|
715 |
$highlight = false;
|
716 |
|
717 |
+
$this_url = esc_url_raw( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) );
|
718 |
|
719 |
foreach ( (array) $pages as $page ) {
|
720 |
$page_url = self::get_link( $page->ID );
|
721 |
|
722 |
+
if ( $page_url && $this_url === $page_url ) {
|
723 |
$highlight = true;
|
724 |
$current_page = esc_url( $page_url );
|
725 |
$current_page_id = $page->ID;
|
825 |
*/
|
826 |
public static function should_display_message() {
|
827 |
return false;
|
|
|
828 |
}
|
829 |
|
830 |
/**
|
868 |
* @return void
|
869 |
*/
|
870 |
public static function notify_generic() {
|
871 |
+
if ( self::is_block_editor() ) {
|
872 |
+
// Nothing right now.
|
873 |
+
} else {
|
874 |
+
?>
|
875 |
+
<div id="page-links-to-notification" class="notice updated is-dismissible"><h3><?php _e( 'Page Links To', 'page-links-to' ); ?></h3>
|
876 |
+
<p><a class="button plt-dismiss" target="_blank" href="<?php echo esc_url( self::NEWSLETTER_URL ); ?>"><?php _e( 'Give Me Updates', 'page-links-to' ); ?></a> <small><a href="javascript:void(0)" class="plt-dismiss"><?php _e( 'No thanks', 'page-links-to' ); ?></a></small></p>
|
877 |
+
</div>
|
878 |
+
<script>
|
879 |
+
(function($){
|
880 |
+
var $plt = $('#page-links-to-notification');
|
881 |
+
$plt
|
882 |
+
.on('click', '.notice-dismiss', function(e){
|
883 |
+
$.ajax( ajaxurl, {
|
884 |
+
type: 'GET',
|
885 |
+
data: {
|
886 |
+
action: 'plt_dismiss_notice',
|
887 |
+
plt_notice: <?php echo json_encode( self::MESSAGE_ID ); ?>
|
888 |
+
}
|
889 |
+
});
|
890 |
+
})
|
891 |
+
.on('click', '.plt-dismiss', function(e){
|
892 |
+
e.preventDefault();
|
893 |
+
$(this).parents('.notice').first().find('.notice-dismiss').click();
|
894 |
});
|
895 |
+
})(jQuery);
|
896 |
+
</script>
|
897 |
+
<?php
|
898 |
+
}
|
899 |
+
}
|
900 |
+
|
901 |
+
/**
|
902 |
+
* Whether the user is using the block editor (Gutenberg).
|
903 |
+
*
|
904 |
+
* @return bool
|
905 |
+
*/
|
906 |
+
public static function is_block_editor() {
|
907 |
+
$current_screen = get_current_screen();
|
908 |
+
return method_exists( $current_screen, 'is_block_editor' ) && $current_screen->is_block_editor();
|
909 |
+
}
|
910 |
+
|
911 |
+
/**
|
912 |
+
* Create a block editor notification.
|
913 |
+
*
|
914 |
+
* @param string $text The notification.
|
915 |
+
* @param string $type The type of notification.
|
916 |
+
* @return void
|
917 |
+
*/
|
918 |
+
public static function block_editor_notification( $text, $type = 'info' ) {
|
919 |
+
if ( ! in_array( $type, array( 'error', 'warning', 'info' ) ) ) {
|
920 |
+
return;
|
921 |
+
}
|
922 |
+
|
923 |
+
$type = ucfirst( $type );
|
924 |
+
$method = "create{$type}Notice";
|
925 |
+
?>
|
926 |
+
<script>
|
927 |
+
document.addEventListener('DOMContentLoaded', function() {
|
928 |
+
if (wp.data !== undefined) {
|
929 |
+
wp.data.dispatch('core/notices').<?php echo $method; ?>(<?php echo json_encode( $text ); ?>, {isDismissible: true, id: 'page-links-to-notice'});
|
930 |
+
}
|
931 |
+
});
|
932 |
+
</script>
|
933 |
<?php
|
934 |
}
|
935 |
|
939 |
* @return void
|
940 |
*/
|
941 |
public static function notify_of_external_link() {
|
942 |
+
if ( self::is_block_editor() ) {
|
943 |
+
// Disabled, currently, because these notifications can block the title, which is annoying.
|
944 |
+
false && self::block_editor_notification( 'Note: This content is pointing to a custom URL. Use the “Custom Link” area in “Status and Visibility” to control this.', 'info' );
|
945 |
+
} else {
|
946 |
+
?>
|
947 |
+
<div class="notice updated"><p><?php _e( '<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior.', 'page-links-to' ); ?></p></div>
|
948 |
+
<?php
|
949 |
+
}
|
950 |
}
|
951 |
|
952 |
+
/**
|
953 |
+
* Inserts an Edit link after the title.
|
954 |
+
*
|
955 |
+
* @return void
|
956 |
+
*/
|
957 |
public function edit_form_after_title() {
|
958 |
$this->replace = true;
|
959 |
$post = get_post();
|
987 |
/**
|
988 |
* Filter the post states to indicate which ones are linked using this plugin.
|
989 |
*
|
990 |
+
* @param array $states The existing post states.
|
991 |
* @param WP_Post $post The current post object being displayed.
|
992 |
* @return array The modified post states array.
|
993 |
*/
|
css/quick-add.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
#plt-quick-add .footer{border-top:1px solid #dfdfdf;
|
2 |
/*# sourceMappingURL=quick-add.css.map */
|
1 |
+
#plt-quick-add .footer{margin:0 -15px -15px;border-top:1px solid #dfdfdf;padding:15px;text-align:right;display:flex}#plt-quick-add .footer a{text-decoration:none}#plt-quick-add .footer div.messages{text-align:left;margin-right:auto}#plt-quick-add .footer div.messages p{margin:0;line-height:2em}#plt-quick-add .footer input[type=submit]{margin-left:15px}#plt-quick-add .footer input[name=plt-quick-add-publish]{order:2}#plt-quick-add .content{padding-bottom:20px;text-align:right}#plt-quick-add p.short-url-message{margin:15px auto 0;font-style:italic;max-width:300px;text-align:center;padding:5px;background:#f5f5f5;box-shadow:0 5px 15px 0 rgba(0,0,0,.1)}#plt-quick-add label{font-size:14px;display:flex;text-align:left;justify-content:space-between;align-items:center}#plt-quick-add label>span{font-weight:600;margin-right:15px}#plt-quick-add label>*{font-weight:400}#plt-quick-add code{margin-left:20px}.plt-post-info{opacity:.3}.wp-list-table tr:hover .plt-post-info{opacity:1}a.plt-post-state-link span.url{display:none}a.plt-post-state-link:hover span.url{display:inline}.plt-links-to{padding:5px 10px 0;line-height:24px;color:#666}#cws-links-to-custom-section{box-sizing:border-box;margin-left:30px}#cws-links-to{width:75%}
|
2 |
/*# sourceMappingURL=quick-add.css.map */
|
css/quick-add.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["../sass/quick-add.sass","quick-add.css"],"names":[],"mappings":"AACC,
|
1 |
+
{"version":3,"sources":["../sass/quick-add.sass","quick-add.css"],"names":[],"mappings":"AACC,uBACC,qBAAA,AACA,6BAAA,AACA,aAAA,AACA,iBAAA,AACA,YAAA,CCAD,ADCC,yBACC,oBAAA,CCCF,ADAC,oCACC,gBAAA,AACA,iBAAA,CCEF,ADDE,sCACC,SAAA,AACA,eAAA,CCGH,ADFC,0CACC,gBAAA,CCIF,ADHC,yDACC,OAAA,CCKF,ADHA,wBACC,oBAAA,AACA,gBAAA,CCKD,ADHA,mCACC,mBAAA,AACA,kBAAA,AACA,gBAAA,AACA,kBAAA,AACA,YAAA,AACA,mBAAA,AACA,sCAAA,CCKD,ADHA,qBACC,eAAA,AACA,aAAA,AACA,gBAAA,AACA,8BAAA,AACA,kBAAA,CCKD,ADJC,0BACC,gBAAA,AACA,iBAAA,CCMF,ADLC,uBACC,eAAA,CCOF,ADLA,oBACC,gBAAA,CCOD,ADLD,eACC,UAAA,CCQA,ADPA,uCACC,SAAA,CCSD,ADNA,+BACC,YAAA,CCSD,ADRA,qCACC,cAAA,CCUD,ADRD,cACC,mBAAA,AACA,iBAAA,AACA,UAAA,CCWA,ADTD,6BACC,sBAAA,AACA,gBAAA,CCYA,ADVD,cACC,SAAA,CCaA","file":"quick-add.css"}
|
cypress.env.json
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"wp_username": "mark",
|
3 |
+
"wp_password": "mark"
|
4 |
+
}
|
cypress.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"baseUrl": "https://plugins.test"
|
3 |
+
}
|
js/clipboard.min.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/*!
|
2 |
-
* clipboard.js v2.0.
|
3 |
* https://zenorocha.github.io/clipboard.js
|
4 |
*
|
5 |
* Licensed MIT © Zeno Rocha
|
6 |
*/
|
7 |
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){var o,r,i;!function(a,c){r=[t,n(7)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(t){return t&&t.__esModule?t:{default:t}}(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),a=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return i(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var o,r,i;!function(a,c){r=[t,n(0),n(2),n(1)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e,n,o){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=r(e),s=r(n),f=r(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){i(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])});
|
1 |
/*!
|
2 |
+
* clipboard.js v2.0.4
|
3 |
* https://zenorocha.github.io/clipboard.js
|
4 |
*
|
5 |
* Licensed MIT © Zeno Rocha
|
6 |
*/
|
7 |
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=o(n(1)),c=o(n(3)),u=o(n(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function o(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(o.__proto__||Object.getPrototypeOf(o)).call(this));return n.resolveOptions(e),n.listenClick(t),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(o,c.default),i(o,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,u.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return s("action",t)}},{key:"defaultTarget",value:function(t){var e=s("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return s("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),o}();function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=l},function(t,e,n){"use strict";var o,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=n(2),c=(o=a)&&o.__esModule?o:{default:o};var u=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),e}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var d=n(5),h=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(l=t).addEventListener(s,f),{destroy:function(){l.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,u=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,u)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,u,l,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(7);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])});
|
js/gutenberg.jsx
ADDED
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const { PanelRow, TextControl, CheckboxControl } = wp.components;
|
2 |
+
const { withInstanceId, compose } = wp.compose;
|
3 |
+
const { withSelect, withDispatch } = wp.data;
|
4 |
+
const { Fragment, Component } = wp.element;
|
5 |
+
const { PluginPostStatusInfo } = wp.editPost;
|
6 |
+
const { registerPlugin } = wp.plugins;
|
7 |
+
|
8 |
+
class LinksTo extends Component {
|
9 |
+
constructor(props) {
|
10 |
+
super(props);
|
11 |
+
this.toggleStatus = this.toggleStatus.bind(this);
|
12 |
+
this.toggleNewTab = this.toggleNewTab.bind(this);
|
13 |
+
this.updateLink = this.updateLink.bind(this);
|
14 |
+
this.state.enabled = this.hasUrl();
|
15 |
+
}
|
16 |
+
|
17 |
+
state = {
|
18 |
+
prevUrl: '',
|
19 |
+
prevNewTab: false,
|
20 |
+
};
|
21 |
+
|
22 |
+
getUrl() {
|
23 |
+
return this.props.meta._links_to || '';
|
24 |
+
}
|
25 |
+
|
26 |
+
getDisplayUrl() {
|
27 |
+
const { prevUrl } = this.state;
|
28 |
+
return this.getUrl() || prevUrl;
|
29 |
+
}
|
30 |
+
|
31 |
+
hasUrl() {
|
32 |
+
return this.getUrl().length > 0;
|
33 |
+
}
|
34 |
+
|
35 |
+
opensInNewTab() {
|
36 |
+
return this.props.meta._links_to_target === '_blank';
|
37 |
+
}
|
38 |
+
|
39 |
+
enabled() {
|
40 |
+
return this.state.enabled;
|
41 |
+
}
|
42 |
+
|
43 |
+
toggleStatus() {
|
44 |
+
const { prevUrl, prevNewTab } = this.state;
|
45 |
+
|
46 |
+
this.setState(prevState => {
|
47 |
+
const newState = {
|
48 |
+
enabled: !prevState.enabled,
|
49 |
+
};
|
50 |
+
|
51 |
+
if (prevState.enabled) {
|
52 |
+
newState.prevUrl = this.getUrl();
|
53 |
+
}
|
54 |
+
|
55 |
+
return newState;
|
56 |
+
});
|
57 |
+
|
58 |
+
if (this.enabled()) {
|
59 |
+
// If it was enabled before they clicked, they are disabling it.
|
60 |
+
this.updateLink(null);
|
61 |
+
this.updateNewTab(false);
|
62 |
+
|
63 |
+
// Hold on to the previous state, in case they change their mind.
|
64 |
+
this.setState({
|
65 |
+
prevUrl: this.getUrl(),
|
66 |
+
prevNewTab: this.opensInNewTab(),
|
67 |
+
});
|
68 |
+
} else {
|
69 |
+
// If it was disabled before thy clicked, they are enabling it.
|
70 |
+
// We should restore the previous states of the url and new tab checkbox.
|
71 |
+
this.updateLink(prevUrl);
|
72 |
+
this.updateNewTab(prevNewTab);
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
toggleNewTab() {
|
77 |
+
this.updateNewTab(!this.opensInNewTab());
|
78 |
+
}
|
79 |
+
|
80 |
+
updateLink(link) {
|
81 |
+
const { meta, onUpdateLink } = this.props;
|
82 |
+
onUpdateLink(meta, link);
|
83 |
+
}
|
84 |
+
|
85 |
+
updateNewTab(enabled) {
|
86 |
+
const { meta, onUpdateNewTab } = this.props;
|
87 |
+
onUpdateNewTab(meta, enabled);
|
88 |
+
}
|
89 |
+
|
90 |
+
render() {
|
91 |
+
return (
|
92 |
+
<Fragment>
|
93 |
+
<PluginPostStatusInfo>
|
94 |
+
<CheckboxControl
|
95 |
+
label="Custom Permalink"
|
96 |
+
checked={this.enabled()}
|
97 |
+
onChange={this.toggleStatus}
|
98 |
+
/>
|
99 |
+
</PluginPostStatusInfo>
|
100 |
+
|
101 |
+
{this.enabled() && (
|
102 |
+
<Fragment>
|
103 |
+
<PluginPostStatusInfo>
|
104 |
+
<TextControl
|
105 |
+
label="Links to"
|
106 |
+
value={this.getDisplayUrl()}
|
107 |
+
onChange={this.updateLink}
|
108 |
+
placeholder="https://"
|
109 |
+
/>
|
110 |
+
</PluginPostStatusInfo>
|
111 |
+
<PluginPostStatusInfo>
|
112 |
+
<CheckboxControl
|
113 |
+
label="Open in new tab"
|
114 |
+
checked={this.opensInNewTab()}
|
115 |
+
onChange={this.toggleNewTab}
|
116 |
+
/>
|
117 |
+
</PluginPostStatusInfo>
|
118 |
+
</Fragment>
|
119 |
+
)}
|
120 |
+
</Fragment>
|
121 |
+
);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
const PageLinksTo = compose([
|
126 |
+
withSelect(select => ({
|
127 |
+
meta: select('core/editor').getEditedPostAttribute('meta'),
|
128 |
+
})),
|
129 |
+
withDispatch(dispatch => ({
|
130 |
+
onUpdateLink: (meta, link) => {
|
131 |
+
dispatch('core/editor').editPost({ meta: { ...meta, _links_to: link } });
|
132 |
+
},
|
133 |
+
onUpdateNewTab: (meta, enabled) => {
|
134 |
+
dispatch('core/editor').editPost({
|
135 |
+
meta: { ...meta, _links_to_target: enabled ? '_blank' : '' },
|
136 |
+
});
|
137 |
+
},
|
138 |
+
})),
|
139 |
+
withInstanceId,
|
140 |
+
])(LinksTo);
|
141 |
+
|
142 |
+
registerPlugin('page-links-to', {
|
143 |
+
render: PageLinksTo,
|
144 |
+
});
|
js/gutenberg.min.js
ADDED
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
5 |
+
|
6 |
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
7 |
+
|
8 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
9 |
+
|
10 |
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
11 |
+
|
12 |
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
13 |
+
|
14 |
+
var _wp$components = wp.components,
|
15 |
+
PanelRow = _wp$components.PanelRow,
|
16 |
+
TextControl = _wp$components.TextControl,
|
17 |
+
CheckboxControl = _wp$components.CheckboxControl;
|
18 |
+
var _wp$compose = wp.compose,
|
19 |
+
withInstanceId = _wp$compose.withInstanceId,
|
20 |
+
compose = _wp$compose.compose;
|
21 |
+
var _wp$data = wp.data,
|
22 |
+
withSelect = _wp$data.withSelect,
|
23 |
+
withDispatch = _wp$data.withDispatch;
|
24 |
+
var _wp$element = wp.element,
|
25 |
+
Fragment = _wp$element.Fragment,
|
26 |
+
Component = _wp$element.Component;
|
27 |
+
var PluginPostStatusInfo = wp.editPost.PluginPostStatusInfo;
|
28 |
+
var registerPlugin = wp.plugins.registerPlugin;
|
29 |
+
|
30 |
+
var LinksTo = function (_Component) {
|
31 |
+
_inherits(LinksTo, _Component);
|
32 |
+
|
33 |
+
function LinksTo(props) {
|
34 |
+
_classCallCheck(this, LinksTo);
|
35 |
+
|
36 |
+
var _this = _possibleConstructorReturn(this, (LinksTo.__proto__ || Object.getPrototypeOf(LinksTo)).call(this, props));
|
37 |
+
|
38 |
+
_this.state = {
|
39 |
+
prevUrl: '',
|
40 |
+
prevNewTab: false
|
41 |
+
};
|
42 |
+
|
43 |
+
_this.toggleStatus = _this.toggleStatus.bind(_this);
|
44 |
+
_this.toggleNewTab = _this.toggleNewTab.bind(_this);
|
45 |
+
_this.updateLink = _this.updateLink.bind(_this);
|
46 |
+
_this.state.enabled = _this.hasUrl();
|
47 |
+
return _this;
|
48 |
+
}
|
49 |
+
|
50 |
+
_createClass(LinksTo, [{
|
51 |
+
key: 'getUrl',
|
52 |
+
value: function getUrl() {
|
53 |
+
return this.props.meta._links_to || '';
|
54 |
+
}
|
55 |
+
}, {
|
56 |
+
key: 'getDisplayUrl',
|
57 |
+
value: function getDisplayUrl() {
|
58 |
+
var prevUrl = this.state.prevUrl;
|
59 |
+
|
60 |
+
return this.getUrl() || prevUrl;
|
61 |
+
}
|
62 |
+
}, {
|
63 |
+
key: 'hasUrl',
|
64 |
+
value: function hasUrl() {
|
65 |
+
return this.getUrl().length > 0;
|
66 |
+
}
|
67 |
+
}, {
|
68 |
+
key: 'opensInNewTab',
|
69 |
+
value: function opensInNewTab() {
|
70 |
+
return this.props.meta._links_to_target === '_blank';
|
71 |
+
}
|
72 |
+
}, {
|
73 |
+
key: 'enabled',
|
74 |
+
value: function enabled() {
|
75 |
+
return this.state.enabled;
|
76 |
+
}
|
77 |
+
}, {
|
78 |
+
key: 'toggleStatus',
|
79 |
+
value: function toggleStatus() {
|
80 |
+
var _this2 = this;
|
81 |
+
|
82 |
+
var _state = this.state,
|
83 |
+
prevUrl = _state.prevUrl,
|
84 |
+
prevNewTab = _state.prevNewTab;
|
85 |
+
|
86 |
+
|
87 |
+
this.setState(function (prevState) {
|
88 |
+
var newState = {
|
89 |
+
enabled: !prevState.enabled
|
90 |
+
};
|
91 |
+
|
92 |
+
if (prevState.enabled) {
|
93 |
+
newState.prevUrl = _this2.getUrl();
|
94 |
+
}
|
95 |
+
|
96 |
+
return newState;
|
97 |
+
});
|
98 |
+
|
99 |
+
if (this.enabled()) {
|
100 |
+
// If it was enabled before they clicked, they are disabling it.
|
101 |
+
this.updateLink(null);
|
102 |
+
this.updateNewTab(false);
|
103 |
+
|
104 |
+
// Hold on to the previous state, in case they change their mind.
|
105 |
+
this.setState({
|
106 |
+
prevUrl: this.getUrl(),
|
107 |
+
prevNewTab: this.opensInNewTab()
|
108 |
+
});
|
109 |
+
} else {
|
110 |
+
// If it was disabled before thy clicked, they are enabling it.
|
111 |
+
// We should restore the previous states of the url and new tab checkbox.
|
112 |
+
this.updateLink(prevUrl);
|
113 |
+
this.updateNewTab(prevNewTab);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
}, {
|
117 |
+
key: 'toggleNewTab',
|
118 |
+
value: function toggleNewTab() {
|
119 |
+
this.updateNewTab(!this.opensInNewTab());
|
120 |
+
}
|
121 |
+
}, {
|
122 |
+
key: 'updateLink',
|
123 |
+
value: function updateLink(link) {
|
124 |
+
var _props = this.props,
|
125 |
+
meta = _props.meta,
|
126 |
+
onUpdateLink = _props.onUpdateLink;
|
127 |
+
|
128 |
+
onUpdateLink(meta, link);
|
129 |
+
}
|
130 |
+
}, {
|
131 |
+
key: 'updateNewTab',
|
132 |
+
value: function updateNewTab(enabled) {
|
133 |
+
var _props2 = this.props,
|
134 |
+
meta = _props2.meta,
|
135 |
+
onUpdateNewTab = _props2.onUpdateNewTab;
|
136 |
+
|
137 |
+
onUpdateNewTab(meta, enabled);
|
138 |
+
}
|
139 |
+
}, {
|
140 |
+
key: 'render',
|
141 |
+
value: function render() {
|
142 |
+
return React.createElement(
|
143 |
+
Fragment,
|
144 |
+
null,
|
145 |
+
React.createElement(
|
146 |
+
PluginPostStatusInfo,
|
147 |
+
null,
|
148 |
+
React.createElement(CheckboxControl, {
|
149 |
+
label: 'Custom Permalink',
|
150 |
+
checked: this.enabled(),
|
151 |
+
onChange: this.toggleStatus
|
152 |
+
})
|
153 |
+
),
|
154 |
+
this.enabled() && React.createElement(
|
155 |
+
Fragment,
|
156 |
+
null,
|
157 |
+
React.createElement(
|
158 |
+
PluginPostStatusInfo,
|
159 |
+
null,
|
160 |
+
React.createElement(TextControl, {
|
161 |
+
label: 'Links to',
|
162 |
+
value: this.getDisplayUrl(),
|
163 |
+
onChange: this.updateLink,
|
164 |
+
placeholder: 'https://'
|
165 |
+
})
|
166 |
+
),
|
167 |
+
React.createElement(
|
168 |
+
PluginPostStatusInfo,
|
169 |
+
null,
|
170 |
+
React.createElement(CheckboxControl, {
|
171 |
+
label: 'Open in new tab',
|
172 |
+
checked: this.opensInNewTab(),
|
173 |
+
onChange: this.toggleNewTab
|
174 |
+
})
|
175 |
+
)
|
176 |
+
)
|
177 |
+
);
|
178 |
+
}
|
179 |
+
}]);
|
180 |
+
|
181 |
+
return LinksTo;
|
182 |
+
}(Component);
|
183 |
+
|
184 |
+
var PageLinksTo = compose([withSelect(function (select) {
|
185 |
+
return {
|
186 |
+
meta: select('core/editor').getEditedPostAttribute('meta')
|
187 |
+
};
|
188 |
+
}), withDispatch(function (dispatch) {
|
189 |
+
return {
|
190 |
+
onUpdateLink: function onUpdateLink(meta, link) {
|
191 |
+
dispatch('core/editor').editPost({ meta: _extends({}, meta, { _links_to: link }) });
|
192 |
+
},
|
193 |
+
onUpdateNewTab: function onUpdateNewTab(meta, enabled) {
|
194 |
+
dispatch('core/editor').editPost({
|
195 |
+
meta: _extends({}, meta, { _links_to_target: enabled ? '_blank' : '' })
|
196 |
+
});
|
197 |
+
}
|
198 |
+
};
|
199 |
+
}), withInstanceId])(LinksTo);
|
200 |
+
|
201 |
+
registerPlugin('page-links-to', {
|
202 |
+
render: PageLinksTo
|
203 |
+
});
|
204 |
+
|
205 |
+
},{}]},{},[1])
|
206 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9ndXRlbmJlcmcuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O3FCQ0FtRCxHQUFHLFU7SUFBOUMsUSxrQkFBQSxRO0lBQVUsVyxrQkFBQSxXO0lBQWEsZSxrQkFBQSxlO2tCQUNLLEdBQUcsTztJQUEvQixjLGVBQUEsYztJQUFnQixPLGVBQUEsTztlQUNhLEdBQUcsSTtJQUFoQyxVLFlBQUEsVTtJQUFZLFksWUFBQSxZO2tCQUNZLEdBQUcsTztJQUEzQixRLGVBQUEsUTtJQUFVLFMsZUFBQSxTO0lBQ1Ysb0IsR0FBeUIsR0FBRyxRLENBQTVCLG9CO0lBQ0EsYyxHQUFtQixHQUFHLE8sQ0FBdEIsYzs7SUFFRixPOzs7QUFDTCxrQkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBQUEsZ0hBQ1osS0FEWTs7QUFBQSxRQVFuQixLQVJtQixHQVFYO0FBQ1AsWUFBUyxFQURGO0FBRVAsZUFBWTtBQUZMLEdBUlc7O0FBRWxCLFFBQUssWUFBTCxHQUFvQixNQUFLLFlBQUwsQ0FBa0IsSUFBbEIsT0FBcEI7QUFDQSxRQUFLLFlBQUwsR0FBb0IsTUFBSyxZQUFMLENBQWtCLElBQWxCLE9BQXBCO0FBQ0EsUUFBSyxVQUFMLEdBQWtCLE1BQUssVUFBTCxDQUFnQixJQUFoQixPQUFsQjtBQUNBLFFBQUssS0FBTCxDQUFXLE9BQVgsR0FBcUIsTUFBSyxNQUFMLEVBQXJCO0FBTGtCO0FBTWxCOzs7OzJCQU9RO0FBQ1IsVUFBTyxLQUFLLEtBQUwsQ0FBVyxJQUFYLENBQWdCLFNBQWhCLElBQTZCLEVBQXBDO0FBQ0E7OztrQ0FFZTtBQUFBLE9BQ1AsT0FETyxHQUNLLEtBQUssS0FEVixDQUNQLE9BRE87O0FBRWYsVUFBTyxLQUFLLE1BQUwsTUFBaUIsT0FBeEI7QUFDQTs7OzJCQUVRO0FBQ1IsVUFBTyxLQUFLLE1BQUwsR0FBYyxNQUFkLEdBQXVCLENBQTlCO0FBQ0E7Oztr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LENBSjJCLEVBYzNCLGNBZDJCLENBQVIsRUFlakIsT0FmaUIsQ0FBcEI7O0FBaUJBLGVBQWUsZUFBZixFQUFnQztBQUMvQixTQUFRO0FBRHVCLENBQWhDIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiY29uc3QgeyBQYW5lbFJvdywgVGV4dENvbnRyb2wsIENoZWNrYm94Q29udHJvbCB9ID0gd3AuY29tcG9uZW50cztcbmNvbnN0IHsgd2l0aEluc3RhbmNlSWQsIGNvbXBvc2UgfSA9IHdwLmNvbXBvc2U7XG5jb25zdCB7IHdpdGhTZWxlY3QsIHdpdGhEaXNwYXRjaCB9ID0gd3AuZGF0YTtcbmNvbnN0IHsgRnJhZ21lbnQsIENvbXBvbmVudCB9ID0gd3AuZWxlbWVudDtcbmNvbnN0IHsgUGx1Z2luUG9zdFN0YXR1c0luZm8gfSA9IHdwLmVkaXRQb3N0O1xuY29uc3QgeyByZWdpc3RlclBsdWdpbiB9ID0gd3AucGx1Z2lucztcblxuY2xhc3MgTGlua3NUbyBleHRlbmRzIENvbXBvbmVudCB7XG5cdGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cdFx0c3VwZXIocHJvcHMpO1xuXHRcdHRoaXMudG9nZ2xlU3RhdHVzID0gdGhpcy50b2dnbGVTdGF0dXMuYmluZCh0aGlzKTtcblx0XHR0aGlzLnRvZ2dsZU5ld1RhYiA9IHRoaXMudG9nZ2xlTmV3VGFiLmJpbmQodGhpcyk7XG5cdFx0dGhpcy51cGRhdGVMaW5rID0gdGhpcy51cGRhdGVMaW5rLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5zdGF0ZS5lbmFibGVkID0gdGhpcy5oYXNVcmwoKTtcblx0fVxuXG5cdHN0YXRlID0ge1xuXHRcdHByZXZVcmw6ICcnLFxuXHRcdHByZXZOZXdUYWI6IGZhbHNlLFxuXHR9O1xuXG5cdGdldFVybCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wcm9wcy5tZXRhLl9saW5rc190byB8fCAnJztcblx0fVxuXG5cdGdldERpc3BsYXlVcmwoKSB7XG5cdFx0Y29uc3QgeyBwcmV2VXJsIH0gPSB0aGlzLnN0YXRlO1xuXHRcdHJldHVybiB0aGlzLmdldFVybCgpIHx8IHByZXZVcmw7XG5cdH1cblxuXHRoYXNVcmwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VXJsKCkubGVuZ3RoID4gMDtcblx0fVxuXG5cdG9wZW5zSW5OZXdUYWIoKSB7XG5cdFx0cmV0dXJuIHRoaXMucHJvcHMubWV0YS5fbGlua3NfdG9fdGFyZ2V0ID09PSAnX2JsYW5rJztcblx0fVxuXG5cdGVuYWJsZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUuZW5hYmxlZDtcblx0fVxuXG5cdHRvZ2dsZVN0YXR1cygpIHtcblx0XHRjb25zdCB7IHByZXZVcmwsIHByZXZOZXdUYWIgfSA9IHRoaXMuc3RhdGU7XG5cblx0XHR0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiB7XG5cdFx0XHRjb25zdCBuZXdTdGF0ZSA9IHtcblx0XHRcdFx0ZW5hYmxlZDogIXByZXZTdGF0ZS5lbmFibGVkLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHByZXZTdGF0ZS5lbmFibGVkKSB7XG5cdFx0XHRcdG5ld1N0YXRlLnByZXZVcmwgPSB0aGlzLmdldFVybCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbmV3U3RhdGU7XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5lbmFibGVkKCkpIHtcblx0XHRcdC8vIElmIGl0IHdhcyBlbmFibGVkIGJlZm9yZSB0aGV5IGNsaWNrZWQsIHRoZXkgYXJlIGRpc2FibGluZyBpdC5cblx0XHRcdHRoaXMudXBkYXRlTGluayhudWxsKTtcblx0XHRcdHRoaXMudXBkYXRlTmV3VGFiKGZhbHNlKTtcblxuXHRcdFx0Ly8gSG9sZCBvbiB0byB0aGUgcHJldmlvdXMgc3RhdGUsIGluIGNhc2UgdGhleSBjaGFuZ2UgdGhlaXIgbWluZC5cblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRwcmV2VXJsOiB0aGlzLmdldFVybCgpLFxuXHRcdFx0XHRwcmV2TmV3VGFiOiB0aGlzLm9wZW5zSW5OZXdUYWIoKSxcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBJZiBpdCB3YXMgZGlzYWJsZWQgYmVmb3JlIHRoeSBjbGlja2VkLCB0aGV5IGFyZSBlbmFibGluZyBpdC5cblx0XHRcdC8vIFdlIHNob3VsZCByZXN0b3JlIHRoZSBwcmV2aW91cyBzdGF0ZXMgb2YgdGhlIHVybCBhbmQgbmV3IHRhYiBjaGVja2JveC5cblx0XHRcdHRoaXMudXBkYXRlTGluayhwcmV2VXJsKTtcblx0XHRcdHRoaXMudXBkYXRlTmV3VGFiKHByZXZOZXdUYWIpO1xuXHRcdH1cblx0fVxuXG5cdHRvZ2dsZU5ld1RhYigpIHtcblx0XHR0aGlzLnVwZGF0ZU5ld1RhYighdGhpcy5vcGVuc0luTmV3VGFiKCkpO1xuXHR9XG5cblx0dXBkYXRlTGluayhsaW5rKSB7XG5cdFx0Y29uc3QgeyBtZXRhLCBvblVwZGF0ZUxpbmsgfSA9IHRoaXMucHJvcHM7XG5cdFx0b25VcGRhdGVMaW5rKG1ldGEsIGxpbmspO1xuXHR9XG5cblx0dXBkYXRlTmV3VGFiKGVuYWJsZWQpIHtcblx0XHRjb25zdCB7IG1ldGEsIG9uVXBkYXRlTmV3VGFiIH0gPSB0aGlzLnByb3BzO1xuXHRcdG9uVXBkYXRlTmV3VGFiKG1ldGEsIGVuYWJsZWQpO1xuXHR9XG5cblx0cmVuZGVyKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdDxQbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHRcdFx0XHQ8Q2hlY2tib3hDb250cm9sXG5cdFx0XHRcdFx0XHRsYWJlbD1cIkN1c3RvbSBQZXJtYWxpbmtcIlxuXHRcdFx0XHRcdFx0Y2hlY2tlZD17dGhpcy5lbmFibGVkKCl9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17dGhpcy50b2dnbGVTdGF0dXN9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9QbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblxuXHRcdFx0XHR7dGhpcy5lbmFibGVkKCkgJiYgKFxuXHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdDxQbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHRcdFx0XHRcdFx0PFRleHRDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9XCJMaW5rcyB0b1wiXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9e3RoaXMuZ2V0RGlzcGxheVVybCgpfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLnVwZGF0ZUxpbmt9XG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJodHRwczovL1wiXG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8L1BsdWdpblBvc3RTdGF0dXNJbmZvPlxuXHRcdFx0XHRcdFx0PFBsdWdpblBvc3RTdGF0dXNJbmZvPlxuXHRcdFx0XHRcdFx0XHQ8Q2hlY2tib3hDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9XCJPcGVuIGluIG5ldyB0YWJcIlxuXHRcdFx0XHRcdFx0XHRcdGNoZWNrZWQ9e3RoaXMub3BlbnNJbk5ld1RhYigpfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLnRvZ2dsZU5ld1RhYn1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvUGx1Z2luUG9zdFN0YXR1c0luZm8+XG5cdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0KX1cblx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0KTtcblx0fVxufVxuXG5jb25zdCBQYWdlTGlua3NUbyA9IGNvbXBvc2UoW1xuXHR3aXRoU2VsZWN0KHNlbGVjdCA9PiAoe1xuXHRcdG1ldGE6IHNlbGVjdCgnY29yZS9lZGl0b3InKS5nZXRFZGl0ZWRQb3N0QXR0cmlidXRlKCdtZXRhJyksXG5cdH0pKSxcblx0d2l0aERpc3BhdGNoKGRpc3BhdGNoID0+ICh7XG5cdFx0b25VcGRhdGVMaW5rOiAobWV0YSwgbGluaykgPT4ge1xuXHRcdFx0ZGlzcGF0Y2goJ2NvcmUvZWRpdG9yJykuZWRpdFBvc3QoeyBtZXRhOiB7IC4uLm1ldGEsIF9saW5rc190bzogbGluayB9IH0pO1xuXHRcdH0sXG5cdFx0b25VcGRhdGVOZXdUYWI6IChtZXRhLCBlbmFibGVkKSA9PiB7XG5cdFx0XHRkaXNwYXRjaCgnY29yZS9lZGl0b3InKS5lZGl0UG9zdCh7XG5cdFx0XHRcdG1ldGE6IHsgLi4ubWV0YSwgX2xpbmtzX3RvX3RhcmdldDogZW5hYmxlZCA/ICdfYmxhbmsnIDogJycgfSxcblx0XHRcdH0pO1xuXHRcdH0sXG5cdH0pKSxcblx0d2l0aEluc3RhbmNlSWQsXG5dKShMaW5rc1RvKTtcblxucmVnaXN0ZXJQbHVnaW4oJ3BhZ2UtbGlua3MtdG8nLCB7XG5cdHJlbmRlcjogUGFnZUxpbmtzVG8sXG59KTtcbiJdfQ==
|
js/meta-box.min.js
CHANGED
@@ -1,5 +1,31 @@
|
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
},{}]},{},[1])
|
5 |
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
jQuery(function ($) {
|
5 |
+
var section = $('#cws-links-to-custom-section');
|
6 |
+
var input = $('input[type=radio]', '#page-links-to');
|
7 |
+
|
8 |
+
if (input.filter('input[value="wp"]').prop('checked')) {
|
9 |
+
section.fadeTo(1, 0).hide();
|
10 |
+
}
|
11 |
+
|
12 |
+
input.change(function () {
|
13 |
+
var $this = $(this);
|
14 |
+
|
15 |
+
if ($this.val() === 'wp') {
|
16 |
+
section.fadeTo('fast', 0, function () {
|
17 |
+
section.slideUp();
|
18 |
+
});
|
19 |
+
} else {
|
20 |
+
section.slideDown('fast', function () {
|
21 |
+
section.fadeTo('fast', 1, function () {
|
22 |
+
var $linksTo = $('#cws-links-to');
|
23 |
+
$linksTo.focus().val($linksTo.val());
|
24 |
+
});
|
25 |
+
});
|
26 |
+
}
|
27 |
+
});
|
28 |
+
});
|
29 |
|
30 |
},{}]},{},[1])
|
31 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9tZXRhLWJveC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0FBLE9BQU8sYUFBSztBQUNYLEtBQU0sVUFBVSxFQUFFLDhCQUFGLENBQWhCO0FBQ0EsS0FBTSxRQUFRLEVBQUUsbUJBQUYsRUFBdUIsZ0JBQXZCLENBQWQ7O0FBRUEsS0FBSSxNQUFNLE1BQU4sQ0FBYSxtQkFBYixFQUFrQyxJQUFsQyxDQUF1QyxTQUF2QyxDQUFKLEVBQXVEO0FBQ3RELFVBQVEsTUFBUixDQUFlLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUIsSUFBckI7QUFDQTs7QUFFRCxPQUFNLE1BQU4sQ0FBYSxZQUFXO0FBQ3ZCLE1BQU0sUUFBUSxFQUFFLElBQUYsQ0FBZDs7QUFFQSxNQUFJLE1BQU0sR0FBTixPQUFnQixJQUFwQixFQUEwQjtBQUN6QixXQUFRLE1BQVIsQ0FBZSxNQUFmLEVBQXVCLENBQXZCLEVBQTBCLFlBQU07QUFDL0IsWUFBUSxPQUFSO0FBQ0EsSUFGRDtBQUdBLEdBSkQsTUFJTztBQUNOLFdBQVEsU0FBUixDQUFrQixNQUFsQixFQUEwQixZQUFNO0FBQy9CLFlBQVEsTUFBUixDQUFlLE1BQWYsRUFBdUIsQ0FBdkIsRUFBMEIsWUFBTTtBQUMvQixTQUFNLFdBQVcsRUFBRSxlQUFGLENBQWpCO0FBQ0EsY0FBUyxLQUFULEdBQWlCLEdBQWpCLENBQXFCLFNBQVMsR0FBVCxFQUFyQjtBQUNBLEtBSEQ7QUFJQSxJQUxEO0FBTUE7QUFDRCxFQWZEO0FBZ0JBLENBeEJEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwialF1ZXJ5KCQgPT4ge1xuXHRjb25zdCBzZWN0aW9uID0gJCgnI2N3cy1saW5rcy10by1jdXN0b20tc2VjdGlvbicpO1xuXHRjb25zdCBpbnB1dCA9ICQoJ2lucHV0W3R5cGU9cmFkaW9dJywgJyNwYWdlLWxpbmtzLXRvJyk7XG5cblx0aWYgKGlucHV0LmZpbHRlcignaW5wdXRbdmFsdWU9XCJ3cFwiXScpLnByb3AoJ2NoZWNrZWQnKSkge1xuXHRcdHNlY3Rpb24uZmFkZVRvKDEsIDApLmhpZGUoKTtcblx0fVxuXG5cdGlucHV0LmNoYW5nZShmdW5jdGlvbigpIHtcblx0XHRjb25zdCAkdGhpcyA9ICQodGhpcyk7XG5cblx0XHRpZiAoJHRoaXMudmFsKCkgPT09ICd3cCcpIHtcblx0XHRcdHNlY3Rpb24uZmFkZVRvKCdmYXN0JywgMCwgKCkgPT4ge1xuXHRcdFx0XHRzZWN0aW9uLnNsaWRlVXAoKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZWN0aW9uLnNsaWRlRG93bignZmFzdCcsICgpID0+IHtcblx0XHRcdFx0c2VjdGlvbi5mYWRlVG8oJ2Zhc3QnLCAxLCAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgJGxpbmtzVG8gPSAkKCcjY3dzLWxpbmtzLXRvJyk7XG5cdFx0XHRcdFx0JGxpbmtzVG8uZm9jdXMoKS52YWwoJGxpbmtzVG8udmFsKCkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59KTtcbiJdfQ==
|
js/new-tab.min.js
CHANGED
@@ -1,5 +1,29 @@
|
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
},{}]},{},[1])
|
5 |
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
(function (d) {
|
5 |
+
// Makes an anchor element open in a new tab.
|
6 |
+
var newTab = function newTab(el) {
|
7 |
+
var newTabRegex = /#new_tab#x2F;;
|
8 |
+
if (el.tagName === 'A' && newTabRegex.test(el.getAttribute('href'))) {
|
9 |
+
el.setAttribute('target', '_blank');
|
10 |
+
el.setAttribute('href', el.getAttribute('href').replace(newTabRegex, ''));
|
11 |
+
}
|
12 |
+
};
|
13 |
+
|
14 |
+
// Immediately attach a click handler.
|
15 |
+
d.addEventListener('click', function (e) {
|
16 |
+
return newTab(e.target);
|
17 |
+
});
|
18 |
+
|
19 |
+
// On page load, convert any existing new tab links.
|
20 |
+
d.addEventListener('DOMContentLoaded', function () {
|
21 |
+
var anchors = d.getElementsByTagName('A');
|
22 |
+
for (var i = 0; i < anchors.length; i++) {
|
23 |
+
newTab(anchors[i]);
|
24 |
+
}
|
25 |
+
});
|
26 |
+
})(document);
|
27 |
|
28 |
},{}]},{},[1])
|
29 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9uZXctdGFiLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0FDQUEsQ0FBQyxhQUFLO0FBQ0w7QUFDQSxLQUFNLFNBQVMsU0FBVCxNQUFTLEtBQU07QUFDcEIsTUFBTSxjQUFjLFdBQXBCO0FBQ0EsTUFBSSxHQUFHLE9BQUgsS0FBZSxHQUFmLElBQXNCLFlBQVksSUFBWixDQUFpQixHQUFHLFlBQUgsQ0FBZ0IsTUFBaEIsQ0FBakIsQ0FBMUIsRUFBcUU7QUFDcEUsTUFBRyxZQUFILENBQWdCLFFBQWhCLEVBQTBCLFFBQTFCO0FBQ0EsTUFBRyxZQUFILENBQWdCLE1BQWhCLEVBQXdCLEdBQUcsWUFBSCxDQUFnQixNQUFoQixFQUF3QixPQUF4QixDQUFnQyxXQUFoQyxFQUE2QyxFQUE3QyxDQUF4QjtBQUNBO0FBQ0QsRUFORDs7QUFRQTtBQUNBLEdBQUUsZ0JBQUYsQ0FBbUIsT0FBbkIsRUFBNEI7QUFBQSxTQUFLLE9BQU8sRUFBRSxNQUFULENBQUw7QUFBQSxFQUE1Qjs7QUFFQTtBQUNBLEdBQUUsZ0JBQUYsQ0FBbUIsa0JBQW5CLEVBQXVDLFlBQU07QUFDNUMsTUFBTSxVQUFVLEVBQUUsb0JBQUYsQ0FBdUIsR0FBdkIsQ0FBaEI7QUFDQSxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksUUFBUSxNQUE1QixFQUFvQyxHQUFwQyxFQUF5QztBQUN4QyxVQUFPLFFBQVEsQ0FBUixDQUFQO0FBQ0E7QUFDRCxFQUxEO0FBTUEsQ0FwQkQsRUFvQkcsUUFwQkgiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIoZCA9PiB7XG5cdC8vIE1ha2VzIGFuIGFuY2hvciBlbGVtZW50IG9wZW4gaW4gYSBuZXcgdGFiLlxuXHRjb25zdCBuZXdUYWIgPSBlbCA9PiB7XG5cdFx0Y29uc3QgbmV3VGFiUmVnZXggPSAvI25ld190YWIkLztcblx0XHRpZiAoZWwudGFnTmFtZSA9PT0gJ0EnICYmIG5ld1RhYlJlZ2V4LnRlc3QoZWwuZ2V0QXR0cmlidXRlKCdocmVmJykpKSB7XG5cdFx0XHRlbC5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcblx0XHRcdGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpLnJlcGxhY2UobmV3VGFiUmVnZXgsICcnKSk7XG5cdFx0fVxuXHR9O1xuXG5cdC8vIEltbWVkaWF0ZWx5IGF0dGFjaCBhIGNsaWNrIGhhbmRsZXIuXG5cdGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IG5ld1RhYihlLnRhcmdldCkpO1xuXG5cdC8vIE9uIHBhZ2UgbG9hZCwgY29udmVydCBhbnkgZXhpc3RpbmcgbmV3IHRhYiBsaW5rcy5cblx0ZC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuXHRcdGNvbnN0IGFuY2hvcnMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJyk7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRuZXdUYWIoYW5jaG9yc1tpXSk7XG5cdFx0fVxuXHR9KTtcbn0pKGRvY3VtZW50KTtcbiJdfQ==
|
js/quick-add.jsx
CHANGED
@@ -160,7 +160,7 @@ jQuery($ => {
|
|
160 |
|
161 |
$modal.dialog({
|
162 |
title: 'Add Page Link',
|
163 |
-
dialogClass: 'wp-dialog',
|
164 |
autoOpen: no,
|
165 |
draggable: no,
|
166 |
width: 'auto',
|
@@ -173,9 +173,28 @@ jQuery($ => {
|
|
173 |
of: window,
|
174 |
},
|
175 |
open: () => $('.ui-widget-overlay').bind('click', close),
|
176 |
-
create: () =>
|
|
|
|
|
|
|
177 |
});
|
178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
// Events.
|
180 |
if (fancyUrls) {
|
181 |
$title.keyup(updateSlug);
|
160 |
|
161 |
$modal.dialog({
|
162 |
title: 'Add Page Link',
|
163 |
+
dialogClass: 'wp-dialog plt-ui-dialog',
|
164 |
autoOpen: no,
|
165 |
draggable: no,
|
166 |
width: 'auto',
|
173 |
of: window,
|
174 |
},
|
175 |
open: () => $('.ui-widget-overlay').bind('click', close),
|
176 |
+
create: () => {
|
177 |
+
$('.plt-ui-dialog .ui-dialog-titlebar-close').addClass('ui-button');
|
178 |
+
$('.plt-ui-dialog').css({ position: 'fixed' });
|
179 |
+
},
|
180 |
});
|
181 |
|
182 |
+
const repositionModal = () => {
|
183 |
+
if (!isOpen()) {
|
184 |
+
return;
|
185 |
+
}
|
186 |
+
|
187 |
+
$modal.dialog('option', 'position', {
|
188 |
+
my: 'center',
|
189 |
+
at: 'center',
|
190 |
+
of: window,
|
191 |
+
});
|
192 |
+
};
|
193 |
+
|
194 |
+
$(window)
|
195 |
+
.scroll(repositionModal)
|
196 |
+
.resize(repositionModal);
|
197 |
+
|
198 |
// Events.
|
199 |
if (fancyUrls) {
|
200 |
$title.keyup(updateSlug);
|
js/quick-add.min.js
CHANGED
@@ -1,5 +1,237 @@
|
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
},{}]},{},[1])
|
5 |
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9xdWljay1hZGQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO2FDQ0EsT0FBTyxTQUFBLEdBQ04sSUFBTSxFQUFrQixFQUFFLHVCQUN0QixZQUFZLGNBQ2YsRUFBZ0IsTUFBTSxTQUFBLEdBQUEsT0FBSyxFQUFFLG1CQUU3QixFQUFnQixPQUdqQixFQUFFLHdCQUF3QixNQUFNLFNBQUEsR0FDL0IsRUFBRSxpQkFBaUIsVUFHcEIsSUFBTSxFQUFZLElBQUksWUFBWSx1QkFDNUIsRUFBUyxRQUFRLE9BQ2pCLEVBQTBCLFFBQVEsd0JBRXhDLEVBQVUsR0FBRyxVQUFXLFNBQUEsR0FDdkIsSUFBTSxFQUFXLEVBQUUsRUFBRSxTQUVyQixFQUFTLEtBQUssR0FDZCxXQUFXLFdBQUEsT0FBTSxFQUFTLEtBQUssRUFBUyxLQUFLLG1CQUFtQixPQUdqRSxFQUFVLEdBQUcsUUFBUyxTQUFBLEdBQ0osRUFBRSxFQUFFLFNBRVosS0FBSyxHQUNkLFdBQVcsV0FBQSxPQUFNLEVBQWdCLFFBQVEsU0FLM0MsT0FBTyxTQUFBLEdBQ04sSUFBTSxFQUFTLEVBQUUsa0JBQ1gsRUFBUSxFQUFPLEtBQUssY0FDcEIsRUFBYSxFQUFFLHVCQUNmLEVBQVcsRUFBRSwwQkFDYixFQUFZLEVBQ2pCLCtFQUVLLEVBQVksRUFBTyxLQUFLLGFBQ3hCLEVBQW1CLEVBQU8sS0FBSyxzQkFDL0IsRUFBUyxFQUFPLEtBQUssa0JBQ3JCLEVBQU8sRUFBTyxLQUFLLGdCQUNuQixFQUFRLEVBQU8sS0FBSyxpQkFDcEIsRUFBUSxFQUFPLEtBQUssc0JBQXNCLE1BQzFDLEVBQXlCLEVBQU0sS0FBSyxlQUNwQyxFQUFZLE9BQU8sUUFBUSxVQUczQixFQUFjLFNBQUEsR0FBQSxPQUFVLFdBQUEsT0FBTSxFQUFPLE9BQU8sS0FDNUMsRUFBUyxFQUFZLFVBQ3JCLEVBQU8sRUFBWSxRQUNuQixFQUFRLEVBQVksU0FFcEIs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QU0sT0FBTyxHQUdiIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLy8gQ29weSB0byBjbGlwYm9hcmQuXG5qUXVlcnkoJCA9PiB7XG5cdGNvbnN0ICRjbGlwYm9hcmRMaW5rcyA9ICQoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0aWYgKENsaXBib2FyZEpTLmlzU3VwcG9ydGVkKCkpIHtcblx0XHQkY2xpcGJvYXJkTGlua3MuY2xpY2soZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuXHR9IGVsc2Uge1xuXHRcdCRjbGlwYm9hcmRMaW5rcy5oaWRlKCk7XG5cdH1cblxuXHQkKCcucGx0LWxpbmtzLXRvIGJ1dHRvbicpLmNsaWNrKGUgPT4ge1xuXHRcdCQoJyNjd3MtbGlua3MtdG8nKS5mb2N1cygpO1xuXHR9KTtcblxuXHRjb25zdCBjbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkSlMoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0Y29uc3QgY29waWVkID0gcGx0VmFycy5jb3BpZWQ7XG5cdGNvbnN0IGJyb3dzZXJOb1N1cHBvcnRDb3B5aW5nID0gcGx0VmFycy5icm93c2VyTm9TdXBwb3J0Q29weWluZztcblxuXHRjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoY29waWVkKTtcblx0XHRzZXRUaW1lb3V0KCgpID0+ICR0cmlnZ2VyLnRleHQoJHRyaWdnZXIuZGF0YSgnb3JpZ2luYWwtdGV4dCcpKSwgNDAwMCk7XG5cdH0pO1xuXG5cdGNsaXBib2FyZC5vbignZXJyb3InLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoYnJvd3Nlck5vU3VwcG9ydENvcHlpbmcpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJGNsaXBib2FyZExpbmtzLmhpZGUoKSwgNDAwMCk7XG5cdH0pO1xufSk7XG5cbi8vIFF1aWNrIEFkZC5cbmpRdWVyeSgkID0+IHtcblx0Y29uc3QgJG1vZGFsID0gJCgnI3BsdC1xdWljay1hZGQnKTtcblx0Y29uc3QgJGZvcm0gPSAkbW9kYWwuZmluZCgnZm9ybTpmaXJzdCcpO1xuXHRjb25zdCAkc2F2ZURyYWZ0ID0gJCgnI3BsdC1xdWljay1hZGQtc2F2ZScpO1xuXHRjb25zdCAkcHVibGlzaCA9ICQoJyNwbHQtcXVpY2stYWRkLXB1Ymxpc2gnKTtcblx0Y29uc3QgJG1lbnVJdGVtID0gJChcblx0XHQnYVtocmVmJD1cInBvc3RfdHlwZT1wYWdlJnBhZ2U9cGx0LWFkZC1wYWdlLWxpbmtcIl0sIGFbaHJlZiQ9XCIjbmV3LXBhZ2UtbGlua1wiXSdcblx0KTtcblx0Y29uc3QgJG1lc3NhZ2VzID0gJG1vZGFsLmZpbmQoJy5tZXNzYWdlcycpO1xuXHRjb25zdCAkc2hvcnRVcmxNZXNzYWdlID0gJG1vZGFsLmZpbmQoJy5zaG9ydC11cmwtbWVzc2FnZScpO1xuXHRjb25zdCAkdGl0bGUgPSAkbW9kYWwuZmluZCgnW25hbWU9XCJ0aXRsZVwiXScpO1xuXHRjb25zdCAkdXJsID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwidXJsXCJdJyk7XG5cdGNvbnN0ICRzbHVnID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwic2x1Z1wiXScpO1xuXHRjb25zdCBub25jZSA9ICRtb2RhbC5maW5kKCdbbmFtZT1cInBsdF9ub25jZVwiXScpLnZhbCgpO1xuXHRjb25zdCBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyID0gJHNsdWcucHJvcCgncGxhY2Vob2xkZXInKTtcblx0Y29uc3QgZmFuY3lVcmxzID0gd2luZG93LnBsdFZhcnMuZmFuY3lVcmxzO1xuXHRjb25zdCBbeWVzLCBub10gPSBbdHJ1ZSwgZmFsc2VdO1xuXG5cdGNvbnN0IG1vZGFsQWN0aW9uID0gYWN0aW9uID0+ICgpID0+ICRtb2RhbC5kaWFsb2coYWN0aW9uKTtcblx0Y29uc3QgaXNPcGVuID0gbW9kYWxBY3Rpb24oJ2lzT3BlbicpO1xuXHRjb25zdCBvcGVuID0gbW9kYWxBY3Rpb24oJ29wZW4nKTtcblx0Y29uc3QgY2xvc2UgPSBtb2RhbEFjdGlvbignY2xvc2UnKTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21UaXRsZSA9ICh0aXRsZSA9ICcnKSA9PiB7XG5cdFx0cmV0dXJuIHRpdGxlXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvLSQvLCAnJylcblx0XHRcdC5yZXBsYWNlKC9eLS8sICcnKTtcblx0fTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21TbHVnID0gKHNsdWcgPSAnJykgPT4ge1xuXHRcdHJldHVybiBzbHVnXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvXi0vLCAnJyk7XG5cdH07XG5cblx0Y29uc3QgYWRkTWVzc2FnZSA9IG1lc3NhZ2UgPT4ge1xuXHRcdGNvbnN0ICRuZXdNZXNzYWdlID0gJChgPHA+JHttZXNzYWdlfTwvcD5gKTtcblx0XHQkbWVzc2FnZXMuYXBwZW5kKCRuZXdNZXNzYWdlKTtcblx0XHRyZXR1cm4gJG5ld01lc3NhZ2U7XG5cdH07XG5cblx0Y29uc3QgYWRkRXhwaXJpbmdNZXNzYWdlID0gKG1lc3NhZ2UsIGR1cmF0aW9uKSA9PiB7XG5cdFx0Y29uc3QgJG5ld01lc3NhZ2UgPSBhZGRNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJG5ld01lc3NhZ2UuZmFkZU91dCgpLCBkdXJhdGlvbik7XG5cdFx0cmV0dXJuICRuZXdNZXNzYWdlO1xuXHR9O1xuXG5cdGNvbnN0IGRpc3BsYXlTaG9ydFVybE1lc3NhZ2UgPSBzaG93ID0+ICRzaG9ydFVybE1lc3NhZ2UudG9nZ2xlKHNob3cpO1xuXG5cdGNvbnN0IHVwZGF0ZVNsdWcgPSAoKSA9PiB7XG5cdFx0Y29uc3QgcGxhY2Vob2xkZXJTbHVnID0gbWFrZVNsdWdGcm9tVGl0bGUoJHRpdGxlLnZhbCgpKTtcblx0XHRjb25zdCBzbHVnID0gbWFrZVNsdWdGcm9tU2x1Zygkc2x1Zy52YWwoKSk7XG5cblx0XHQkc2x1Zy5wcm9wKFxuXHRcdFx0J3BsYWNlaG9sZGVyJyxcblx0XHRcdHBsYWNlaG9sZGVyU2x1Zy5sZW5ndGggPyBwbGFjZWhvbGRlclNsdWcgOiBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyXG5cdFx0KTtcblx0XHQkc2x1Zy52YWwoc2x1Zyk7XG5cdH07XG5cblx0Y29uc3Qgbm9EZWZhdWx0RXZlbnQgPSBmdW5jID0+IGUgPT4ge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRmdW5jKCk7XG5cdH07XG5cblx0Y29uc3QgaGFyZFVwZGF0ZVNsdWcgPSBub0RlZmF1bHRFdmVudCgoKSA9PlxuXHRcdCRzbHVnLnZhbChtYWtlU2x1Z0Zyb21UaXRsZSgkc2x1Zy52YWwoKSkpXG5cdCk7XG5cblx0Y29uc3QgaGFuZGxlU2hvd1NsdWdNZXNzYWdlID0gbm9EZWZhdWx0RXZlbnQoKCkgPT5cblx0XHRkaXNwbGF5U2hvcnRVcmxNZXNzYWdlKFxuXHRcdFx0JHNsdWcucHJvcCgncGxhY2Vob2xkZXInKS5sZW5ndGggPiAxNiAmJiAhJHNsdWcudmFsKCkubGVuZ3RoXG5cdFx0KVxuXHQpO1xuXG5cdGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuXHRcdCR0aXRsZS52YWwoJycpO1xuXHRcdCR1cmwudmFsKCcnKTtcblx0XHQkc2x1Zy52YWwoJycpO1xuXHRcdCRzbHVnLnByb3AoJ3BsYWNlaG9sZGVyJywgZGVmYXVsdFNsdWdQbGFjZWhvbGRlcik7XG5cdFx0bWF5YmVVcGRhdGVCdXR0b25zKCk7XG5cdH07XG5cblx0Y29uc3QgdXBkYXRlQnV0dG9ucyA9IChlbmFibGVkID0geWVzKSA9PiB7XG5cdFx0JHB1Ymxpc2gucHJvcCgnZGlzYWJsZWQnLCAhZW5hYmxlZCk7XG5cdFx0JHNhdmVEcmFmdC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcblx0fTtcblxuXHRjb25zdCBtYXliZVVwZGF0ZUJ1dHRvbnMgPSAoKSA9PlxuXHRcdHVwZGF0ZUJ1dHRvbnMoJHRpdGxlLnZhbCgpLmxlbmd0aCAmJiAkdXJsLnZhbCgpLmxlbmd0aCk7XG5cblx0Y29uc3Qgc3VibWl0ID0gKHsgcHVibGlzaCA9IHllcyB9ID0ge30pID0+IHtcblx0XHRjb25zdCB0aXRsZSA9ICR0aXRsZS52YWwoKTtcblx0XHRjb25zdCB1cmwgPSAkdXJsLnZhbCgpO1xuXHRcdGxldCBzbHVnID0gJHNsdWcudmFsKCkgPyAkc2x1Zy52YWwoKSA6IG1ha2VTbHVnRnJvbVRpdGxlKHRpdGxlKTtcblxuXHRcdCQucG9zdChcblx0XHRcdGFqYXh1cmwsXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ3BsdF9xdWlja19hZGQnLFxuXHRcdFx0XHRwbHRfdGl0bGU6IHRpdGxlLFxuXHRcdFx0XHRwbHRfdXJsOiB1cmwsXG5cdFx0XHRcdHBsdF9zbHVnOiBzbHVnLFxuXHRcdFx0XHRwbHRfcHVibGlzaDogcHVibGlzaCA/IDEgOiAwLFxuXHRcdFx0XHRwbHRfbm9uY2U6IG5vbmNlLFxuXHRcdFx0fSxcblx0XHRcdHJlc3BvbnNlID0+IHtcblx0XHRcdFx0Y29uc3QgeyBtZXNzYWdlIH0gPSByZXNwb25zZS5kYXRhO1xuXHRcdFx0XHRjb25zdCBkZWxheSA9IDUwMDA7XG5cdFx0XHRcdHJlc2V0KCk7XG5cdFx0XHRcdCR0aXRsZS5mb2N1cygpO1xuXHRcdFx0XHRhZGRFeHBpcmluZ01lc3NhZ2UobWVzc2FnZSwgZGVsYXkpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH07XG5cblx0Y29uc3QgY2xpY2tNZW51SXRlbSA9IG5vRGVmYXVsdEV2ZW50KCgpID0+IChpc09wZW4oKSA/IGNsb3NlKCkgOiBvcGVuKCkpKTtcblx0Y29uc3Qgc2F2ZURyYWZ0ID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogbm8gfSkpO1xuXHRjb25zdCBwdWJsaXNoID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogeWVzIH0pKTtcblxuXHQkbW9kYWwuZGlhbG9nKHtcblx0XHR0aXRsZTogJ0FkZCBQYWdlIExpbmsnLFxuXHRcdGRpYWxvZ0NsYXNzOiAnd3AtZGlhbG9nJyxcblx0XHRhdXRvT3Blbjogbm8sXG5cdFx0ZHJhZ2dhYmxlOiBubyxcblx0XHR3aWR0aDogJ2F1dG8nLFxuXHRcdG1vZGFsOiB5ZXMsXG5cdFx0cmVzaXphYmxlOiBubyxcblx0XHRjbG9zZU9uRXNjYXBlOiB5ZXMsXG5cdFx0cG9zaXRpb246IHtcblx0XHRcdG15OiAnY2VudGVyJyxcblx0XHRcdGF0OiAnY2VudGVyJyxcblx0XHRcdG9mOiB3aW5kb3csXG5cdFx0fSxcblx0XHRvcGVuOiAoKSA9PiAkKCcudWktd2lkZ2V0LW92ZXJsYXknKS5iaW5kKCdjbGljaycsIGNsb3NlKSxcblx0XHRjcmVhdGU6ICgpID0+ICQoJy51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UnKS5hZGRDbGFzcygndWktYnV0dG9uJyksXG5cdH0pO1xuXG5cdC8vIEV2ZW50cy5cblx0aWYgKGZhbmN5VXJscykge1xuXHRcdCR0aXRsZS5rZXl1cCh1cGRhdGVTbHVnKTtcblx0XHQkdGl0bGUua2V5dXAoaGFuZGxlU2hvd1NsdWdNZXNzYWdlKTtcblx0XHQkc2x1Zy5rZXl1cCh1cGRhdGVTbHVnKTtcblx0XHQkc2x1Zy5rZXl1cChoYW5kbGVTaG93U2x1Z01lc3NhZ2UpO1xuXHRcdCRmb3JtLmNoYW5nZShoYXJkVXBkYXRlU2x1Zyk7XG5cdH1cblxuXHQkbWVudUl0ZW0uY2xpY2soY2xpY2tNZW51SXRlbSk7XG5cdCRzYXZlRHJhZnQuY2xpY2soc2F2ZURyYWZ0KTtcblx0JHB1Ymxpc2guY2xpY2socHVibGlzaCk7XG5cdCRmb3JtLnN1Ym1pdChwdWJsaXNoKTtcblx0JHRpdGxlLmtleXVwKG1heWJlVXBkYXRlQnV0dG9ucyk7XG5cdCR1cmwua2V5dXAobWF5YmVVcGRhdGVCdXR0b25zKTtcblx0JGZvcm0uY2hhbmdlKG1heWJlVXBkYXRlQnV0dG9ucyk7XG5cblx0Ly8gSW5pdC5cblx0cmVzZXQoKTtcbn0pO1xuIl19
|
1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
// Copy to clipboard.
|
5 |
+
jQuery(function ($) {
|
6 |
+
var $clipboardLinks = $('.plt-copy-short-url');
|
7 |
+
if (ClipboardJS.isSupported()) {
|
8 |
+
$clipboardLinks.click(function (e) {
|
9 |
+
return e.preventDefault();
|
10 |
+
});
|
11 |
+
} else {
|
12 |
+
$clipboardLinks.hide();
|
13 |
+
}
|
14 |
+
|
15 |
+
$('.plt-links-to button').click(function (e) {
|
16 |
+
$('#cws-links-to').focus();
|
17 |
+
});
|
18 |
+
|
19 |
+
var clipboard = new ClipboardJS('.plt-copy-short-url');
|
20 |
+
var copied = pltVars.copied;
|
21 |
+
var browserNoSupportCopying = pltVars.browserNoSupportCopying;
|
22 |
+
|
23 |
+
clipboard.on('success', function (e) {
|
24 |
+
var $trigger = $(e.trigger);
|
25 |
+
|
26 |
+
$trigger.text(copied);
|
27 |
+
setTimeout(function () {
|
28 |
+
return $trigger.text($trigger.data('original-text'));
|
29 |
+
}, 4000);
|
30 |
+
});
|
31 |
+
|
32 |
+
clipboard.on('error', function (e) {
|
33 |
+
var $trigger = $(e.trigger);
|
34 |
+
|
35 |
+
$trigger.text(browserNoSupportCopying);
|
36 |
+
setTimeout(function () {
|
37 |
+
return $clipboardLinks.hide();
|
38 |
+
}, 4000);
|
39 |
+
});
|
40 |
+
});
|
41 |
+
|
42 |
+
// Quick Add.
|
43 |
+
jQuery(function ($) {
|
44 |
+
var $modal = $('#plt-quick-add');
|
45 |
+
var $form = $modal.find('form:first');
|
46 |
+
var $saveDraft = $('#plt-quick-add-save');
|
47 |
+
var $publish = $('#plt-quick-add-publish');
|
48 |
+
var $menuItem = $('a[href$="post_type=page&page=plt-add-page-link"], a[href$="#new-page-link"]');
|
49 |
+
var $messages = $modal.find('.messages');
|
50 |
+
var $shortUrlMessage = $modal.find('.short-url-message');
|
51 |
+
var $title = $modal.find('[name="title"]');
|
52 |
+
var $url = $modal.find('[name="url"]');
|
53 |
+
var $slug = $modal.find('[name="slug"]');
|
54 |
+
var nonce = $modal.find('[name="plt_nonce"]').val();
|
55 |
+
var defaultSlugPlaceholder = $slug.prop('placeholder');
|
56 |
+
var fancyUrls = window.pltVars.fancyUrls;
|
57 |
+
var yes = true,
|
58 |
+
no = false;
|
59 |
+
|
60 |
+
|
61 |
+
var modalAction = function modalAction(action) {
|
62 |
+
return function () {
|
63 |
+
return $modal.dialog(action);
|
64 |
+
};
|
65 |
+
};
|
66 |
+
var isOpen = modalAction('isOpen');
|
67 |
+
var open = modalAction('open');
|
68 |
+
var close = modalAction('close');
|
69 |
+
|
70 |
+
var makeSlugFromTitle = function makeSlugFromTitle() {
|
71 |
+
var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
72 |
+
|
73 |
+
return title.toLowerCase().replace(/\s+/g, '-').replace(/-{2,}/g, '-').replace(/[^a-z0-9-]/, '').replace(/-#x2F;, '').replace(/^-/, '');
|
74 |
+
};
|
75 |
+
|
76 |
+
var makeSlugFromSlug = function makeSlugFromSlug() {
|
77 |
+
var slug = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
78 |
+
|
79 |
+
return slug.toLowerCase().replace(/\s+/g, '-').replace(/-{2,}/g, '-').replace(/[^a-z0-9-]/, '').replace(/^-/, '');
|
80 |
+
};
|
81 |
+
|
82 |
+
var addMessage = function addMessage(message) {
|
83 |
+
var $newMessage = $('<p>' + message + '</p>');
|
84 |
+
$messages.append($newMessage);
|
85 |
+
return $newMessage;
|
86 |
+
};
|
87 |
+
|
88 |
+
var addExpiringMessage = function addExpiringMessage(message, duration) {
|
89 |
+
var $newMessage = addMessage(message);
|
90 |
+
setTimeout(function () {
|
91 |
+
return $newMessage.fadeOut();
|
92 |
+
}, duration);
|
93 |
+
return $newMessage;
|
94 |
+
};
|
95 |
+
|
96 |
+
var displayShortUrlMessage = function displayShortUrlMessage(show) {
|
97 |
+
return $shortUrlMessage.toggle(show);
|
98 |
+
};
|
99 |
+
|
100 |
+
var updateSlug = function updateSlug() {
|
101 |
+
var placeholderSlug = makeSlugFromTitle($title.val());
|
102 |
+
var slug = makeSlugFromSlug($slug.val());
|
103 |
+
|
104 |
+
$slug.prop('placeholder', placeholderSlug.length ? placeholderSlug : defaultSlugPlaceholder);
|
105 |
+
$slug.val(slug);
|
106 |
+
};
|
107 |
+
|
108 |
+
var noDefaultEvent = function noDefaultEvent(func) {
|
109 |
+
return function (e) {
|
110 |
+
e.preventDefault();
|
111 |
+
func();
|
112 |
+
};
|
113 |
+
};
|
114 |
+
|
115 |
+
var hardUpdateSlug = noDefaultEvent(function () {
|
116 |
+
return $slug.val(makeSlugFromTitle($slug.val()));
|
117 |
+
});
|
118 |
+
|
119 |
+
var handleShowSlugMessage = noDefaultEvent(function () {
|
120 |
+
return displayShortUrlMessage($slug.prop('placeholder').length > 16 && !$slug.val().length);
|
121 |
+
});
|
122 |
+
|
123 |
+
var reset = function reset() {
|
124 |
+
$title.val('');
|
125 |
+
$url.val('');
|
126 |
+
$slug.val('');
|
127 |
+
$slug.prop('placeholder', defaultSlugPlaceholder);
|
128 |
+
maybeUpdateButtons();
|
129 |
+
};
|
130 |
+
|
131 |
+
var updateButtons = function updateButtons() {
|
132 |
+
var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : yes;
|
133 |
+
|
134 |
+
$publish.prop('disabled', !enabled);
|
135 |
+
$saveDraft.prop('disabled', !enabled);
|
136 |
+
};
|
137 |
+
|
138 |
+
var maybeUpdateButtons = function maybeUpdateButtons() {
|
139 |
+
return updateButtons($title.val().length && $url.val().length);
|
140 |
+
};
|
141 |
+
|
142 |
+
var submit = function submit() {
|
143 |
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
144 |
+
_ref$publish = _ref.publish,
|
145 |
+
publish = _ref$publish === undefined ? yes : _ref$publish;
|
146 |
+
|
147 |
+
var title = $title.val();
|
148 |
+
var url = $url.val();
|
149 |
+
var slug = $slug.val() ? $slug.val() : makeSlugFromTitle(title);
|
150 |
+
|
151 |
+
$.post(ajaxurl, {
|
152 |
+
action: 'plt_quick_add',
|
153 |
+
plt_title: title,
|
154 |
+
plt_url: url,
|
155 |
+
plt_slug: slug,
|
156 |
+
plt_publish: publish ? 1 : 0,
|
157 |
+
plt_nonce: nonce
|
158 |
+
}, function (response) {
|
159 |
+
var message = response.data.message;
|
160 |
+
|
161 |
+
var delay = 5000;
|
162 |
+
reset();
|
163 |
+
$title.focus();
|
164 |
+
addExpiringMessage(message, delay);
|
165 |
+
});
|
166 |
+
};
|
167 |
+
|
168 |
+
var clickMenuItem = noDefaultEvent(function () {
|
169 |
+
return isOpen() ? close() : open();
|
170 |
+
});
|
171 |
+
var saveDraft = noDefaultEvent(function () {
|
172 |
+
return submit({ publish: no });
|
173 |
+
});
|
174 |
+
var publish = noDefaultEvent(function () {
|
175 |
+
return submit({ publish: yes });
|
176 |
+
});
|
177 |
+
|
178 |
+
$modal.dialog({
|
179 |
+
title: 'Add Page Link',
|
180 |
+
dialogClass: 'wp-dialog plt-ui-dialog',
|
181 |
+
autoOpen: no,
|
182 |
+
draggable: no,
|
183 |
+
width: 'auto',
|
184 |
+
modal: yes,
|
185 |
+
resizable: no,
|
186 |
+
closeOnEscape: yes,
|
187 |
+
position: {
|
188 |
+
my: 'center',
|
189 |
+
at: 'center',
|
190 |
+
of: window
|
191 |
+
},
|
192 |
+
open: function open() {
|
193 |
+
return $('.ui-widget-overlay').bind('click', close);
|
194 |
+
},
|
195 |
+
create: function create() {
|
196 |
+
$('.plt-ui-dialog .ui-dialog-titlebar-close').addClass('ui-button');
|
197 |
+
$('.plt-ui-dialog').css({ position: 'fixed' });
|
198 |
+
}
|
199 |
+
});
|
200 |
+
|
201 |
+
var repositionModal = function repositionModal() {
|
202 |
+
if (!isOpen()) {
|
203 |
+
return;
|
204 |
+
}
|
205 |
+
|
206 |
+
$modal.dialog('option', 'position', {
|
207 |
+
my: 'center',
|
208 |
+
at: 'center',
|
209 |
+
of: window
|
210 |
+
});
|
211 |
+
};
|
212 |
+
|
213 |
+
$(window).scroll(repositionModal).resize(repositionModal);
|
214 |
+
|
215 |
+
// Events.
|
216 |
+
if (fancyUrls) {
|
217 |
+
$title.keyup(updateSlug);
|
218 |
+
$title.keyup(handleShowSlugMessage);
|
219 |
+
$slug.keyup(updateSlug);
|
220 |
+
$slug.keyup(handleShowSlugMessage);
|
221 |
+
$form.change(hardUpdateSlug);
|
222 |
+
}
|
223 |
+
|
224 |
+
$menuItem.click(clickMenuItem);
|
225 |
+
$saveDraft.click(saveDraft);
|
226 |
+
$publish.click(publish);
|
227 |
+
$form.submit(publish);
|
228 |
+
$title.keyup(maybeUpdateButtons);
|
229 |
+
$url.keyup(maybeUpdateButtons);
|
230 |
+
$form.change(maybeUpdateButtons);
|
231 |
+
|
232 |
+
// Init.
|
233 |
+
reset();
|
234 |
+
});
|
235 |
|
236 |
},{}]},{},[1])
|
237 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9xdWljay1hZGQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBQTtBQUNBLE9BQU8sYUFBSztBQUNYLEtBQU0sa0JBQWtCLEVBQUUscUJBQUYsQ0FBeEI7QUFDQSxLQUFJLFlBQVksV0FBWixFQUFKLEVBQStCO0FBQzlCLGtCQUFnQixLQUFoQixDQUFzQjtBQUFBLFVBQUssRUFBRSxjQUFGLEVBQUw7QUFBQSxHQUF0QjtBQUNBLEVBRkQsTUFFTztBQUNOLGtCQUFnQixJQUFoQjtBQUNBOztBQUVELEdBQUUsc0JBQUYsRUFBMEIsS0FBMUIsQ0FBZ0MsYUFBSztBQUNwQyxJQUFFLGVBQUYsRUFBbUIsS0FBbkI7QUFDQSxFQUZEOztBQUlBLEtBQU0sWUFBWSxJQUFJLFdBQUosQ0FBZ0IscUJBQWhCLENBQWxCO0FBQ0EsS0FBTSxTQUFTLFFBQVEsTUFBdkI7QUFDQSxLQUFNLDBCQUEwQixRQUFRLHVCQUF4Qzs7QUFFQSxXQUFVLEVBQVYsQ0FBYSxTQUFiLEVBQXdCLGFBQUs7QUFDNUIsTUFBTSxXQUFXLEVBQUUsRUFBRSxPQUFKLENBQWpCOztBQUVBLFdBQVMsSUFBVCxDQUFjLE1BQWQ7QUFDQSxhQUFXO0FBQUEsVUFBTSxTQUFTLElBQVQsQ0FBYyxTQUFTLElBQVQsQ0FBYyxlQUFkLENBQWQsQ0FBTjtBQUFBLEdBQVgsRUFBZ0UsSUFBaEU7QUFDQSxFQUxEOztBQU9BLFdBQVUsRUFBVixDQUFhLE9BQWIsRUFBc0IsYUFBSztBQUMxQixNQUFNLFdBQVcsRUFBRSxFQUFFLE9BQUosQ0FBakI7O0FBRUEsV0FBUyxJQUFULENBQWMsdUJBQWQ7QUFDQSxhQUFXO0FBQUEsVUFBTSxnQkFBZ0IsSUFBaEIsRUFBTjtBQUFBLEdBQVgsRUFBeUMsSUFBekM7QUFDQSxFQUxEO0FBTUEsQ0E3QkQ7O0FBK0JBO0FBQ0EsT0FBTyxhQUFLO0FBQ1gsS0FBTSxTQUFTLEVBQUUsZ0JB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MENBQUYsRUFBOEMsUUFBOUMsQ0FBdUQsV0FBdkQ7QUFDQSxLQUFFLGdCQUFGLEVBQW9CLEdBQXBCLENBQXdCLEVBQUUsVUFBVSxPQUFaLEVBQXhCO0FBQ0E7QUFsQlksRUFBZDs7QUFxQkEsS0FBTSxrQkFBa0IsU0FBbEIsZUFBa0IsR0FBTTtBQUM3QixNQUFJLENBQUMsUUFBTCxFQUFlO0FBQ2Q7QUFDQTs7QUFFRCxTQUFPLE1BQVAsQ0FBYyxRQUFkLEVBQXdCLFVBQXhCLEVBQW9DO0FBQ25DLE9BQUksUUFEK0I7QUFFbkMsT0FBSSxRQUYrQjtBQUduQyxPQUFJO0FBSCtCLEdBQXBDO0FBS0EsRUFWRDs7QUFZQSxHQUFFLE1BQUYsRUFDRSxNQURGLENBQ1MsZUFEVCxFQUVFLE1BRkYsQ0FFUyxlQUZUOztBQUlBO0FBQ0EsS0FBSSxTQUFKLEVBQWU7QUFDZCxTQUFPLEtBQVAsQ0FBYSxVQUFiO0FBQ0EsU0FBTyxLQUFQLENBQWEscUJBQWI7QUFDQSxRQUFNLEtBQU4sQ0FBWSxVQUFaO0FBQ0EsUUFBTSxLQUFOLENBQVkscUJBQVo7QUFDQSxRQUFNLE1BQU4sQ0FBYSxjQUFiO0FBQ0E7O0FBRUQsV0FBVSxLQUFWLENBQWdCLGFBQWhCO0FBQ0EsWUFBVyxLQUFYLENBQWlCLFNBQWpCO0FBQ0EsVUFBUyxLQUFULENBQWUsT0FBZjtBQUNBLE9BQU0sTUFBTixDQUFhLE9BQWI7QUFDQSxRQUFPLEtBQVAsQ0FBYSxrQkFBYjtBQUNBLE1BQUssS0FBTCxDQUFXLGtCQUFYO0FBQ0EsT0FBTSxNQUFOLENBQWEsa0JBQWI7O0FBRUE7QUFDQTtBQUNBLENBdkxEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLy8gQ29weSB0byBjbGlwYm9hcmQuXG5qUXVlcnkoJCA9PiB7XG5cdGNvbnN0ICRjbGlwYm9hcmRMaW5rcyA9ICQoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0aWYgKENsaXBib2FyZEpTLmlzU3VwcG9ydGVkKCkpIHtcblx0XHQkY2xpcGJvYXJkTGlua3MuY2xpY2soZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuXHR9IGVsc2Uge1xuXHRcdCRjbGlwYm9hcmRMaW5rcy5oaWRlKCk7XG5cdH1cblxuXHQkKCcucGx0LWxpbmtzLXRvIGJ1dHRvbicpLmNsaWNrKGUgPT4ge1xuXHRcdCQoJyNjd3MtbGlua3MtdG8nKS5mb2N1cygpO1xuXHR9KTtcblxuXHRjb25zdCBjbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkSlMoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0Y29uc3QgY29waWVkID0gcGx0VmFycy5jb3BpZWQ7XG5cdGNvbnN0IGJyb3dzZXJOb1N1cHBvcnRDb3B5aW5nID0gcGx0VmFycy5icm93c2VyTm9TdXBwb3J0Q29weWluZztcblxuXHRjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoY29waWVkKTtcblx0XHRzZXRUaW1lb3V0KCgpID0+ICR0cmlnZ2VyLnRleHQoJHRyaWdnZXIuZGF0YSgnb3JpZ2luYWwtdGV4dCcpKSwgNDAwMCk7XG5cdH0pO1xuXG5cdGNsaXBib2FyZC5vbignZXJyb3InLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoYnJvd3Nlck5vU3VwcG9ydENvcHlpbmcpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJGNsaXBib2FyZExpbmtzLmhpZGUoKSwgNDAwMCk7XG5cdH0pO1xufSk7XG5cbi8vIFF1aWNrIEFkZC5cbmpRdWVyeSgkID0+IHtcblx0Y29uc3QgJG1vZGFsID0gJCgnI3BsdC1xdWljay1hZGQnKTtcblx0Y29uc3QgJGZvcm0gPSAkbW9kYWwuZmluZCgnZm9ybTpmaXJzdCcpO1xuXHRjb25zdCAkc2F2ZURyYWZ0ID0gJCgnI3BsdC1xdWljay1hZGQtc2F2ZScpO1xuXHRjb25zdCAkcHVibGlzaCA9ICQoJyNwbHQtcXVpY2stYWRkLXB1Ymxpc2gnKTtcblx0Y29uc3QgJG1lbnVJdGVtID0gJChcblx0XHQnYVtocmVmJD1cInBvc3RfdHlwZT1wYWdlJnBhZ2U9cGx0LWFkZC1wYWdlLWxpbmtcIl0sIGFbaHJlZiQ9XCIjbmV3LXBhZ2UtbGlua1wiXSdcblx0KTtcblx0Y29uc3QgJG1lc3NhZ2VzID0gJG1vZGFsLmZpbmQoJy5tZXNzYWdlcycpO1xuXHRjb25zdCAkc2hvcnRVcmxNZXNzYWdlID0gJG1vZGFsLmZpbmQoJy5zaG9ydC11cmwtbWVzc2FnZScpO1xuXHRjb25zdCAkdGl0bGUgPSAkbW9kYWwuZmluZCgnW25hbWU9XCJ0aXRsZVwiXScpO1xuXHRjb25zdCAkdXJsID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwidXJsXCJdJyk7XG5cdGNvbnN0ICRzbHVnID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwic2x1Z1wiXScpO1xuXHRjb25zdCBub25jZSA9ICRtb2RhbC5maW5kKCdbbmFtZT1cInBsdF9ub25jZVwiXScpLnZhbCgpO1xuXHRjb25zdCBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyID0gJHNsdWcucHJvcCgncGxhY2Vob2xkZXInKTtcblx0Y29uc3QgZmFuY3lVcmxzID0gd2luZG93LnBsdFZhcnMuZmFuY3lVcmxzO1xuXHRjb25zdCBbeWVzLCBub10gPSBbdHJ1ZSwgZmFsc2VdO1xuXG5cdGNvbnN0IG1vZGFsQWN0aW9uID0gYWN0aW9uID0+ICgpID0+ICRtb2RhbC5kaWFsb2coYWN0aW9uKTtcblx0Y29uc3QgaXNPcGVuID0gbW9kYWxBY3Rpb24oJ2lzT3BlbicpO1xuXHRjb25zdCBvcGVuID0gbW9kYWxBY3Rpb24oJ29wZW4nKTtcblx0Y29uc3QgY2xvc2UgPSBtb2RhbEFjdGlvbignY2xvc2UnKTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21UaXRsZSA9ICh0aXRsZSA9ICcnKSA9PiB7XG5cdFx0cmV0dXJuIHRpdGxlXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvLSQvLCAnJylcblx0XHRcdC5yZXBsYWNlKC9eLS8sICcnKTtcblx0fTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21TbHVnID0gKHNsdWcgPSAnJykgPT4ge1xuXHRcdHJldHVybiBzbHVnXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvXi0vLCAnJyk7XG5cdH07XG5cblx0Y29uc3QgYWRkTWVzc2FnZSA9IG1lc3NhZ2UgPT4ge1xuXHRcdGNvbnN0ICRuZXdNZXNzYWdlID0gJChgPHA+JHttZXNzYWdlfTwvcD5gKTtcblx0XHQkbWVzc2FnZXMuYXBwZW5kKCRuZXdNZXNzYWdlKTtcblx0XHRyZXR1cm4gJG5ld01lc3NhZ2U7XG5cdH07XG5cblx0Y29uc3QgYWRkRXhwaXJpbmdNZXNzYWdlID0gKG1lc3NhZ2UsIGR1cmF0aW9uKSA9PiB7XG5cdFx0Y29uc3QgJG5ld01lc3NhZ2UgPSBhZGRNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJG5ld01lc3NhZ2UuZmFkZU91dCgpLCBkdXJhdGlvbik7XG5cdFx0cmV0dXJuICRuZXdNZXNzYWdlO1xuXHR9O1xuXG5cdGNvbnN0IGRpc3BsYXlTaG9ydFVybE1lc3NhZ2UgPSBzaG93ID0+ICRzaG9ydFVybE1lc3NhZ2UudG9nZ2xlKHNob3cpO1xuXG5cdGNvbnN0IHVwZGF0ZVNsdWcgPSAoKSA9PiB7XG5cdFx0Y29uc3QgcGxhY2Vob2xkZXJTbHVnID0gbWFrZVNsdWdGcm9tVGl0bGUoJHRpdGxlLnZhbCgpKTtcblx0XHRjb25zdCBzbHVnID0gbWFrZVNsdWdGcm9tU2x1Zygkc2x1Zy52YWwoKSk7XG5cblx0XHQkc2x1Zy5wcm9wKFxuXHRcdFx0J3BsYWNlaG9sZGVyJyxcblx0XHRcdHBsYWNlaG9sZGVyU2x1Zy5sZW5ndGggPyBwbGFjZWhvbGRlclNsdWcgOiBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyXG5cdFx0KTtcblx0XHQkc2x1Zy52YWwoc2x1Zyk7XG5cdH07XG5cblx0Y29uc3Qgbm9EZWZhdWx0RXZlbnQgPSBmdW5jID0+IGUgPT4ge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRmdW5jKCk7XG5cdH07XG5cblx0Y29uc3QgaGFyZFVwZGF0ZVNsdWcgPSBub0RlZmF1bHRFdmVudCgoKSA9PlxuXHRcdCRzbHVnLnZhbChtYWtlU2x1Z0Zyb21UaXRsZSgkc2x1Zy52YWwoKSkpXG5cdCk7XG5cblx0Y29uc3QgaGFuZGxlU2hvd1NsdWdNZXNzYWdlID0gbm9EZWZhdWx0RXZlbnQoKCkgPT5cblx0XHRkaXNwbGF5U2hvcnRVcmxNZXNzYWdlKFxuXHRcdFx0JHNsdWcucHJvcCgncGxhY2Vob2xkZXInKS5sZW5ndGggPiAxNiAmJiAhJHNsdWcudmFsKCkubGVuZ3RoXG5cdFx0KVxuXHQpO1xuXG5cdGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuXHRcdCR0aXRsZS52YWwoJycpO1xuXHRcdCR1cmwudmFsKCcnKTtcblx0XHQkc2x1Zy52YWwoJycpO1xuXHRcdCRzbHVnLnByb3AoJ3BsYWNlaG9sZGVyJywgZGVmYXVsdFNsdWdQbGFjZWhvbGRlcik7XG5cdFx0bWF5YmVVcGRhdGVCdXR0b25zKCk7XG5cdH07XG5cblx0Y29uc3QgdXBkYXRlQnV0dG9ucyA9IChlbmFibGVkID0geWVzKSA9PiB7XG5cdFx0JHB1Ymxpc2gucHJvcCgnZGlzYWJsZWQnLCAhZW5hYmxlZCk7XG5cdFx0JHNhdmVEcmFmdC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcblx0fTtcblxuXHRjb25zdCBtYXliZVVwZGF0ZUJ1dHRvbnMgPSAoKSA9PlxuXHRcdHVwZGF0ZUJ1dHRvbnMoJHRpdGxlLnZhbCgpLmxlbmd0aCAmJiAkdXJsLnZhbCgpLmxlbmd0aCk7XG5cblx0Y29uc3Qgc3VibWl0ID0gKHsgcHVibGlzaCA9IHllcyB9ID0ge30pID0+IHtcblx0XHRjb25zdCB0aXRsZSA9ICR0aXRsZS52YWwoKTtcblx0XHRjb25zdCB1cmwgPSAkdXJsLnZhbCgpO1xuXHRcdGxldCBzbHVnID0gJHNsdWcudmFsKCkgPyAkc2x1Zy52YWwoKSA6IG1ha2VTbHVnRnJvbVRpdGxlKHRpdGxlKTtcblxuXHRcdCQucG9zdChcblx0XHRcdGFqYXh1cmwsXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ3BsdF9xdWlja19hZGQnLFxuXHRcdFx0XHRwbHRfdGl0bGU6IHRpdGxlLFxuXHRcdFx0XHRwbHRfdXJsOiB1cmwsXG5cdFx0XHRcdHBsdF9zbHVnOiBzbHVnLFxuXHRcdFx0XHRwbHRfcHVibGlzaDogcHVibGlzaCA/IDEgOiAwLFxuXHRcdFx0XHRwbHRfbm9uY2U6IG5vbmNlLFxuXHRcdFx0fSxcblx0XHRcdHJlc3BvbnNlID0+IHtcblx0XHRcdFx0Y29uc3QgeyBtZXNzYWdlIH0gPSByZXNwb25zZS5kYXRhO1xuXHRcdFx0XHRjb25zdCBkZWxheSA9IDUwMDA7XG5cdFx0XHRcdHJlc2V0KCk7XG5cdFx0XHRcdCR0aXRsZS5mb2N1cygpO1xuXHRcdFx0XHRhZGRFeHBpcmluZ01lc3NhZ2UobWVzc2FnZSwgZGVsYXkpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH07XG5cblx0Y29uc3QgY2xpY2tNZW51SXRlbSA9IG5vRGVmYXVsdEV2ZW50KCgpID0+IChpc09wZW4oKSA/IGNsb3NlKCkgOiBvcGVuKCkpKTtcblx0Y29uc3Qgc2F2ZURyYWZ0ID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogbm8gfSkpO1xuXHRjb25zdCBwdWJsaXNoID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogeWVzIH0pKTtcblxuXHQkbW9kYWwuZGlhbG9nKHtcblx0XHR0aXRsZTogJ0FkZCBQYWdlIExpbmsnLFxuXHRcdGRpYWxvZ0NsYXNzOiAnd3AtZGlhbG9nIHBsdC11aS1kaWFsb2cnLFxuXHRcdGF1dG9PcGVuOiBubyxcblx0XHRkcmFnZ2FibGU6IG5vLFxuXHRcdHdpZHRoOiAnYXV0bycsXG5cdFx0bW9kYWw6IHllcyxcblx0XHRyZXNpemFibGU6IG5vLFxuXHRcdGNsb3NlT25Fc2NhcGU6IHllcyxcblx0XHRwb3NpdGlvbjoge1xuXHRcdFx0bXk6ICdjZW50ZXInLFxuXHRcdFx0YXQ6ICdjZW50ZXInLFxuXHRcdFx0b2Y6IHdpbmRvdyxcblx0XHR9LFxuXHRcdG9wZW46ICgpID0+ICQoJy51aS13aWRnZXQtb3ZlcmxheScpLmJpbmQoJ2NsaWNrJywgY2xvc2UpLFxuXHRcdGNyZWF0ZTogKCkgPT4ge1xuXHRcdFx0JCgnLnBsdC11aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZScpLmFkZENsYXNzKCd1aS1idXR0b24nKTtcblx0XHRcdCQoJy5wbHQtdWktZGlhbG9nJykuY3NzKHsgcG9zaXRpb246ICdmaXhlZCcgfSk7XG5cdFx0fSxcblx0fSk7XG5cblx0Y29uc3QgcmVwb3NpdGlvbk1vZGFsID0gKCkgPT4ge1xuXHRcdGlmICghaXNPcGVuKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQkbW9kYWwuZGlhbG9nKCdvcHRpb24nLCAncG9zaXRpb24nLCB7XG5cdFx0XHRteTogJ2NlbnRlcicsXG5cdFx0XHRhdDogJ2NlbnRlcicsXG5cdFx0XHRvZjogd2luZG93LFxuXHRcdH0pO1xuXHR9O1xuXG5cdCQod2luZG93KVxuXHRcdC5zY3JvbGwocmVwb3NpdGlvbk1vZGFsKVxuXHRcdC5yZXNpemUocmVwb3NpdGlvbk1vZGFsKTtcblxuXHQvLyBFdmVudHMuXG5cdGlmIChmYW5jeVVybHMpIHtcblx0XHQkdGl0bGUua2V5dXAodXBkYXRlU2x1Zyk7XG5cdFx0JHRpdGxlLmtleXVwKGhhbmRsZVNob3dTbHVnTWVzc2FnZSk7XG5cdFx0JHNsdWcua2V5dXAodXBkYXRlU2x1Zyk7XG5cdFx0JHNsdWcua2V5dXAoaGFuZGxlU2hvd1NsdWdNZXNzYWdlKTtcblx0XHQkZm9ybS5jaGFuZ2UoaGFyZFVwZGF0ZVNsdWcpO1xuXHR9XG5cblx0JG1lbnVJdGVtLmNsaWNrKGNsaWNrTWVudUl0ZW0pO1xuXHQkc2F2ZURyYWZ0LmNsaWNrKHNhdmVEcmFmdCk7XG5cdCRwdWJsaXNoLmNsaWNrKHB1Ymxpc2gpO1xuXHQkZm9ybS5zdWJtaXQocHVibGlzaCk7XG5cdCR0aXRsZS5rZXl1cChtYXliZVVwZGF0ZUJ1dHRvbnMpO1xuXHQkdXJsLmtleXVwKG1heWJlVXBkYXRlQnV0dG9ucyk7XG5cdCRmb3JtLmNoYW5nZShtYXliZVVwZGF0ZUJ1dHRvbnMpO1xuXG5cdC8vIEluaXQuXG5cdHJlc2V0KCk7XG59KTtcbiJdfQ==
|
package-lock.json
CHANGED
@@ -1,13 +1,275 @@
|
|
1 |
{
|
2 |
"name": "page-links-to",
|
3 |
-
"version": "3.
|
4 |
"lockfileVersion": 1,
|
5 |
"requires": true,
|
6 |
"dependencies": {
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
"version": "1.3.3",
|
9 |
-
"resolved": "https://registry.npmjs.org/
|
10 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
"dev": true,
|
12 |
"requires": {
|
13 |
"jsonparse": "^1.2.0",
|
@@ -21,40 +283,46 @@
|
|
21 |
"dev": true
|
22 |
},
|
23 |
"acorn": {
|
24 |
-
"version": "
|
25 |
-
"resolved": "https://registry.npmjs.org/acorn/-/acorn-
|
26 |
-
"integrity": "
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
"dev": true
|
28 |
},
|
29 |
"acorn-node": {
|
30 |
-
"version": "1.
|
31 |
-
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.
|
32 |
-
"integrity": "sha512-
|
33 |
"dev": true,
|
34 |
"requires": {
|
35 |
-
"acorn": "^
|
|
|
|
|
36 |
"xtend": "^4.0.1"
|
37 |
-
},
|
38 |
-
"dependencies": {
|
39 |
-
"acorn": {
|
40 |
-
"version": "5.6.2",
|
41 |
-
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.6.2.tgz",
|
42 |
-
"integrity": "sha512-zUzo1E5dI2Ey8+82egfnttyMlMZ2y0D8xOCO3PNPPlYXpl8NZvF6Qk9L9BEtJs+43FqEmfBViDqc5d1ckRDguw==",
|
43 |
-
"dev": true
|
44 |
-
}
|
45 |
}
|
46 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
"ajv": {
|
48 |
-
"version": "
|
49 |
-
"resolved": "https://registry.npmjs.org/ajv/-/ajv-
|
50 |
-
"integrity": "
|
51 |
"dev": true,
|
52 |
"optional": true,
|
53 |
"requires": {
|
54 |
-
"
|
55 |
-
"fast-deep-equal": "^1.0.0",
|
56 |
"fast-json-stable-stringify": "^2.0.0",
|
57 |
-
"json-schema-traverse": "^0.
|
|
|
58 |
}
|
59 |
},
|
60 |
"alphanum-sort": {
|
@@ -63,6 +331,12 @@
|
|
63 |
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
|
64 |
"dev": true
|
65 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
"ansi-regex": {
|
67 |
"version": "2.1.1",
|
68 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
@@ -76,20 +350,21 @@
|
|
76 |
"dev": true
|
77 |
},
|
78 |
"anymatch": {
|
79 |
-
"version": "
|
80 |
-
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-
|
81 |
-
"integrity": "sha512-
|
82 |
"dev": true,
|
83 |
"requires": {
|
84 |
-
"micromatch": "^
|
85 |
-
"normalize-path": "^2.
|
86 |
}
|
87 |
},
|
88 |
"aproba": {
|
89 |
"version": "1.2.0",
|
90 |
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
91 |
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
|
92 |
-
"dev": true
|
|
|
93 |
},
|
94 |
"archiver": {
|
95 |
"version": "1.3.0",
|
@@ -127,6 +402,7 @@
|
|
127 |
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
|
128 |
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
|
129 |
"dev": true,
|
|
|
130 |
"requires": {
|
131 |
"delegates": "^1.0.0",
|
132 |
"readable-stream": "^2.0.6"
|
@@ -142,13 +418,10 @@
|
|
142 |
}
|
143 |
},
|
144 |
"arr-diff": {
|
145 |
-
"version": "
|
146 |
-
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-
|
147 |
-
"integrity": "sha1-
|
148 |
-
"dev": true
|
149 |
-
"requires": {
|
150 |
-
"arr-flatten": "^1.0.1"
|
151 |
-
}
|
152 |
},
|
153 |
"arr-flatten": {
|
154 |
"version": "1.1.0",
|
@@ -156,12 +429,24 @@
|
|
156 |
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
|
157 |
"dev": true
|
158 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
"array-differ": {
|
160 |
"version": "1.0.0",
|
161 |
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
162 |
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
|
163 |
"dev": true
|
164 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
"array-filter": {
|
166 |
"version": "0.0.1",
|
167 |
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
|
@@ -186,6 +471,12 @@
|
|
186 |
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
|
187 |
"dev": true
|
188 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
"array-union": {
|
190 |
"version": "1.0.2",
|
191 |
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
@@ -202,9 +493,9 @@
|
|
202 |
"dev": true
|
203 |
},
|
204 |
"array-unique": {
|
205 |
-
"version": "0.2
|
206 |
-
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.
|
207 |
-
"integrity": "sha1-
|
208 |
"dev": true
|
209 |
},
|
210 |
"arrify": {
|
@@ -213,12 +504,16 @@
|
|
213 |
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
214 |
"dev": true
|
215 |
},
|
|
|
|
|
|
|
|
|
|
|
216 |
"asn1": {
|
217 |
"version": "0.2.3",
|
218 |
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
|
219 |
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
|
220 |
-
"dev": true
|
221 |
-
"optional": true
|
222 |
},
|
223 |
"asn1.js": {
|
224 |
"version": "4.10.1",
|
@@ -263,14 +558,11 @@
|
|
263 |
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
264 |
"dev": true
|
265 |
},
|
266 |
-
"
|
267 |
-
"version": "
|
268 |
-
"resolved": "https://registry.npmjs.org/
|
269 |
-
"integrity": "sha1-
|
270 |
-
"dev": true
|
271 |
-
"requires": {
|
272 |
-
"acorn": "^4.0.3"
|
273 |
-
}
|
274 |
},
|
275 |
"async": {
|
276 |
"version": "2.6.1",
|
@@ -282,54 +574,137 @@
|
|
282 |
}
|
283 |
},
|
284 |
"async-each": {
|
285 |
-
"version": "1.0.
|
286 |
-
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.
|
287 |
-
"integrity": "
|
288 |
"dev": true
|
289 |
},
|
290 |
"asynckit": {
|
291 |
"version": "0.4.0",
|
292 |
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
293 |
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
294 |
-
"dev": true
|
295 |
-
|
|
|
|
|
|
|
|
|
|
|
296 |
},
|
297 |
"autoprefixer": {
|
298 |
-
"version": "9.
|
299 |
-
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.
|
300 |
-
"integrity": "sha512-
|
301 |
"dev": true,
|
302 |
"requires": {
|
303 |
-
"browserslist": "^4.
|
304 |
-
"caniuse-lite": "^1.0.
|
305 |
"normalize-range": "^0.1.2",
|
306 |
"num2fraction": "^1.2.2",
|
307 |
-
"postcss": "^7.0.
|
308 |
-
"postcss-value-parser": "^3.
|
309 |
},
|
310 |
"dependencies": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
"browserslist": {
|
312 |
-
"version": "4.
|
313 |
-
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.
|
314 |
-
"integrity": "sha512-
|
315 |
"dev": true,
|
316 |
"requires": {
|
317 |
-
"caniuse-lite": "^1.0.
|
318 |
-
"electron-to-chromium": "^1.3.
|
319 |
-
"node-releases": "^1.
|
320 |
}
|
321 |
},
|
322 |
"caniuse-lite": {
|
323 |
-
"version": "1.0.
|
324 |
-
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.
|
325 |
-
"integrity": "sha512-
|
326 |
"dev": true
|
327 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
"electron-to-chromium": {
|
329 |
-
"version": "1.3.
|
330 |
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.
|
331 |
-
"integrity": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
"dev": true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
}
|
334 |
}
|
335 |
},
|
@@ -337,13 +712,12 @@
|
|
337 |
"version": "0.7.0",
|
338 |
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
339 |
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
340 |
-
"dev": true
|
341 |
-
"optional": true
|
342 |
},
|
343 |
"aws4": {
|
344 |
-
"version": "1.
|
345 |
-
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.
|
346 |
-
"integrity": "sha512-
|
347 |
"dev": true,
|
348 |
"optional": true
|
349 |
},
|
@@ -1156,78 +1530,137 @@
|
|
1156 |
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
1157 |
"dev": true
|
1158 |
},
|
1159 |
-
"
|
1160 |
-
"version": "
|
1161 |
-
"resolved": "https://registry.npmjs.org/
|
1162 |
-
"integrity": "sha512-
|
1163 |
-
"dev": true
|
1164 |
-
},
|
1165 |
-
"bcrypt-pbkdf": {
|
1166 |
-
"version": "1.0.1",
|
1167 |
-
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
|
1168 |
-
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
|
1169 |
-
"dev": true,
|
1170 |
-
"optional": true,
|
1171 |
-
"requires": {
|
1172 |
-
"tweetnacl": "^0.14.3"
|
1173 |
-
}
|
1174 |
-
},
|
1175 |
-
"binary-extensions": {
|
1176 |
-
"version": "1.11.0",
|
1177 |
-
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
|
1178 |
-
"integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
|
1179 |
-
"dev": true
|
1180 |
-
},
|
1181 |
-
"bl": {
|
1182 |
-
"version": "1.2.2",
|
1183 |
-
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
|
1184 |
-
"integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
|
1185 |
"dev": true,
|
1186 |
"requires": {
|
1187 |
-
"
|
1188 |
-
"
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1196 |
"optional": true,
|
1197 |
"requires": {
|
1198 |
"inherits": "~2.0.0"
|
1199 |
}
|
1200 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
1201 |
"bn.js": {
|
1202 |
"version": "4.11.8",
|
1203 |
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
|
1204 |
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
|
1205 |
"dev": true
|
1206 |
},
|
1207 |
-
"body
|
1208 |
-
"version": "1.
|
1209 |
-
"resolved": "https://registry.npmjs.org/body
|
1210 |
-
"integrity": "sha1-
|
1211 |
"dev": true,
|
1212 |
"requires": {
|
1213 |
-
"
|
1214 |
-
"
|
1215 |
-
"
|
1216 |
-
"
|
1217 |
-
"http-errors": "~1.3.1",
|
1218 |
-
"iconv-lite": "0.4.13",
|
1219 |
-
"on-finished": "~2.3.0",
|
1220 |
-
"qs": "5.2.0",
|
1221 |
-
"raw-body": "~2.1.5",
|
1222 |
-
"type-is": "~1.6.10"
|
1223 |
-
},
|
1224 |
-
"dependencies": {
|
1225 |
-
"qs": {
|
1226 |
-
"version": "5.2.0",
|
1227 |
-
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
1228 |
-
"integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
|
1229 |
-
"dev": true
|
1230 |
-
}
|
1231 |
}
|
1232 |
},
|
1233 |
"boolbase": {
|
@@ -1247,14 +1680,32 @@
|
|
1247 |
}
|
1248 |
},
|
1249 |
"braces": {
|
1250 |
-
"version": "
|
1251 |
-
"resolved": "https://registry.npmjs.org/braces/-/braces-
|
1252 |
-
"integrity": "
|
1253 |
"dev": true,
|
1254 |
"requires": {
|
1255 |
-
"
|
1256 |
-
"
|
1257 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1258 |
}
|
1259 |
},
|
1260 |
"brorand": {
|
@@ -1278,9 +1729,9 @@
|
|
1278 |
}
|
1279 |
},
|
1280 |
"browser-resolve": {
|
1281 |
-
"version": "1.11.
|
1282 |
-
"resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.
|
1283 |
-
"integrity": "
|
1284 |
"dev": true,
|
1285 |
"requires": {
|
1286 |
"resolve": "1.1.7"
|
@@ -1295,9 +1746,9 @@
|
|
1295 |
}
|
1296 |
},
|
1297 |
"browserify": {
|
1298 |
-
"version": "16.2.
|
1299 |
-
"resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.
|
1300 |
-
"integrity": "sha512-
|
1301 |
"dev": true,
|
1302 |
"requires": {
|
1303 |
"JSONStream": "^1.0.3",
|
@@ -1348,62 +1799,6 @@
|
|
1348 |
"util": "~0.10.1",
|
1349 |
"vm-browserify": "^1.0.0",
|
1350 |
"xtend": "^4.0.0"
|
1351 |
-
},
|
1352 |
-
"dependencies": {
|
1353 |
-
"browserify-zlib": {
|
1354 |
-
"version": "0.2.0",
|
1355 |
-
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
|
1356 |
-
"integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
|
1357 |
-
"dev": true,
|
1358 |
-
"requires": {
|
1359 |
-
"pako": "~1.0.5"
|
1360 |
-
}
|
1361 |
-
},
|
1362 |
-
"isarray": {
|
1363 |
-
"version": "1.0.0",
|
1364 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1365 |
-
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
1366 |
-
"dev": true
|
1367 |
-
},
|
1368 |
-
"pako": {
|
1369 |
-
"version": "1.0.6",
|
1370 |
-
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
|
1371 |
-
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
|
1372 |
-
"dev": true
|
1373 |
-
},
|
1374 |
-
"readable-stream": {
|
1375 |
-
"version": "2.3.6",
|
1376 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
1377 |
-
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
1378 |
-
"dev": true,
|
1379 |
-
"requires": {
|
1380 |
-
"core-util-is": "~1.0.0",
|
1381 |
-
"inherits": "~2.0.3",
|
1382 |
-
"isarray": "~1.0.0",
|
1383 |
-
"process-nextick-args": "~2.0.0",
|
1384 |
-
"safe-buffer": "~5.1.1",
|
1385 |
-
"string_decoder": "~1.1.1",
|
1386 |
-
"util-deprecate": "~1.0.1"
|
1387 |
-
}
|
1388 |
-
},
|
1389 |
-
"resolve": {
|
1390 |
-
"version": "1.7.1",
|
1391 |
-
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
|
1392 |
-
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
|
1393 |
-
"dev": true,
|
1394 |
-
"requires": {
|
1395 |
-
"path-parse": "^1.0.5"
|
1396 |
-
}
|
1397 |
-
},
|
1398 |
-
"string_decoder": {
|
1399 |
-
"version": "1.1.1",
|
1400 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
1401 |
-
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
1402 |
-
"dev": true,
|
1403 |
-
"requires": {
|
1404 |
-
"safe-buffer": "~5.1.0"
|
1405 |
-
}
|
1406 |
-
}
|
1407 |
}
|
1408 |
},
|
1409 |
"browserify-aes": {
|
@@ -1451,14 +1846,23 @@
|
|
1451 |
}
|
1452 |
},
|
1453 |
"browserify-des": {
|
1454 |
-
"version": "1.0.
|
1455 |
-
"resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.
|
1456 |
-
"integrity": "sha512-
|
1457 |
"dev": true,
|
1458 |
"requires": {
|
1459 |
"cipher-base": "^1.0.1",
|
1460 |
"des.js": "^1.0.0",
|
1461 |
-
"inherits": "^2.0.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1462 |
}
|
1463 |
},
|
1464 |
"browserify-incremental": {
|
@@ -1526,6 +1930,15 @@
|
|
1526 |
"through": "^2.3.7"
|
1527 |
}
|
1528 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1529 |
"browserslist": {
|
1530 |
"version": "3.2.8",
|
1531 |
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
|
@@ -1537,9 +1950,9 @@
|
|
1537 |
}
|
1538 |
},
|
1539 |
"buffer": {
|
1540 |
-
"version": "5.1
|
1541 |
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.
|
1542 |
-
"integrity": "sha512-
|
1543 |
"dev": true,
|
1544 |
"requires": {
|
1545 |
"base64-js": "^1.0.2",
|
@@ -1574,18 +1987,18 @@
|
|
1574 |
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
|
1575 |
"dev": true
|
1576 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
1577 |
"buffer-xor": {
|
1578 |
"version": "1.0.3",
|
1579 |
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
|
1580 |
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
|
1581 |
"dev": true
|
1582 |
},
|
1583 |
-
"builtin-modules": {
|
1584 |
-
"version": "1.1.1",
|
1585 |
-
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
1586 |
-
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
|
1587 |
-
"dev": true
|
1588 |
-
},
|
1589 |
"builtin-status-codes": {
|
1590 |
"version": "3.0.0",
|
1591 |
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
|
@@ -1593,15 +2006,73 @@
|
|
1593 |
"dev": true
|
1594 |
},
|
1595 |
"bytes": {
|
1596 |
-
"version": "
|
1597 |
-
"resolved": "https://registry.npmjs.org/bytes/-/bytes-
|
1598 |
-
"integrity": "sha1
|
1599 |
"dev": true
|
1600 |
},
|
1601 |
-
"
|
1602 |
"version": "1.0.1",
|
1603 |
-
"resolved": "https://registry.npmjs.org/
|
1604 |
-
"integrity": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1605 |
"dev": true
|
1606 |
},
|
1607 |
"camelcase": {
|
@@ -1633,28 +2104,28 @@
|
|
1633 |
},
|
1634 |
"dependencies": {
|
1635 |
"browserslist": {
|
1636 |
-
"version": "4.
|
1637 |
-
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.
|
1638 |
-
"integrity": "sha512-
|
1639 |
"dev": true,
|
1640 |
"requires": {
|
1641 |
-
"caniuse-lite": "^1.0.
|
1642 |
-
"electron-to-chromium": "^1.3.
|
1643 |
-
"node-releases": "^1.
|
1644 |
},
|
1645 |
"dependencies": {
|
1646 |
"caniuse-lite": {
|
1647 |
-
"version": "1.0.
|
1648 |
-
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.
|
1649 |
-
"integrity": "sha512-
|
1650 |
"dev": true
|
1651 |
}
|
1652 |
}
|
1653 |
},
|
1654 |
"electron-to-chromium": {
|
1655 |
-
"version": "1.3.
|
1656 |
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.
|
1657 |
-
"integrity": "
|
1658 |
"dev": true
|
1659 |
},
|
1660 |
"lodash.memoize": {
|
@@ -1675,8 +2146,7 @@
|
|
1675 |
"version": "0.12.0",
|
1676 |
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
1677 |
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
1678 |
-
"dev": true
|
1679 |
-
"optional": true
|
1680 |
},
|
1681 |
"chalk": {
|
1682 |
"version": "1.1.3",
|
@@ -1691,30 +2161,59 @@
|
|
1691 |
"supports-color": "^2.0.0"
|
1692 |
}
|
1693 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1694 |
"chokidar": {
|
1695 |
-
"version": "1.
|
1696 |
-
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.
|
1697 |
-
"integrity": "
|
1698 |
"dev": true,
|
1699 |
"requires": {
|
1700 |
-
"anymatch": "^
|
1701 |
-
"async-each": "^1.0.
|
1702 |
-
"
|
1703 |
-
"
|
1704 |
-
"
|
|
|
1705 |
"is-binary-path": "^1.0.0",
|
1706 |
-
"is-glob": "^
|
|
|
1707 |
"path-is-absolute": "^1.0.0",
|
1708 |
-
"readdirp": "^2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1709 |
}
|
1710 |
},
|
1711 |
"chownr": {
|
1712 |
-
"version": "1.
|
1713 |
-
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.
|
1714 |
-
"integrity": "
|
1715 |
"dev": true,
|
1716 |
"optional": true
|
1717 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
1718 |
"cipher-base": {
|
1719 |
"version": "1.0.4",
|
1720 |
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
|
@@ -1725,66 +2224,157 @@
|
|
1725 |
"safe-buffer": "^5.0.1"
|
1726 |
}
|
1727 |
},
|
1728 |
-
"
|
1729 |
-
"version": "0.
|
1730 |
-
"resolved": "https://registry.npmjs.org/
|
1731 |
-
"integrity": "
|
1732 |
"dev": true,
|
1733 |
"requires": {
|
1734 |
-
"
|
1735 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1736 |
}
|
1737 |
},
|
1738 |
-
"
|
1739 |
-
"version": "2.
|
1740 |
-
"resolved": "https://registry.npmjs.org/
|
1741 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
1742 |
"requires": {
|
1743 |
-
"
|
1744 |
-
"select": "^1.1.2",
|
1745 |
-
"tiny-emitter": "^2.0.0"
|
1746 |
}
|
1747 |
},
|
1748 |
-
"
|
1749 |
-
"version": "
|
1750 |
-
"resolved": "https://registry.npmjs.org/
|
1751 |
-
"integrity": "sha1-
|
1752 |
-
"dev": true
|
1753 |
-
"optional": true
|
1754 |
},
|
1755 |
-
"
|
1756 |
-
"version": "2.
|
1757 |
-
"resolved": "https://registry.npmjs.org/
|
1758 |
-
"integrity": "
|
1759 |
"dev": true,
|
1760 |
"requires": {
|
1761 |
-
"
|
|
|
1762 |
}
|
1763 |
},
|
1764 |
-
"
|
1765 |
-
"version": "
|
1766 |
-
"resolved": "https://registry.npmjs.org/
|
1767 |
-
"integrity": "sha1
|
1768 |
-
"dev": true
|
1769 |
-
},
|
1770 |
-
"coffeescript": {
|
1771 |
-
"version": "1.10.0",
|
1772 |
-
"resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
|
1773 |
-
"integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
|
1774 |
"dev": true
|
1775 |
},
|
1776 |
-
"
|
1777 |
-
"version": "
|
1778 |
-
"resolved": "https://registry.npmjs.org/
|
1779 |
-
"integrity": "sha512-
|
1780 |
-
"dev": true,
|
1781 |
"requires": {
|
1782 |
-
"
|
1783 |
-
"
|
|
|
1784 |
}
|
1785 |
},
|
1786 |
-
"
|
1787 |
-
"version": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1788 |
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
|
1789 |
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
|
1790 |
"dev": true,
|
@@ -1799,9 +2389,9 @@
|
|
1799 |
"dev": true
|
1800 |
},
|
1801 |
"color-string": {
|
1802 |
-
"version": "1.5.
|
1803 |
-
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.
|
1804 |
-
"integrity": "
|
1805 |
"dev": true,
|
1806 |
"requires": {
|
1807 |
"color-name": "^1.0.0",
|
@@ -1824,14 +2414,6 @@
|
|
1824 |
"inline-source-map": "~0.6.0",
|
1825 |
"lodash.memoize": "~3.0.3",
|
1826 |
"source-map": "~0.5.3"
|
1827 |
-
},
|
1828 |
-
"dependencies": {
|
1829 |
-
"source-map": {
|
1830 |