Page Links To - Version 3.0.0

Version Description

  • Quick page link adding UI
  • External link indicator
  • Short URL copying
  • Short URL display on edit screen
Download this release

Release Info

Developer markjaquith
Plugin Icon wp plugin Page Links To
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.11.2 to 3.0.0

classes/plugin.php ADDED
@@ -0,0 +1,915 @@
1
+ <?php
2
+ defined( 'WPINC' ) or die;
3
+
4
+ /**
5
+ * The Page Links To class.
6
+ */
7
+ class CWS_PageLinksTo {
8
+ /**
9
+ * The class instance.
10
+ *
11
+ * @var CWS_PageLinksTo
12
+ */
13
+ static $instance;
14
+
15
+ /**
16
+ * The main plugin file path.
17
+ *
18
+ * @var string
19
+ */
20
+ private $file;
21
+
22
+ const LINK_META_KEY = '_links_to';
23
+ const TARGET_META_KEY = '_links_to_target';
24
+ const VERSION_KEY = 'txfx_plt_schema_version';
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.0.0-beta.1';
29
+
30
+ /**
31
+ * Whether to replace WP links with their specified URLs.
32
+ *
33
+ * @var bool
34
+ */
35
+ protected $replace = true;
36
+
37
+ /**
38
+ * Class constructor. Adds init hook.
39
+ *
40
+ * @param string $file The main plugin file path.
41
+ */
42
+ function __construct( $file ) {
43
+ self::$instance = $this;
44
+ self::$instance->file = $file;
45
+ $this->hook( 'init' );
46
+ }
47
+
48
+ /**
49
+ * Get the plugin instance.
50
+ *
51
+ * @return CWS_PageLinksTo The plugin class instance.
52
+ */
53
+ public static function get_instance() {
54
+ if ( ! self::$instance ) {
55
+ self::$instance = new self();
56
+ }
57
+
58
+ return self::$instance;
59
+ }
60
+
61
+ public function get_file() {
62
+ return $this->file;
63
+ }
64
+
65
+ /**
66
+ * Add a WordPress hook (action/filter).
67
+ *
68
+ * @param mixed $hook first parameter is the name of the hook. If second or third parameters are included, they will be used as a priority (if an integer) or as a class method callback name (if a string).
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 ) ) {
78
+ $priority = $arg;
79
+ } else {
80
+ $method = $arg;
81
+ }
82
+ }
83
+
84
+ return add_action( $hook, array( $this, $method ), $priority, 999 );
85
+ }
86
+
87
+ /**
88
+ * Sanitizes method names with bad characters.
89
+ *
90
+ * @param string $method The raw method name.
91
+ * @return string The sanitized method name.
92
+ */
93
+ private static function sanitize_method( $method ) {
94
+ return str_replace( array( '.', '-' ), array( '_DOT_', '_DASH_' ), $method );
95
+ }
96
+
97
+ /**
98
+ * Includes a file (relative to the plugin base path)
99
+ * and optionally globalizes a named array passed in.
100
+ *
101
+ * @param string $file The file to include.
102
+ * @param array $data A named array of data to globalize.
103
+ * @return void
104
+ */
105
+ public function include_file( $file, $data = array() ) {
106
+ extract( $data, EXTR_SKIP );
107
+ include( $this->get_path() . $file );
108
+ }
109
+
110
+ /**
111
+ * Bootstraps the upgrade process and registers all the hooks.
112
+ *
113
+ * @return void
114
+ */
115
+ public function init() {
116
+ // Check to see if any of our data needs to be upgraded.
117
+ $this->maybe_upgrade();
118
+
119
+ // Load translation files.
120
+ load_plugin_textdomain( 'page-links-to', false, basename( dirname( $this->file ) ) . '/languages' );
121
+
122
+ // Init hook.
123
+ do_action( 'page_links_to_init', $this );
124
+
125
+ // Register hooks.
126
+ $this->register_hooks();
127
+ }
128
+
129
+ /**
130
+ * Registers all the hooks.
131
+ *
132
+ * @return void
133
+ */
134
+ function register_hooks() {
135
+ // Hook in to URL generation.
136
+ $this->hook( 'page_link', 'link', 20 );
137
+ $this->hook( 'post_link', 'link', 20 );
138
+ $this->hook( 'post_type_link', 'link', 20 );
139
+ $this->hook( 'attachment_link', 'link', 20 );
140
+
141
+ // Non-standard priority hooks.
142
+ $this->hook( 'do_meta_boxes', 20 );
143
+ $this->hook( 'admin_bar_menu', 999 );
144
+ $this->hook( 'wp_ajax_sample-permalink', 'disable_replacements', -999 );
145
+
146
+ // Non-standard callback hooks.
147
+ $this->hook( 'load-post.php', 'load_post' );
148
+ $this->hook( 'wp_ajax_plt_dismiss_notice', 'ajax_dismiss_notice' );
149
+ $this->hook( 'wp_ajax_plt_quick_add', 'ajax_quick_add' );
150
+
151
+ // Standard hooks.
152
+ $this->hook( 'wp_list_pages' );
153
+ $this->hook( 'template_redirect' );
154
+ $this->hook( 'save_post' );
155
+ $this->hook( 'wp_enqueue_scripts' );
156
+ $this->hook( 'edit_attachment' );
157
+ $this->hook( 'wp_nav_menu_objects' );
158
+ $this->hook( 'plugin_row_meta' );
159
+ $this->hook( 'display_post_states' );
160
+ $this->hook( 'admin_footer' );
161
+ $this->hook( 'admin_enqueue_scripts' );
162
+ $this->hook( 'admin_menu' );
163
+
164
+ // Page row actions.
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
+ // Metadata validation grants users editing privileges for our custom fields.
175
+ register_meta( 'post', self::LINK_META_KEY, null, '__return_true' );
176
+ register_meta( 'post', self::TARGET_META_KEY, null, '__return_true' );
177
+ }
178
+
179
+ /**
180
+ * Performs an upgrade for older versions
181
+ *
182
+ * * Version 3: Underscores the keys so they only show in the plugin's UI.
183
+ *
184
+ * @return void
185
+ */
186
+ function maybe_upgrade() {
187
+ // In earlier versions, the meta keys were stored without a leading underscore.
188
+ // Since then, underscore has been codified as the standard for "something manages this" post meta.
189
+ if ( ! get_option( self::VERSION_KEY ) || get_option( self::VERSION_KEY ) < 3 ) {
190
+ global $wpdb;
191
+ $total_affected = 0;
192
+ foreach ( array( '', '_target', '_type' ) as $meta_key ) {
193
+ $meta_key = 'links_to' . $meta_key;
194
+ $affected = $wpdb->update( $wpdb->postmeta, array(
195
+ 'meta_key' => '_' . $meta_key,
196
+ ), compact( 'meta_key' ) );
197
+ if ( $affected ) {
198
+ $total_affected += $affected;
199
+ }
200
+ }
201
+ // Only flush the cache if something changed.
202
+ if ( $total_affected > 0 ) {
203
+ wp_cache_flush();
204
+ }
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Disables replacements.
210
+ *
211
+ * @return void
212
+ */
213
+ public function disable_replacements() {
214
+ $this->replace = false;
215
+ }
216
+
217
+ /**
218
+ * Enqueues frontend scripts.
219
+ *
220
+ * @return void
221
+ */
222
+ public function wp_enqueue_scripts() {
223
+ wp_enqueue_script( 'page-links-to', $this->get_url() . 'js/new-tab.min.js', array(), self::CSS_JS_VERSION, true );
224
+ }
225
+
226
+ /**
227
+ * Enqueues backend scripts.
228
+ *
229
+ * @return void
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
+ wp_register_script( 'plt-quick-add', $this->get_url() . 'js/quick-add.min.js', array( 'plt-clipboard' ), self::CSS_JS_VERSION, true );
234
+ wp_register_style( 'plt-quick-add', $this->get_url() . '/css/quick-add.css', array(), self::CSS_JS_VERSION );
235
+ }
236
+
237
+ /**
238
+ * Adds our items to the admin bar.
239
+ *
240
+ * @return WP_Admin_Bar The admin bar object.
241
+ */
242
+ public function admin_bar_menu( $bar ) {
243
+ if ( is_admin() ) {
244
+ $bar->add_node( array(
245
+ 'id' => 'new-page-link',
246
+ 'title' => __( 'Page Link', 'page-links-to' ),
247
+ 'parent' => 'new-content',
248
+ 'href' => '#new-page-link',
249
+ ));
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Filters the page row actions.
255
+ *
256
+ * @param array $actions The current array of actions.
257
+ * @param WP_Post $post The current post row being processed.
258
+ * @return array The updated array of actions.
259
+ */
260
+ public function page_row_actions( $actions, $post ) {
261
+ if ( self::get_link( $post ) ) {
262
+ $new_actions = array();
263
+ $inserted = false;
264
+ $original_html = '<a href="' . esc_attr( $this->original_link( $post->ID ) ) . '" class="plt-copy-short-url" data-clipboard-text="' . esc_attr( $this->original_link( $post->ID ) ) . '" data-original-text="' . __( 'Copy Short URL', 'page-links-to' ) . '">' . __( 'Copy Short URL', 'page-links-to' ) . '</a>';
265
+ $original_key = 'plt_original';
266
+
267
+ foreach ( $actions as $key => $html ) {
268
+ $new_actions[$key] = $html;
269
+
270
+ if ( 'view' === $key ) {
271
+ $inserted = true;
272
+ $new_actions[$original_key] = $original_html;
273
+ }
274
+ }
275
+
276
+ if ( ! $inserted ) {
277
+ $new_actions[$original_key] = $original_html;
278
+ }
279
+
280
+ $actions = $new_actions;
281
+ }
282
+
283
+ return $actions;
284
+ }
285
+
286
+ /**
287
+ * Adds the Add Page Link menu item.
288
+ *
289
+ * @return void
290
+ */
291
+ public function admin_menu() {
292
+ add_submenu_page( 'edit.php?post_type=page', '', __( 'Add Page Link', 'page-links-pro' ), 'edit_pages', 'plt-add-page-link', '__return_empty_string' );
293
+ }
294
+
295
+ /**
296
+ * Adds the quick-add HTML to the admin footer.
297
+ *
298
+ * @return void
299
+ */
300
+ public function admin_footer() {
301
+ if ( current_user_can( 'edit_pages' ) ) {
302
+ $this->include_file( 'templates/quick-add.php' );
303
+ }
304
+ }
305
+
306
+ /**
307
+ * Returns a single piece of post meta.
308
+ *
309
+ * @param int $post_id a post ID.
310
+ * @param string $key a post meta key.
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 ) {
314
+ $meta = get_post_meta( absint( $post_id ), $key, true );
315
+
316
+ if ( '' === $meta ) {
317
+ return false;
318
+ }
319
+
320
+ return $meta;
321
+ }
322
+
323
+ /**
324
+ * Returns the link for the specified post.
325
+ *
326
+ * @param WP_Post|int $post a post or post ID.
327
+ * @return mixed either a URL or false.
328
+ */
329
+ public static function get_link( $post ) {
330
+ $post = get_post( $post );
331
+ $post_id = empty( $post ) ? null : $post->ID;
332
+
333
+ return self::get_post_meta( $post_id, self::LINK_META_KEY );
334
+ }
335
+
336
+ /**
337
+ * Returns the _blank target status for the specified post.
338
+ *
339
+ * @param WP_Post|int $post a post or post ID.
340
+ * @return bool whether it should open in a new tab.
341
+ */
342
+ public static function get_target( $post ) {
343
+ $post = get_post( $post );
344
+ $post_id = empty( $post ) ? null : $post->ID;
345
+
346
+ return (bool) self::get_post_meta( $post_id, self::TARGET_META_KEY );
347
+ }
348
+
349
+ /**
350
+ * Adds the meta box to the post or page edit screen.
351
+ *
352
+ * @param string $page the name of the current page.
353
+ * @param string $context the current context.
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
+ }
361
+
362
+ /**
363
+ * Determine whether a post type supports custom links.
364
+ *
365
+ * @param string $type The post type to check.
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.
372
+ */
373
+ $hook = 'page-links-to-post-types';
374
+
375
+ $supported_post_types = (array) apply_filters( $hook, array_keys( get_post_types( array(
376
+ 'show_ui' => true,
377
+ ) ) ) );
378
+
379
+ return in_array( $type, $supported_post_types );
380
+ }
381
+
382
+ /**
383
+ * Outputs the Page Links To post screen meta box.
384
+ *
385
+ * @return void
386
+ */
387
+ public function meta_box() {
388
+ $null = null;
389
+ $post = get_post( $null );
390
+ echo '<p>';
391
+ wp_nonce_field( 'cws_plt_' . $post->ID, '_cws_plt_nonce', false, true );
392
+ echo '</p>';
393
+ $url = self::get_link( $post->ID );
394
+ if ( ! $url ) {
395
+ $linked = false;
396
+ $url = '';
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>
404
+ <div id="cws-links-to-custom-section" class="<?php echo ! $linked ? 'hide-if-js' : ''; ?>">
405
+ <p><input placeholder="http://" name="cws_links_to" type="text" id="cws-links-to" value="<?php echo esc_attr( $url ); ?>" /></p>
406
+ <p><label for="cws-links-to-new-tab"><input type="checkbox" name="cws_links_to_new_tab" id="cws-links-to-new-tab" value="_blank" <?php checked( (bool) self::get_target( $post->ID ) ); ?>> <?php _e( 'Open this link in a new tab', 'page-links-to' ); ?></label></p>
407
+ <?php do_action( 'page_links_to_meta_box_bottom' ); ?>
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
+ <?php
412
+ }
413
+
414
+ /**
415
+ * Saves data on attachment save.
416
+ *
417
+ * @param int $post_id The ID of the post being saved.
418
+ * @return int the attachment post ID that was passed in.
419
+ */
420
+ function edit_attachment( $post_id ) {
421
+ return $this->save_post( $post_id );
422
+ }
423
+
424
+ /**
425
+ * Saves data on post save.
426
+ *
427
+ * @param int $post_id a post ID.
428
+ * @return int the post ID that was passed in.
429
+ */
430
+ public static function save_post( $post_id ) {
431
+ if ( isset( $_REQUEST['_cws_plt_nonce'] ) && wp_verify_nonce( $_REQUEST['_cws_plt_nonce'], 'cws_plt_' . $post_id ) ) {
432
+ if ( ( ! isset( $_POST['cws_links_to_choice'] ) || 'custom' == $_POST['cws_links_to_choice'] ) && isset( $_POST['cws_links_to'] ) && strlen( $_POST['cws_links_to'] ) > 0 && $_POST['cws_links_to'] !== 'http://' ) {
433
+ $url = self::clean_url( stripslashes( $_POST['cws_links_to'] ) );
434
+ self::set_link( $post_id, $url );
435
+ if ( isset( $_POST['cws_links_to_new_tab'] ) ) {
436
+ self::set_link_new_tab( $post_id );
437
+ } else {
438
+ self::set_link_same_tab( $post_id );
439
+ }
440
+ } else {
441
+ self::delete_link( $post_id );
442
+ }
443
+ }
444
+
445
+ return $post_id;
446
+ }
447
+
448
+ /**
449
+ * Cleans up a URL.
450
+ *
451
+ * @param string $url URL.
452
+ * @return string cleaned up URL.
453
+ */
454
+ public static function clean_url( $url ) {
455
+ $url = trim( $url );
456
+
457
+ // Starts with 'www.'. Probably a mistake. So add 'http://'.
458
+ if ( 0 === strpos( $url, 'www.' ) ) {
459
+ $url = 'http://' . $url;
460
+ }
461
+
462
+ return $url;
463
+ }
464
+
465
+ /**
466
+ * Have a post point to a custom URL.
467
+ *
468
+ * @param int $post_id post ID.
469
+ * @param string $url the URL to point the post to.
470
+ * @return bool whether anything changed.
471
+ */
472
+ public static function set_link( $post_id, $url ) {
473
+ do_action( 'page_links_to_set_link', $post_id, $url );
474
+ return (bool) update_post_meta( $post_id, self::LINK_META_KEY, $url );
475
+ }
476
+
477
+ /**
478
+ * Tell an custom URL post to open in a new tab.
479
+ *
480
+ * @param int $post_id post ID.
481
+ * @return bool whether anything changed.
482
+ */
483
+ public static function set_link_new_tab( $post_id ) {
484
+ return (bool) update_post_meta( $post_id, self::TARGET_META_KEY, '_blank' );
485
+ }
486
+
487
+ /**
488
+ * Tell an custom URL post to open in the same tab.
489
+ *
490
+ * @param int $post_id post ID.
491
+ * @return bool whether anything changed.
492
+ */
493
+ public static function set_link_same_tab( $post_id ) {
494
+ return delete_post_meta( $post_id, self::TARGET_META_KEY );
495
+ }
496
+
497
+ /**
498
+ * Discard a custom URL and point a post to its normal URL.
499
+ *
500
+ * @param int $post_id post ID.
501
+ * @return bool whether the link was deleted.
502
+ */
503
+ public static function delete_link( $post_id ) {
504
+ $return = delete_post_meta( $post_id, self::LINK_META_KEY );
505
+ delete_post_meta( $post_id, self::TARGET_META_KEY );
506
+
507
+ // Old, unused data that we can delete on the fly.
508
+ delete_post_meta( $post_id, '_links_to_type' );
509
+
510
+ return $return;
511
+ }
512
+
513
+ /**
514
+ * Filter for post links.
515
+ *
516
+ * @param string $link the URL for the post or page.
517
+ * @param int|WP_Post $post post ID or object.
518
+ * @return string output URL.
519
+ */
520
+ public function link( $link, $post ) {
521
+ if ( $this->replace ) {
522
+ $post = get_post( $post );
523
+
524
+ $meta_link = self::get_link( $post->ID );
525
+
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
+ }
533
+ }
534
+
535
+ return $link;
536
+ }
537
+
538
+ /**
539
+ * Returns the original URL of the post.
540
+ *
541
+ * @param null|int|WP_Post $post The post to fetch.
542
+ * @return string The post's original URL.
543
+ */
544
+ function original_link( $post = null ) {
545
+ $this->replace = false;
546
+ $url = get_permalink( $post );
547
+ $this->replace = true;
548
+
549
+ return $url;
550
+ }
551
+
552
+ /**
553
+ * Performs a redirect.
554
+ *
555
+ * @return void
556
+ */
557
+ function template_redirect() {
558
+ $link = self::get_redirect();
559
+
560
+ if ( $link ) {
561
+ do_action( 'page_links_to_redirect_url', get_queried_object_id(), $link );
562
+ wp_redirect( $link, 301 );
563
+ exit;
564
+ }
565
+ }
566
+
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 ) {
573
+ $result = new WP_Query(array(
574
+ 'post_type' => 'any',
575
+ 'meta_key' => self::LINK_META_KEY,
576
+ 'meta_value' => $url,
577
+ 'posts_per_page' => -1,
578
+ 'post_status' => 'any',
579
+ ));
580
+
581
+ return $result->posts;
582
+ }
583
+
584
+ /**
585
+ * Retrieves all posts that have a custom URL.
586
+ *
587
+ * @return array Array of post objects.
588
+ */
589
+ public static function get_all_custom_url_posts() {
590
+ $result = new WP_Query(array(
591
+ 'post_type' => 'any',
592
+ 'meta_key' => self::LINK_META_KEY,
593
+ 'posts_per_page' => -1,
594
+ 'post_status' => 'any',
595
+ ));
596
+
597
+ return $result->posts;
598
+ }
599
+
600
+ /**
601
+ * Gets the redirection URL.
602
+ *
603
+ * @return string|bool the redirection URL, or false.
604
+ */
605
+ public static function get_redirect() {
606
+ if ( ! is_singular() || ! get_queried_object_id() ) {
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
+ }
616
+
617
+ /**
618
+ * Makes a relative URL into an absolute one.
619
+ *
620
+ * @param string $link The relative URL.
621
+ * @return string The absolute URL.
622
+ */
623
+ public static function absolute_url( $url ) {
624
+ // Convert server- and protocol-relative URLs to absolute URLs.
625
+ if ( '/' === $url[0] ) {
626
+ // Protocol-relative.
627
+ if ( '/' === $url[1] ) {
628
+ $url = set_url_scheme( 'http:' . $url );
629
+ } else {
630
+ // Host-relative.
631
+ $url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $url );
632
+ }
633
+ }
634
+
635
+ if ( 'mailto' !== parse_url( $url, PHP_URL_SCHEME ) ) {
636
+ $url = str_replace( '@', '%40', $url );
637
+ }
638
+
639
+ return $url;
640
+ }
641
+
642
+ /**
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 $_args (Unused) the arguments passed to `wp_list_pages()`.
647
+ * @param array $pages Array of WP_Post objects.
648
+ * @return string the modified HTML block.
649
+ */
650
+ function wp_list_pages( $output, $_args, $pages ) {
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;
662
+ }
663
+ }
664
+
665
+ if ( $highlight ) {
666
+ $output = preg_replace( '|<li class="([^"]+) current_page_item"|', '<li class="$1"', $output ); // Kill default highlighting.
667
+ $output = preg_replace( '|<li class="(page_item page-item-' . $current_page_id . ')"|', '<li class="$1 current_page_item"', $output );
668
+ }
669
+
670
+ return $output;
671
+ }
672
+
673
+ /**
674
+ * Filters nav menu objects and adds target=_blank to the ones that need it.
675
+ *
676
+ * @param array $items nav menu items.
677
+ * @return array modified nav menu items.
678
+ */
679
+ public static function wp_nav_menu_objects( $items ) {
680
+ $new_items = array();
681
+
682
+ foreach ( $items as $item ) {
683
+ if ( isset( $item->object_id ) && self::get_target( $item->object_id ) ) {
684
+ $item->target = '_blank';
685
+ }
686
+
687
+ $new_items[] = $item;
688
+ }
689
+
690
+ return $new_items;
691
+ }
692
+
693
+ /**
694
+ * Hooks in as a post is being loaded for editing and conditionally adds a notice.
695
+ *
696
+ * @return void
697
+ */
698
+ public function load_post() {
699
+ if ( isset( $_GET['post'] ) && self::get_link( (int) $_GET['post'] ) ) {
700
+ $this->hook( 'edit_form_after_title' );
701
+ $this->hook( 'admin_notices', 'notify_of_external_link' );
702
+ $this->replace = false;
703
+ }
704
+ }
705
+
706
+ /**
707
+ * Ajax handler for dismissing a notice.
708
+ *
709
+ * @return void
710
+ */
711
+ public static function ajax_dismiss_notice() {
712
+ if ( isset( $_GET['plt_notice'] ) ) {
713
+ self::dismiss_notice( $_GET['plt_notice'] );
714
+ }
715
+ }
716
+
717
+ /**
718
+ * Ajad handler for creating a page link.
719
+ *
720
+ * @return void
721
+ */
722
+ public function ajax_quick_add() {
723
+ if ( current_user_can( 'edit_pages' ) ) {
724
+ check_ajax_referer( 'plt-quick-add', 'plt_nonce' );
725
+
726
+ $post = stripslashes_deep( $_POST );
727
+ $title = $post['plt_title'];
728
+ $url = $post['plt_url'];
729
+ $slug = $post['plt_slug'];
730
+ $publish = (bool) $post['plt_publish'] && current_user_can( 'publish_pages' );
731
+
732
+ $post_id = wp_insert_post(array(
733
+ 'post_type' => 'page',
734
+ 'post_status' => $publish ? 'publish' : 'draft',
735
+ 'post_title' => $title,
736
+ 'post_name' => $slug,
737
+ ));
738
+
739
+ $this->set_link( $post_id, $url );
740
+
741
+ $post = get_post( $post_id );
742
+
743
+ $message = $publish ? __( 'New page link published!', 'page-links-to' ) : __( 'Page link draft saved!', 'page-links-to' );
744
+
745
+ wp_send_json_success( array(
746
+ 'id' => $post->ID,
747
+ 'title' => $post->post_title,
748
+ 'wpUrl' => $this->original_link( $post->ID ),
749
+ 'url' => self::get_link( $post->ID ),
750
+ 'slug' => $post->post_name,
751
+ 'status' => $post->post_status,
752
+ 'message' => $message,
753
+ ));
754
+ }
755
+ }
756
+
757
+ /**
758
+ * Whether a message should be displayed.
759
+ *
760
+ * @return bool Whether to display the message.
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
+ /**
768
+ * Return the notices which have been dismissed.
769
+ *
770
+ * @return array The list of notice IDs that have been dismissed.
771
+ */
772
+ public function get_dismissed_notices() {
773
+ return get_option( self::DISMISSED_NOTICES, array() );
774
+ }
775
+
776
+ /**
777
+ * Mark a notice as dismissed.
778
+ *
779
+ * @param int $id The notice ID to dismiss.
780
+ * @return void
781
+ */
782
+ public static function dismiss_notice( $id ) {
783
+ $notices = self::get_dismissed_notices();
784
+ $notices[] = (int) $id;
785
+
786
+ $notices = array_unique( $notices );
787
+ update_option( self::DISMISSED_NOTICES, $notices );
788
+ }
789
+
790
+ /**
791
+ * Whether anyone on this site has dismissed the given notice.
792
+ *
793
+ * @param int $id The ID of the notice.
794
+ * @return bool Whether anyone has dismissed it.
795
+ */
796
+ public static function has_dismissed_notice( $id ) {
797
+ $dismissed_notices = get_option( self::DISMISSED_NOTICES, array() );
798
+
799
+ return in_array( (int) $id, $dismissed_notices );
800
+ }
801
+
802
+ /**
803
+ * Output the generic notice.
804
+ *
805
+ * @return void
806
+ */
807
+ public static function notify_generic() {
808
+ ?>
809
+ <div id="page-links-to-notification" class="notice updated is-dismissible"><h3><?php _e( 'Page Links To', 'page-links-to' ); ?></h3>
810
+ <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>&nbsp;&nbsp;<small><a href="javascript:void(0)" class="plt-dismiss"><?php _e( 'No thanks', 'page-links-to' ); ?></a></small></p>
811
+ </div>
812
+ <script>
813
+ (function($){
814
+ var $plt = $('#page-links-to-notification');
815
+ $plt
816
+ .on('click', '.notice-dismiss', function(e){
817
+ $.ajax( ajaxurl, {
818
+ type: 'GET',
819
+ data: {
820
+ action: 'plt_dismiss_notice',
821
+ plt_notice: <?php echo json_encode( self::MESSAGE_ID ); ?>
822
+ }
823
+ });
824
+ })
825
+ .on('click', '.plt-dismiss', function(e){
826
+ e.preventDefault();
827
+ $(this).parents('.notice').first().find('.notice-dismiss').click();
828
+ });
829
+ })(jQuery);
830
+ </script>
831
+ <?php
832
+ }
833
+
834
+ /**
835
+ * Outputs a notice that the current post item is pointed to a custom URL.
836
+ *
837
+ * @return void
838
+ */
839
+ public static function notify_of_external_link() {
840
+ ?>
841
+ <div class="notice updated"><p><?php _e( '<strong>Note</strong>: This content is pointing to a custom URL. Use the &#8220;Page Links To&#8221; box to change this behavior.', 'page-links-to' ); ?></p></div>
842
+ <?php
843
+ }
844
+
845
+ public function edit_form_after_title() {
846
+ $this->replace = true;
847
+ $post = get_post();
848
+ $link = self::get_link( $post );
849
+
850
+ if ( ! $link ) {
851
+ return;
852
+ }
853
+
854
+ echo '<div class="plt-links-to"><strong>' . __( 'Links to:', 'page-links-to' ) . '</strong> <a href="' . esc_url( $link ) . '">' . esc_html( $link ) . '</a> <button type="button" class="edit-slug button button-small hide-if-no-js">Edit</button></div>';
855
+ }
856
+
857
+ /**
858
+ * Adds a GitHub link to the plugin meta.
859
+ *
860
+ * @param array $links the current array of links.
861
+ * @param string $file the current plugin being processed.
862
+ * @return array the modified array of links.
863
+ */
864
+ public function plugin_row_meta( $links, $file ) {
865
+ if ( $file === plugin_basename( $this->file ) ) {
866
+ return array_merge(
867
+ $links,
868
+ array( '<a href="https://github.com/markjaquith/page-links-to" target="_blank">GitHub</a>' )
869
+ );
870
+ } else {
871
+ return $links;
872
+ }
873
+ }
874
+
875
+ /**
876
+ * Filter the post states to indicate which ones are linked using this plugin.
877
+ *
878
+ * @param array $states The existing post states.
879
+ * @param WP_Post $post The current post object being displayed.
880
+ * @return array The modified post states array.
881
+ */
882
+ public function display_post_states( $states, $post ) {
883
+ $link = $this->absolute_url( self::get_link( $post ) );
884
+
885
+ if ( $link ) {
886
+ $output = '';
887
+ $output_parts = array(
888
+ 'custom' => '<a title="' . __( 'Linked URL', 'page-links-to' ) . '" href="' . esc_url( $link ) . '" class="plt-post-state-link"><span class="dashicons dashicons-admin-links"></span><span class="url"> ' . esc_url( $link ) . '</span></a>',
889
+ );
890
+ $output_parts = apply_filters( 'page_links_to_post_state_parts', $output_parts, $post, $link );
891
+ $output .= '<span class="plt-post-info">' . implode( $output_parts ) . '</span>';
892
+ $states['plt'] = $output;
893
+ }
894
+
895
+ return $states;
896
+ }
897
+
898
+ /**
899
+ * Returns the URL of this plugin's directory.
900
+ *
901
+ * @return string this plugin's directory URL.
902
+ */
903
+ public function get_url() {
904
+ return plugin_dir_url( $this->file );
905
+ }
906
+
907
+ /**
908
+ * Returns the filesystem path of this plugin's directory.
909
+ *
910
+ * @return string this plugin's directory filesystem path.
911
+ */
912
+ public function get_path() {
913
+ return plugin_dir_path( $this->file );
914
+ }
915
+ }
css/quick-add.css ADDED
@@ -0,0 +1,2 @@
1
+ #plt-quick-add .footer{border-top:1px solid #dfdfdf;display:flex;margin:0 -15px -15px;padding:15px;text-align:right}#plt-quick-add .footer a{text-decoration:none}#plt-quick-add .footer div.messages{margin-right:auto;text-align:left}#plt-quick-add .footer div.messages p{line-height:2em;margin:0}#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{background:#f5f5f5;box-shadow:0 5px 15px 0 rgba(0,0,0,.1);font-style:italic;margin:15px auto 0;max-width:300px;padding:5px;text-align:center}#plt-quick-add label{align-items:center;display:flex;font-size:14px;justify-content:space-between;text-align:left}#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{color:#666;line-height:24px;padding:5px 10px 0}#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 ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../sass/quick-add.sass","quick-add.css"],"names":[],"mappings":"AACC,uBAEC,6BAAA,AAGA,aAAA,AAJA,qBAAA,AAEA,aAAA,AACA,gBAAA,CCCD,ADCC,yBACC,oBAAA,CCCF,ADAC,oCAEC,kBAAA,AADA,eAAA,CCGF,ADDE,sCAEC,gBAAA,AADA,QAAA,CCIH,ADFC,0CACC,gBAAA,CCIF,ADHC,yDACC,OAAA,CCKF,ADHA,wBACC,oBAAA,AACA,gBAAA,CCKD,ADHA,mCAMC,mBAAA,AACA,uCAAA,AALA,kBAAA,AADA,mBAAA,AAEA,gBAAA,AAEA,YAAA,AADA,iBAAA,CCQD,ADHA,qBAKC,mBAAA,AAHA,aAAA,AADA,eAAA,AAGA,8BAAA,AADA,eAAA,CCOD,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,cAGC,WAAA,AADA,iBAAA,AADA,kBAAA,CCaA,ADTD,6BACC,sBAAA,AACA,gBAAA,CCYA,ADVD,cACC,SAAA,CCaA","file":"quick-add.css"}
inc/functions.php ADDED
@@ -0,0 +1,12 @@
1
+ <?php
2
+ defined( 'WPINC' ) or die;
3
+
4
+ /**
5
+ * Returns the original URL of the post.
6
+ *
7
+ * @param null|int|WP_Post $post The post to fetch.
8
+ * @return string The post's original URL.
9
+ */
10
+ function plt_get_original_permalink( $post = null ) {
11
+ return CWS_PageLinksTo::get_instance()->original_link( $post );
12
+ }
js/clipboard.min.js ADDED
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * clipboard.js v2.0.1
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}])});
js/{page-links-to.jsx → meta-box.jsx} RENAMED
File without changes
js/meta-box.min.js ADDED
@@ -0,0 +1,5 @@
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";jQuery(function(t){var i=t("#cws-links-to-custom-section"),n=t("input[type=radio]","#page-links-to");n.filter('input[value="wp"]').prop("checked")&&i.fadeTo(1,0).hide(),n.change(function(){"wp"===t(this).val()?i.fadeTo("fast",0,function(){i.slideUp()}):i.slideDown("fast",function(){i.fadeTo("fast",1,function(){var i=t("#cws-links-to");i.focus().val(i.val())})})})});
3
+
4
+ },{}]},{},[1])
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9tZXRhLWJveC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7YUNBQSxPQUFPLFNBQUEsR0FDTixJQUFNLEVBQVUsRUFBRSxnQ0FDWixFQUFRLEVBQUUsb0JBQXFCLGtCQUVqQyxFQUFNLE9BQU8scUJBQXFCLEtBQUssWUFDMUMsRUFBUSxPQUFPLEVBQUcsR0FBRyxPQUd0QixFQUFNLE9BQU8sV0FHUSxPQUZOLEVBQUUsTUFFTixNQUNULEVBQVEsT0FBTyxPQUFRLEVBQUcsV0FDekIsRUFBUSxZQUdULEVBQVEsVUFBVSxPQUFRLFdBQ3pCLEVBQVEsT0FBTyxPQUFRLEVBQUcsV0FDekIsSUFBTSxFQUFXLEVBQUUsaUJBQ25CLEVBQVMsUUFBUSxJQUFJLEVBQVMiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJqUXVlcnkoJCA9PiB7XG5cdGNvbnN0IHNlY3Rpb24gPSAkKCcjY3dzLWxpbmtzLXRvLWN1c3RvbS1zZWN0aW9uJyk7XG5cdGNvbnN0IGlucHV0ID0gJCgnaW5wdXRbdHlwZT1yYWRpb10nLCAnI3BhZ2UtbGlua3MtdG8nKTtcblxuXHRpZiAoaW5wdXQuZmlsdGVyKCdpbnB1dFt2YWx1ZT1cIndwXCJdJykucHJvcCgnY2hlY2tlZCcpKSB7XG5cdFx0c2VjdGlvbi5mYWRlVG8oMSwgMCkuaGlkZSgpO1xuXHR9XG5cblx0aW5wdXQuY2hhbmdlKGZ1bmN0aW9uKCkge1xuXHRcdGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcblxuXHRcdGlmICgkdGhpcy52YWwoKSA9PT0gJ3dwJykge1xuXHRcdFx0c2VjdGlvbi5mYWRlVG8oJ2Zhc3QnLCAwLCAoKSA9PiB7XG5cdFx0XHRcdHNlY3Rpb24uc2xpZGVVcCgpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNlY3Rpb24uc2xpZGVEb3duKCdmYXN0JywgKCkgPT4ge1xuXHRcdFx0XHRzZWN0aW9uLmZhZGVUbygnZmFzdCcsIDEsICgpID0+IHtcblx0XHRcdFx0XHRjb25zdCAkbGlua3NUbyA9ICQoJyNjd3MtbGlua3MtdG8nKTtcblx0XHRcdFx0XHQkbGlua3NUby5mb2N1cygpLnZhbCgkbGlua3NUby52YWwoKSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KTtcbn0pO1xuIl19
js/new-tab.min.js CHANGED
@@ -1,4 +1,5 @@
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";!function(t){var e=function(t){var e=/#new_tab#x2F;;"A"===t.tagName&&e.test(t.getAttribute("href"))&&(t.setAttribute("target","_blank"),t.setAttribute("href",t.getAttribute("href").replace(e,"")))};t.addEventListener("click",function(t){return e(t.target)}),t.addEventListener("DOMContentLoaded",function(){for(var n=t.getElementsByTagName("A"),r=0;r<n.length;r++)e(n[r])})}(document);
3
4
- },{}]},{},[1]);
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";!function(t){var e=function(t){var e=/#new_tab#x2F;;"A"===t.tagName&&e.test(t.getAttribute("href"))&&(t.setAttribute("target","_blank"),t.setAttribute("href",t.getAttribute("href").replace(e,"")))};t.addEventListener("click",function(t){return e(t.target)}),t.addEventListener("DOMContentLoaded",function(){for(var n=t.getElementsByTagName("A"),r=0;r<n.length;r++)e(n[r])})}(document);
3
4
+ },{}]},{},[1])
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9uZXctdGFiLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtjQ0FBLFNBQUMsR0FFQSxJQUFNLEVBQVMsU0FBQSxHQUNkLElBQU0sRUFBYyxZQUNELE1BQWYsRUFBRyxTQUFtQixFQUFZLEtBQUssRUFBRyxhQUFhLFdBQzFELEVBQUcsYUFBYSxTQUFVLFVBQzFCLEVBQUcsYUFBYSxPQUFRLEVBQUcsYUFBYSxRQUFRLFFBQVEsRUFBYSxPQUt2RSxFQUFFLGlCQUFpQixRQUFTLFNBQUEsR0FBQSxPQUFLLEVBQU8sRUFBRSxVQUcxQyxFQUFFLGlCQUFpQixtQkFBb0IsV0FFdEMsSUFEQSxJQUFNLEVBQVUsRUFBRSxxQkFBcUIsS0FDOUIsRUFBSSxFQUFHLEVBQUksRUFBUSxPQUFRLElBQ25DLEVBQU8sRUFBUSxNQWpCbEIsQ0FvQkciLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIoZCA9PiB7XG5cdC8vIE1ha2VzIGFuIGFuY2hvciBlbGVtZW50IG9wZW4gaW4gYSBuZXcgdGFiLlxuXHRjb25zdCBuZXdUYWIgPSBlbCA9PiB7XG5cdFx0Y29uc3QgbmV3VGFiUmVnZXggPSAvI25ld190YWIkLztcblx0XHRpZiAoZWwudGFnTmFtZSA9PT0gJ0EnICYmIG5ld1RhYlJlZ2V4LnRlc3QoZWwuZ2V0QXR0cmlidXRlKCdocmVmJykpKSB7XG5cdFx0XHRlbC5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcblx0XHRcdGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpLnJlcGxhY2UobmV3VGFiUmVnZXgsICcnKSk7XG5cdFx0fVxuXHR9O1xuXG5cdC8vIEltbWVkaWF0ZWx5IGF0dGFjaCBhIGNsaWNrIGhhbmRsZXIuXG5cdGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IG5ld1RhYihlLnRhcmdldCkpO1xuXG5cdC8vIE9uIHBhZ2UgbG9hZCwgY29udmVydCBhbnkgZXhpc3RpbmcgbmV3IHRhYiBsaW5rcy5cblx0ZC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuXHRcdGNvbnN0IGFuY2hvcnMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJyk7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRuZXdUYWIoYW5jaG9yc1tpXSk7XG5cdFx0fVxuXHR9KTtcbn0pKGRvY3VtZW50KTtcbiJdfQ==
js/page-links-to.min.js DELETED
@@ -1,4 +0,0 @@
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";jQuery(function(t){var i=t("#cws-links-to-custom-section"),n=t("input[type=radio]","#page-links-to");n.filter('input[value="wp"]').prop("checked")&&i.fadeTo(1,0).hide(),n.change(function(){"wp"===t(this).val()?i.fadeTo("fast",0,function(){i.slideUp()}):i.slideDown("fast",function(){i.fadeTo("fast",1,function(){var i=t("#cws-links-to");i.focus().val(i.val())})})})});
3
-
4
- },{}]},{},[1]);
js/quick-add.jsx ADDED
@@ -0,0 +1,198 @@
1
+ // Copy to clipboard.
2
+ jQuery($ => {
3
+ const $clipboardLinks = $('.plt-copy-short-url');
4
+ if (ClipboardJS.isSupported()) {
5
+ $clipboardLinks.click(e => e.preventDefault());
6
+ } else {
7
+ $clipboardLinks.hide();
8
+ }
9
+
10
+ $('.plt-links-to button').click(e => {
11
+ $('#cws-links-to').focus();
12
+ });
13
+
14
+ const clipboard = new ClipboardJS('.plt-copy-short-url');
15
+ const copied = pltVars.copied;
16
+ const browserNoSupportCopying = pltVars.browserNoSupportCopying;
17
+
18
+ clipboard.on('success', e => {
19
+ const $trigger = $(e.trigger);
20
+
21
+ $trigger.text(copied);
22
+ setTimeout(() => $trigger.text($trigger.data('original-text')), 4000);
23
+ });
24
+
25
+ clipboard.on('error', e => {
26
+ const $trigger = $(e.trigger);
27
+
28
+ $trigger.text(browserNoSupportCopying);
29
+ setTimeout(() => $clipboardLinks.hide(), 4000);
30
+ });
31
+ });
32
+
33
+ // Quick Add.
34
+ jQuery($ => {
35
+ const $modal = $('#plt-quick-add');
36
+ const $form = $modal.find('form:first');
37
+ const $saveDraft = $('#plt-quick-add-save');
38
+ const $publish = $('#plt-quick-add-publish');
39
+ const $menuItem = $(
40
+ 'a[href$="post_type=page&page=plt-add-page-link"], a[href$="#new-page-link"]'
41
+ );
42
+ const $messages = $modal.find('.messages');
43
+ const $shortUrlMessage = $modal.find('.short-url-message');
44
+ const $title = $modal.find('[name="title"]');
45
+ const $url = $modal.find('[name="url"]');
46
+ const $slug = $modal.find('[name="slug"]');
47
+ const nonce = $modal.find('[name="plt_nonce"]').val();
48
+ const defaultSlugPlaceholder = $slug.prop('placeholder');
49
+ const fancyUrls = window.pltVars.fancyUrls;
50
+ const [yes, no] = [true, false];
51
+
52
+ const modalAction = action => () => $modal.dialog(action);
53
+ const isOpen = modalAction('isOpen');
54
+ const open = modalAction('open');
55
+ const close = modalAction('close');
56
+
57
+ const makeSlugFromTitle = (title = '') => {
58
+ return title
59
+ .toLowerCase()
60
+ .replace(/\s+/g, '-')
61
+ .replace(/-{2,}/g, '-')
62
+ .replace(/[^a-z0-9-]/, '')
63
+ .replace(/-#x2F;, '')
64
+ .replace(/^-/, '');
65
+ };
66
+
67
+ const makeSlugFromSlug = (slug = '') => {
68
+ return slug
69
+ .toLowerCase()
70
+ .replace(/\s+/g, '-')
71
+ .replace(/-{2,}/g, '-')
72
+ .replace(/[^a-z0-9-]/, '')
73
+ .replace(/^-/, '');
74
+ };
75
+
76
+ const addMessage = message => {
77
+ const $newMessage = $(`<p>${message}</p>`);
78
+ $messages.append($newMessage);
79
+ return $newMessage;
80
+ };
81
+
82
+ const addExpiringMessage = (message, duration) => {
83
+ const $newMessage = addMessage(message);
84
+ setTimeout(() => $newMessage.fadeOut(), duration);
85
+ return $newMessage;
86
+ };
87
+
88
+ const displayShortUrlMessage = show => $shortUrlMessage.toggle(show);
89
+
90
+ const updateSlug = () => {
91
+ const placeholderSlug = makeSlugFromTitle($title.val());
92
+ const slug = makeSlugFromSlug($slug.val());
93
+
94
+ $slug.prop(
95
+ 'placeholder',
96
+ placeholderSlug.length ? placeholderSlug : defaultSlugPlaceholder
97
+ );
98
+ $slug.val(slug);
99
+ };
100
+
101
+ const noDefaultEvent = func => e => {
102
+ e.preventDefault();
103
+ func();
104
+ };
105
+
106
+ const hardUpdateSlug = noDefaultEvent(() =>
107
+ $slug.val(makeSlugFromTitle($slug.val()))
108
+ );
109
+
110
+ const handleShowSlugMessage = noDefaultEvent(() =>
111
+ displayShortUrlMessage(
112
+ $slug.prop('placeholder').length > 16 && !$slug.val().length
113
+ )
114
+ );
115
+
116
+ const reset = () => {
117
+ $title.val('');
118
+ $url.val('');
119
+ $slug.val('');
120
+ $slug.prop('placeholder', defaultSlugPlaceholder);
121
+ maybeUpdateButtons();
122
+ };
123
+
124
+ const updateButtons = (enabled = yes) => {
125
+ $publish.prop('disabled', !enabled);
126
+ $saveDraft.prop('disabled', !enabled);
127
+ };
128
+
129
+ const maybeUpdateButtons = () =>
130
+ updateButtons($title.val().length && $url.val().length);
131
+
132
+ const submit = ({ publish = yes } = {}) => {
133
+ const title = $title.val();
134
+ const url = $url.val();
135
+ let slug = $slug.val() ? $slug.val() : makeSlugFromTitle(title);
136
+
137
+ $.post(
138
+ ajaxurl,
139
+ {
140
+ action: 'plt_quick_add',
141
+ plt_title: title,
142
+ plt_url: url,
143
+ plt_slug: slug,
144
+ plt_publish: publish ? 1 : 0,
145
+ plt_nonce: nonce,
146
+ },
147
+ response => {
148
+ const { message } = response.data;
149
+ const delay = 5000;
150
+ reset();
151
+ $title.focus();
152
+ addExpiringMessage(message, delay);
153
+ }
154
+ );
155
+ };
156
+
157
+ const clickMenuItem = noDefaultEvent(() => (isOpen() ? close() : open()));
158
+ const saveDraft = noDefaultEvent(() => submit({ publish: no }));
159
+ const publish = noDefaultEvent(() => submit({ publish: yes }));
160
+
161
+ $modal.dialog({
162
+ title: 'Add Page Link',
163
+ dialogClass: 'wp-dialog',
164
+ autoOpen: no,
165
+ draggable: no,
166
+ width: 'auto',
167
+ modal: yes,
168
+ resizable: no,
169
+ closeOnEscape: yes,
170
+ position: {
171
+ my: 'center',
172
+ at: 'center',
173
+ of: window,
174
+ },
175
+ open: () => $('.ui-widget-overlay').bind('click', close),
176
+ create: () => $('.ui-dialog-titlebar-close').addClass('ui-button'),
177
+ });
178
+
179
+ // Events.
180
+ if (fancyUrls) {
181
+ $title.keyup(updateSlug);
182
+ $title.keyup(handleShowSlugMessage);
183
+ $slug.keyup(updateSlug);
184
+ $slug.keyup(handleShowSlugMessage);
185
+ $form.change(hardUpdateSlug);
186
+ }
187
+
188
+ $menuItem.click(clickMenuItem);
189
+ $saveDraft.click(saveDraft);
190
+ $publish.click(publish);
191
+ $form.submit(publish);
192
+ $title.keyup(maybeUpdateButtons);
193
+ $url.keyup(maybeUpdateButtons);
194
+ $form.change(maybeUpdateButtons);
195
+
196
+ // Init.
197
+ reset();
198
+ });
js/quick-add.min.js ADDED
@@ -0,0 +1,5 @@
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";jQuery(function(e){var t=e(".plt-copy-short-url");ClipboardJS.isSupported()?t.click(function(e){return e.preventDefault()}):t.hide(),e(".plt-links-to button").click(function(t){e("#cws-links-to").focus()});var n=new ClipboardJS(".plt-copy-short-url"),r=pltVars.copied,l=pltVars.browserNoSupportCopying;n.on("success",function(t){var n=e(t.trigger);n.text(r),setTimeout(function(){return n.text(n.data("original-text"))},4e3)}),n.on("error",function(n){e(n.trigger).text(l),setTimeout(function(){return t.hide()},4e3)})}),jQuery(function(e){var t=e("#plt-quick-add"),n=t.find("form:first"),r=e("#plt-quick-add-save"),l=e("#plt-quick-add-publish"),a=e('a[href$="post_type=page&page=plt-add-page-link"], a[href$="#new-page-link"]'),i=t.find(".messages"),o=t.find(".short-url-message"),u=t.find('[name="title"]'),p=t.find('[name="url"]'),c=t.find('[name="slug"]'),s=t.find('[name="plt_nonce"]').val(),d=c.prop("placeholder"),f=window.pltVars.fancyUrls,g=function(e){return function(){return t.dialog(e)}},v=g("isOpen"),h=g("open"),k=g("close"),b=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toLowerCase().replace(/\s+/g,"-").replace(/-{2,}/g,"-").replace(/[^a-z0-9-]/,"").replace(/-#x2F;,"").replace(/^-/,"")},y=function(t,n){var r=function(t){var n=e("<p>"+t+"</p>");return i.append(n),n}(t);return setTimeout(function(){return r.fadeOut()},n),r},m=function(){var e=b(u.val()),t=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toLowerCase().replace(/\s+/g,"-").replace(/-{2,}/g,"-").replace(/[^a-z0-9-]/,"").replace(/^-/,"")}(c.val());c.prop("placeholder",e.length?e:d),c.val(t)},w=function(e){return function(t){t.preventDefault(),e()}},_=w(function(){return c.val(b(c.val()))}),C=w(function(){return e=c.prop("placeholder").length>16&&!c.val().length,o.toggle(e);var e}),x=function(){u.val(""),p.val(""),c.val(""),c.prop("placeholder",d),q()},q=function(){return function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];l.prop("disabled",!e),r.prop("disabled",!e)}(u.val().length&&p.val().length)},O=function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).publish,n=void 0===t||t,r=u.val(),l=p.val(),a=c.val()?c.val():b(r);e.post(ajaxurl,{action:"plt_quick_add",plt_title:r,plt_url:l,plt_slug:a,plt_publish:n?1:0,plt_nonce:s},function(e){var t=e.data.message;x(),u.focus(),y(t,5e3)})},S=w(function(){return v()?k():h()}),j=w(function(){return O({publish:!1})}),z=w(function(){return O({publish:!0})});t.dialog({title:"Add Page Link",dialogClass:"wp-dialog",autoOpen:!1,draggable:!1,width:"auto",modal:!0,resizable:!1,closeOnEscape:!0,position:{my:"center",at:"center",of:window},open:function(){return e(".ui-widget-overlay").bind("click",k)},create:function(){return e(".ui-dialog-titlebar-close").addClass("ui-button")}}),f&&(u.keyup(m),u.keyup(C),c.keyup(m),c.keyup(C),n.change(_)),a.click(S),r.click(j),l.click(z),n.submit(z),u.keyup(q),p.keyup(q),n.change(q),x()});
3
+
4
+ },{}]},{},[1])
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9xdWljay1hZGQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO2FDQ0EsT0FBTyxTQUFBLEdBQ04sSUFBTSxFQUFrQixFQUFFLHVCQUN0QixZQUFZLGNBQ2YsRUFBZ0IsTUFBTSxTQUFBLEdBQUEsT0FBSyxFQUFFLG1CQUU3QixFQUFnQixPQUdqQixFQUFFLHdCQUF3QixNQUFNLFNBQUEsR0FDL0IsRUFBRSxpQkFBaUIsVUFHcEIsSUFBTSxFQUFZLElBQUksWUFBWSx1QkFDNUIsRUFBUyxRQUFRLE9BQ2pCLEVBQTBCLFFBQVEsd0JBRXhDLEVBQVUsR0FBRyxVQUFXLFNBQUEsR0FDdkIsSUFBTSxFQUFXLEVBQUUsRUFBRSxTQUVyQixFQUFTLEtBQUssR0FDZCxXQUFXLFdBQUEsT0FBTSxFQUFTLEtBQUssRUFBUyxLQUFLLG1CQUFtQixPQUdqRSxFQUFVLEdBQUcsUUFBUyxTQUFBLEdBQ0osRUFBRSxFQUFFLFNBRVosS0FBSyxHQUNkLFdBQVcsV0FBQSxPQUFNLEVBQWdCLFFBQVEsU0FLM0MsT0FBTyxTQUFBLEdBQ04sSUFBTSxFQUFTLEVBQUUsa0JBQ1gsRUFBUSxFQUFPLEtBQUssY0FDcEIsRUFBYSxFQUFFLHVCQUNmLEVBQVcsRUFBRSwwQkFDYixFQUFZLEVBQ2pCLCtFQUVLLEVBQVksRUFBTyxLQUFLLGFBQ3hCLEVBQW1CLEVBQU8sS0FBSyxzQkFDL0IsRUFBUyxFQUFPLEtBQUssa0JBQ3JCLEVBQU8sRUFBTyxLQUFLLGdCQUNuQixFQUFRLEVBQU8sS0FBSyxpQkFDcEIsRUFBUSxFQUFPLEtBQUssc0JBQXNCLE1BQzFDLEVBQXlCLEVBQU0sS0FBSyxlQUNwQyxFQUFZLE9BQU8sUUFBUSxVQUczQixFQUFjLFNBQUEsR0FBQSxPQUFVLFdBQUEsT0FBTSxFQUFPLE9BQU8sS0FDNUMsRUFBUyxFQUFZLFVBQ3JCLEVBQU8sRUFBWSxRQUNuQixFQUFRLEVBQVksU0FFcEIsRUFBb0IsV0FDekIsT0FEeUMsVUFBQSxPQUFBLFFBQUEsSUFBQSxVQUFBLEdBQUEsVUFBQSxHQUFQLElBRWhDLGNBQ0EsUUFBUSxPQUFRLEtBQ2hCLFFBQVEsU0FBVSxLQUNsQixRQUFRLGFBQWMsSUFDdEIsUUFBUSxLQUFNLElBQ2QsUUFBUSxLQUFNLEtBa0JYLEVBQXFCLFNBQUMsRUFBUyxHQUNwQyxJQUFNLEVBUFksU0FBQSxHQUNsQixJQUFNLEVBQWMsRUFBQSxNQUFRLEVBQVIsUUFFcEIsT0FEQSxFQUFVLE9BQU8sR0FDVixFQUlhLENBQVcsR0FFL0IsT0FEQSxXQUFXLFdBQUEsT0FBTSxFQUFZLFdBQVcsR0FDakMsR0FLRixFQUFhLFdBQ2xCLElBQU0sRUFBa0IsRUFBa0IsRUFBTyxPQUMzQyxFQXpCa0IsV0FDeEIsT0FEdUMsVUFBQSxPQUFBLFFBQUEsSUFBQSxVQUFBLEdBQUEsVUFBQSxHQUFQLElBRTlCLGNBQ0EsUUFBUSxPQUFRLEtBQ2hCLFFBQVEsU0FBVSxLQUNsQixRQUFRLGFBQWMsSUFDdEIsUUFBUSxLQUFNLElBbUJILENBQWlCLEVBQU0sT0FFcEMsRUFBTSxLQUNMLGNBQ0EsRUFBZ0IsT0FBUyxFQUFrQixHQUU1QyxFQUFNLElBQUksSUFHTCxFQUFpQixTQUFBLEdBQUEsT0FBUSxTQUFBLEdBQzlCLEVBQUUsaUJBQ0YsTUFHSyxFQUFpQixFQUFlLFdBQUEsT0FDckMsRUFBTSxJQUFJLEVBQWtCLEVBQU0sVUFHN0IsRUFBd0IsRUFBZSxXQUFBLE9BdEJkLEVBd0I3QixFQUFNLEtBQUssZUFBZSxPQUFTLEtBQU8sRUFBTSxNQUFNLE9BeEJqQixFQUFpQixPQUFPLEdBQWhDLElBQUEsSUE0QnpCLEVBQVEsV0FDYixFQUFPLElBQUksSUFDWCxFQUFLLElBQUksSUFDVCxFQUFNLElBQUksSUFDVixFQUFNLEtBQUssY0FBZSxHQUMxQixLQVFLLEVBQXFCLFdBQUEsT0FMTCxXQUFtQixJQUFsQixJQUFrQixVQUFBLE9BQUEsUUFBQSxJQUFBLFVBQUEsS0FBQSxVQUFBLEdBQ3hDLEVBQVMsS0FBSyxZQUFhLEdBQzNCLEVBQVcsS0FBSyxZQUFhLEdBSTdCLENBQWMsRUFBTyxNQUFNLFFBQVUsRUFBSyxNQUFNLFNBRTNDLEVBQVMsV0FBNEIsSUFBQSxHQUFBLFVBQUEsT0FBQSxRQUFBLElBQUEsVUFBQSxHQUFBLFVBQUEsT0FBekIsUUFBQSxPQUF5QixJQUFBLEdBQUEsRUFDcEMsRUFBUSxFQUFPLE1BQ2YsRUFBTSxFQUFLLE1BQ2IsRUFBTyxFQUFNLE1BQVEsRUFBTSxNQUFRLEVBQWtCLEdBRXpELEVBQUUsS0FDRCxTQUVDLE9BQVEsZ0JBQ1IsVUFBVyxFQUNYLFFBQVMsRUFDVCxTQUFVLEVBQ1YsWUFBYSxFQUFVLEVBQUksRUFDM0IsVUFBVyxHQUVaLFNBQUEsR0FBWSxJQUNILEVBQVksRUFBUyxLQUFyQixRQUVSLElBQ0EsRUFBTyxRQUNQLEVBQW1CLEVBSEwsUUFRWCxFQUFnQixFQUFlLFdBQUEsT0FBTyxJQUFXLElBQVUsTUFDM0QsRUFBWSxFQUFlLFdBQUEsT0FBTSxHQUFTLFNBNUd2QixNQTZHbkIsRUFBVSxFQUFlLFdBQUEsT0FBTSxHQUFTLFNBN0czQixNQStHbkIsRUFBTyxRQUNOLE1BQU8sZ0JBQ1AsWUFBYSxZQUNiLFVBbEh3QixFQW1IeEIsV0FuSHdCLEVBb0h4QixNQUFPLE9BQ1AsT0FySGtCLEVBc0hsQixXQXRId0IsRUF1SHhCLGVBdkhrQixFQXdIbEIsVUFDQyxHQUFJLFNBQ0osR0FBSSxTQUNKLEdBQUksUUFFTCxLQUFNLFdBQUEsT0FBTSxFQUFFLHNCQUFzQixLQUFLLFFBQVMsSUFDbEQsT0FBUSxXQUFBLE9BQU0sRUFBRSw2QkFBNkIsU0FBUyxnQkFJbkQsSUFDSCxFQUFPLE1BQU0sR0FDYixFQUFPLE1BQU0sR0FDYixFQUFNLE1BQU0sR0FDWixFQUFNLE1BQU0sR0FDWixFQUFNLE9BQU8sSUFHZCxFQUFVLE1BQU0sR0FDaEIsRUFBVyxNQUFNLEdBQ2pCLEVBQVMsTUFBTSxHQUNmLEVBQU0sT0FBTyxHQUNiLEVBQU8sTUFBTSxHQUNiLEVBQUssTUFBTSxHQUNYLEVBQU0sT0FBTyxHQUdiIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLy8gQ29weSB0byBjbGlwYm9hcmQuXG5qUXVlcnkoJCA9PiB7XG5cdGNvbnN0ICRjbGlwYm9hcmRMaW5rcyA9ICQoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0aWYgKENsaXBib2FyZEpTLmlzU3VwcG9ydGVkKCkpIHtcblx0XHQkY2xpcGJvYXJkTGlua3MuY2xpY2soZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuXHR9IGVsc2Uge1xuXHRcdCRjbGlwYm9hcmRMaW5rcy5oaWRlKCk7XG5cdH1cblxuXHQkKCcucGx0LWxpbmtzLXRvIGJ1dHRvbicpLmNsaWNrKGUgPT4ge1xuXHRcdCQoJyNjd3MtbGlua3MtdG8nKS5mb2N1cygpO1xuXHR9KTtcblxuXHRjb25zdCBjbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkSlMoJy5wbHQtY29weS1zaG9ydC11cmwnKTtcblx0Y29uc3QgY29waWVkID0gcGx0VmFycy5jb3BpZWQ7XG5cdGNvbnN0IGJyb3dzZXJOb1N1cHBvcnRDb3B5aW5nID0gcGx0VmFycy5icm93c2VyTm9TdXBwb3J0Q29weWluZztcblxuXHRjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoY29waWVkKTtcblx0XHRzZXRUaW1lb3V0KCgpID0+ICR0cmlnZ2VyLnRleHQoJHRyaWdnZXIuZGF0YSgnb3JpZ2luYWwtdGV4dCcpKSwgNDAwMCk7XG5cdH0pO1xuXG5cdGNsaXBib2FyZC5vbignZXJyb3InLCBlID0+IHtcblx0XHRjb25zdCAkdHJpZ2dlciA9ICQoZS50cmlnZ2VyKTtcblxuXHRcdCR0cmlnZ2VyLnRleHQoYnJvd3Nlck5vU3VwcG9ydENvcHlpbmcpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJGNsaXBib2FyZExpbmtzLmhpZGUoKSwgNDAwMCk7XG5cdH0pO1xufSk7XG5cbi8vIFF1aWNrIEFkZC5cbmpRdWVyeSgkID0+IHtcblx0Y29uc3QgJG1vZGFsID0gJCgnI3BsdC1xdWljay1hZGQnKTtcblx0Y29uc3QgJGZvcm0gPSAkbW9kYWwuZmluZCgnZm9ybTpmaXJzdCcpO1xuXHRjb25zdCAkc2F2ZURyYWZ0ID0gJCgnI3BsdC1xdWljay1hZGQtc2F2ZScpO1xuXHRjb25zdCAkcHVibGlzaCA9ICQoJyNwbHQtcXVpY2stYWRkLXB1Ymxpc2gnKTtcblx0Y29uc3QgJG1lbnVJdGVtID0gJChcblx0XHQnYVtocmVmJD1cInBvc3RfdHlwZT1wYWdlJnBhZ2U9cGx0LWFkZC1wYWdlLWxpbmtcIl0sIGFbaHJlZiQ9XCIjbmV3LXBhZ2UtbGlua1wiXSdcblx0KTtcblx0Y29uc3QgJG1lc3NhZ2VzID0gJG1vZGFsLmZpbmQoJy5tZXNzYWdlcycpO1xuXHRjb25zdCAkc2hvcnRVcmxNZXNzYWdlID0gJG1vZGFsLmZpbmQoJy5zaG9ydC11cmwtbWVzc2FnZScpO1xuXHRjb25zdCAkdGl0bGUgPSAkbW9kYWwuZmluZCgnW25hbWU9XCJ0aXRsZVwiXScpO1xuXHRjb25zdCAkdXJsID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwidXJsXCJdJyk7XG5cdGNvbnN0ICRzbHVnID0gJG1vZGFsLmZpbmQoJ1tuYW1lPVwic2x1Z1wiXScpO1xuXHRjb25zdCBub25jZSA9ICRtb2RhbC5maW5kKCdbbmFtZT1cInBsdF9ub25jZVwiXScpLnZhbCgpO1xuXHRjb25zdCBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyID0gJHNsdWcucHJvcCgncGxhY2Vob2xkZXInKTtcblx0Y29uc3QgZmFuY3lVcmxzID0gd2luZG93LnBsdFZhcnMuZmFuY3lVcmxzO1xuXHRjb25zdCBbeWVzLCBub10gPSBbdHJ1ZSwgZmFsc2VdO1xuXG5cdGNvbnN0IG1vZGFsQWN0aW9uID0gYWN0aW9uID0+ICgpID0+ICRtb2RhbC5kaWFsb2coYWN0aW9uKTtcblx0Y29uc3QgaXNPcGVuID0gbW9kYWxBY3Rpb24oJ2lzT3BlbicpO1xuXHRjb25zdCBvcGVuID0gbW9kYWxBY3Rpb24oJ29wZW4nKTtcblx0Y29uc3QgY2xvc2UgPSBtb2RhbEFjdGlvbignY2xvc2UnKTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21UaXRsZSA9ICh0aXRsZSA9ICcnKSA9PiB7XG5cdFx0cmV0dXJuIHRpdGxlXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvLSQvLCAnJylcblx0XHRcdC5yZXBsYWNlKC9eLS8sICcnKTtcblx0fTtcblxuXHRjb25zdCBtYWtlU2x1Z0Zyb21TbHVnID0gKHNsdWcgPSAnJykgPT4ge1xuXHRcdHJldHVybiBzbHVnXG5cdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0LnJlcGxhY2UoL1xccysvZywgJy0nKVxuXHRcdFx0LnJlcGxhY2UoLy17Mix9L2csICctJylcblx0XHRcdC5yZXBsYWNlKC9bXmEtejAtOS1dLywgJycpXG5cdFx0XHQucmVwbGFjZSgvXi0vLCAnJyk7XG5cdH07XG5cblx0Y29uc3QgYWRkTWVzc2FnZSA9IG1lc3NhZ2UgPT4ge1xuXHRcdGNvbnN0ICRuZXdNZXNzYWdlID0gJChgPHA+JHttZXNzYWdlfTwvcD5gKTtcblx0XHQkbWVzc2FnZXMuYXBwZW5kKCRuZXdNZXNzYWdlKTtcblx0XHRyZXR1cm4gJG5ld01lc3NhZ2U7XG5cdH07XG5cblx0Y29uc3QgYWRkRXhwaXJpbmdNZXNzYWdlID0gKG1lc3NhZ2UsIGR1cmF0aW9uKSA9PiB7XG5cdFx0Y29uc3QgJG5ld01lc3NhZ2UgPSBhZGRNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gJG5ld01lc3NhZ2UuZmFkZU91dCgpLCBkdXJhdGlvbik7XG5cdFx0cmV0dXJuICRuZXdNZXNzYWdlO1xuXHR9O1xuXG5cdGNvbnN0IGRpc3BsYXlTaG9ydFVybE1lc3NhZ2UgPSBzaG93ID0+ICRzaG9ydFVybE1lc3NhZ2UudG9nZ2xlKHNob3cpO1xuXG5cdGNvbnN0IHVwZGF0ZVNsdWcgPSAoKSA9PiB7XG5cdFx0Y29uc3QgcGxhY2Vob2xkZXJTbHVnID0gbWFrZVNsdWdGcm9tVGl0bGUoJHRpdGxlLnZhbCgpKTtcblx0XHRjb25zdCBzbHVnID0gbWFrZVNsdWdGcm9tU2x1Zygkc2x1Zy52YWwoKSk7XG5cblx0XHQkc2x1Zy5wcm9wKFxuXHRcdFx0J3BsYWNlaG9sZGVyJyxcblx0XHRcdHBsYWNlaG9sZGVyU2x1Zy5sZW5ndGggPyBwbGFjZWhvbGRlclNsdWcgOiBkZWZhdWx0U2x1Z1BsYWNlaG9sZGVyXG5cdFx0KTtcblx0XHQkc2x1Zy52YWwoc2x1Zyk7XG5cdH07XG5cblx0Y29uc3Qgbm9EZWZhdWx0RXZlbnQgPSBmdW5jID0+IGUgPT4ge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRmdW5jKCk7XG5cdH07XG5cblx0Y29uc3QgaGFyZFVwZGF0ZVNsdWcgPSBub0RlZmF1bHRFdmVudCgoKSA9PlxuXHRcdCRzbHVnLnZhbChtYWtlU2x1Z0Zyb21UaXRsZSgkc2x1Zy52YWwoKSkpXG5cdCk7XG5cblx0Y29uc3QgaGFuZGxlU2hvd1NsdWdNZXNzYWdlID0gbm9EZWZhdWx0RXZlbnQoKCkgPT5cblx0XHRkaXNwbGF5U2hvcnRVcmxNZXNzYWdlKFxuXHRcdFx0JHNsdWcucHJvcCgncGxhY2Vob2xkZXInKS5sZW5ndGggPiAxNiAmJiAhJHNsdWcudmFsKCkubGVuZ3RoXG5cdFx0KVxuXHQpO1xuXG5cdGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuXHRcdCR0aXRsZS52YWwoJycpO1xuXHRcdCR1cmwudmFsKCcnKTtcblx0XHQkc2x1Zy52YWwoJycpO1xuXHRcdCRzbHVnLnByb3AoJ3BsYWNlaG9sZGVyJywgZGVmYXVsdFNsdWdQbGFjZWhvbGRlcik7XG5cdFx0bWF5YmVVcGRhdGVCdXR0b25zKCk7XG5cdH07XG5cblx0Y29uc3QgdXBkYXRlQnV0dG9ucyA9IChlbmFibGVkID0geWVzKSA9PiB7XG5cdFx0JHB1Ymxpc2gucHJvcCgnZGlzYWJsZWQnLCAhZW5hYmxlZCk7XG5cdFx0JHNhdmVEcmFmdC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcblx0fTtcblxuXHRjb25zdCBtYXliZVVwZGF0ZUJ1dHRvbnMgPSAoKSA9PlxuXHRcdHVwZGF0ZUJ1dHRvbnMoJHRpdGxlLnZhbCgpLmxlbmd0aCAmJiAkdXJsLnZhbCgpLmxlbmd0aCk7XG5cblx0Y29uc3Qgc3VibWl0ID0gKHsgcHVibGlzaCA9IHllcyB9ID0ge30pID0+IHtcblx0XHRjb25zdCB0aXRsZSA9ICR0aXRsZS52YWwoKTtcblx0XHRjb25zdCB1cmwgPSAkdXJsLnZhbCgpO1xuXHRcdGxldCBzbHVnID0gJHNsdWcudmFsKCkgPyAkc2x1Zy52YWwoKSA6IG1ha2VTbHVnRnJvbVRpdGxlKHRpdGxlKTtcblxuXHRcdCQucG9zdChcblx0XHRcdGFqYXh1cmwsXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ3BsdF9xdWlja19hZGQnLFxuXHRcdFx0XHRwbHRfdGl0bGU6IHRpdGxlLFxuXHRcdFx0XHRwbHRfdXJsOiB1cmwsXG5cdFx0XHRcdHBsdF9zbHVnOiBzbHVnLFxuXHRcdFx0XHRwbHRfcHVibGlzaDogcHVibGlzaCA/IDEgOiAwLFxuXHRcdFx0XHRwbHRfbm9uY2U6IG5vbmNlLFxuXHRcdFx0fSxcblx0XHRcdHJlc3BvbnNlID0+IHtcblx0XHRcdFx0Y29uc3QgeyBtZXNzYWdlIH0gPSByZXNwb25zZS5kYXRhO1xuXHRcdFx0XHRjb25zdCBkZWxheSA9IDUwMDA7XG5cdFx0XHRcdHJlc2V0KCk7XG5cdFx0XHRcdCR0aXRsZS5mb2N1cygpO1xuXHRcdFx0XHRhZGRFeHBpcmluZ01lc3NhZ2UobWVzc2FnZSwgZGVsYXkpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH07XG5cblx0Y29uc3QgY2xpY2tNZW51SXRlbSA9IG5vRGVmYXVsdEV2ZW50KCgpID0+IChpc09wZW4oKSA/IGNsb3NlKCkgOiBvcGVuKCkpKTtcblx0Y29uc3Qgc2F2ZURyYWZ0ID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogbm8gfSkpO1xuXHRjb25zdCBwdWJsaXNoID0gbm9EZWZhdWx0RXZlbnQoKCkgPT4gc3VibWl0KHsgcHVibGlzaDogeWVzIH0pKTtcblxuXHQkbW9kYWwuZGlhbG9nKHtcblx0XHR0aXRsZTogJ0FkZCBQYWdlIExpbmsnLFxuXHRcdGRpYWxvZ0NsYXNzOiAnd3AtZGlhbG9nJyxcblx0XHRhdXRvT3Blbjogbm8sXG5cdFx0ZHJhZ2dhYmxlOiBubyxcblx0XHR3aWR0aDogJ2F1dG8nLFxuXHRcdG1vZGFsOiB5ZXMsXG5cdFx0cmVzaXphYmxlOiBubyxcblx0XHRjbG9zZU9uRXNjYXBlOiB5ZXMsXG5cdFx0cG9zaXRpb246IHtcblx0XHRcdG15OiAnY2VudGVyJyxcblx0XHRcdGF0OiAnY2VudGVyJyxcblx0XHRcdG9mOiB3aW5kb3csXG5cdFx0fSxcblx0XHRvcGVuOiAoKSA9PiAkKCcudWktd2lkZ2V0LW92ZXJsYXknKS5iaW5kKCdjbGljaycsIGNsb3NlKSxcblx0XHRjcmVhdGU6ICgpID0+ICQoJy51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UnKS5hZGRDbGFzcygndWktYnV0dG9uJyksXG5cdH0pO1xuXG5cdC8vIEV2ZW50cy5cblx0aWYgKGZhbmN5VXJscykge1xuXHRcdCR0aXRsZS5rZXl1cCh1cGRhdGVTbHVnKTtcblx0XHQkdGl0bGUua2V5dXAoaGFuZGxlU2hvd1NsdWdNZXNzYWdlKTtcblx0XHQkc2x1Zy5rZXl1cCh1cGRhdGVTbHVnKTtcblx0XHQkc2x1Zy5rZXl1cChoYW5kbGVTaG93U2x1Z01lc3NhZ2UpO1xuXHRcdCRmb3JtLmNoYW5nZShoYXJkVXBkYXRlU2x1Zyk7XG5cdH1cblxuXHQkbWVudUl0ZW0uY2xpY2soY2xpY2tNZW51SXRlbSk7XG5cdCRzYXZlRHJhZnQuY2xpY2soc2F2ZURyYWZ0KTtcblx0JHB1Ymxpc2guY2xpY2socHVibGlzaCk7XG5cdCRmb3JtLnN1Ym1pdChwdWJsaXNoKTtcblx0JHRpdGxlLmtleXVwKG1heWJlVXBkYXRlQnV0dG9ucyk7XG5cdCR1cmwua2V5dXAobWF5YmVVcGRhdGVCdXR0b25zKTtcblx0JGZvcm0uY2hhbmdlKG1heWJlVXBkYXRlQnV0dG9ucyk7XG5cblx0Ly8gSW5pdC5cblx0cmVzZXQoKTtcbn0pO1xuIl19
package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
{
2
"name": "page-links-to",
3
- "version": "2.10.1",
4
"lockfileVersion": 1,
5
"requires": true,
6
"dependencies": {
@@ -10,8 +10,8 @@
10
"integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==",
11
"dev": true,
12
"requires": {
13
- "jsonparse": "1.3.1",
14
- "through": "2.3.8"
15
}
16
},
17
"abbrev": {
@@ -32,8 +32,8 @@
32
"integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==",
33
"dev": true,
34
"requires": {
35
- "acorn": "5.6.2",
36
- "xtend": "4.0.1"
37
},
38
"dependencies": {
39
"acorn": {
@@ -51,12 +51,18 @@
51
"dev": true,
52
"optional": true,
53
"requires": {
54
- "co": "4.6.0",
55
- "fast-deep-equal": "1.1.0",
56
- "fast-json-stable-stringify": "2.0.0",
57
- "json-schema-traverse": "0.3.1"
58
}
59
},
60
"ansi-regex": {
61
"version": "2.1.1",
62
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -75,8 +81,8 @@
75
"integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
76
"dev": true,
77
"requires": {
78
- "micromatch": "2.3.11",
79
- "normalize-path": "2.1.1"
80
}
81
},
82
"aproba": {
@@ -91,15 +97,15 @@
91
"integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
92
"dev": true,
93
"requires": {
94
- "archiver-utils": "1.3.0",
95
- "async": "2.6.1",
96
- "buffer-crc32": "0.2.13",
97
- "glob": "7.1.2",
98
- "lodash": "4.17.10",
99
- "readable-stream": "2.3.6",
100
- "tar-stream": "1.6.1",
101
- "walkdir": "0.0.11",
102
- "zip-stream": "1.2.0"
103
}
104
},
105
"archiver-utils": {
@@ -108,12 +114,12 @@
108
"integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
109
"dev": true,
110
"requires": {
111
- "glob": "7.1.2",
112
- "graceful-fs": "4.1.11",
113
- "lazystream": "1.0.0",
114
- "lodash": "4.17.10",
115
- "normalize-path": "2.1.1",
116
- "readable-stream": "2.3.6"
117
}
118
},
119
"are-we-there-yet": {
@@ -122,8 +128,17 @@
122
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
123
"dev": true,
124
"requires": {
125
- "delegates": "1.0.0",
126
- "readable-stream": "2.3.6"
127
}
128
},
129
"arr-diff": {
@@ -132,7 +147,7 @@
132
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
133
"dev": true,
134
"requires": {
135
- "arr-flatten": "1.1.0"
136
}
137
},
138
"arr-flatten": {
@@ -141,6 +156,12 @@
141
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
142
"dev": true
143
},
144
"array-filter": {
145
"version": "0.0.1",
146
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
@@ -165,12 +186,33 @@
165
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
166
"dev": true
167
},
168
"array-unique": {
169
"version": "0.2.1",
170
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
171
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
172
"dev": true
173
},
174
"asn1": {
175
"version": "0.2.3",
176
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
@@ -184,9 +226,9 @@
184
"integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
185
"dev": true,
186
"requires": {
187
- "bn.js": "4.11.8",
188
- "inherits": "2.0.3",
189
- "minimalistic-assert": "1.0.1"
190
}
191
},
192
"assert": {
@@ -227,7 +269,7 @@
227
"integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
228
"dev": true,
229
"requires": {
230
- "acorn": "4.0.13"
231
}
232
},
233
"async": {
@@ -236,7 +278,7 @@
236
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
237
"dev": true,
238
"requires": {
239
- "lodash": "4.17.10"
240
}
241
},
242
"async-each": {
@@ -252,6 +294,45 @@
252
"dev": true,
253
"optional": true
254
},
255
"aws-sign2": {
256
"version": "0.7.0",
257
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -272,9 +353,9 @@
272
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
273
"dev": true,
274
"requires": {
275
- "chalk": "1.1.3",
276
- "esutils": "2.0.2",
277
- "js-tokens": "3.0.2"
278
}
279
},
280
"babel-core": {
@@ -283,25 +364,25 @@
283
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
284
"dev": true,
285
"requires": {
286
- "babel-code-frame": "6.26.0",
287
- "babel-generator": "6.26.1",
288
- "babel-helpers": "6.24.1",
289
- "babel-messages": "6.23.0",
290
- "babel-register": "6.26.0",
291
- "babel-runtime": "6.26.0",
292
- "babel-template": "6.26.0",
293
- "babel-traverse": "6.26.0",
294
- "babel-types": "6.26.0",
295
- "babylon": "6.18.0",
296
- "convert-source-map": "1.5.1",
297
- "debug": "2.6.9",
298
- "json5": "0.5.1",
299
- "lodash": "4.17.10",
300
- "minimatch": "3.0.4",
301
- "path-is-absolute": "1.0.1",
302
- "private": "0.1.8",
303
- "slash": "1.0.0",
304
- "source-map": "0.5.7"
305
},
306
"dependencies": {
307
"convert-source-map": {
@@ -333,14 +414,14 @@
333
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
334
"dev": true,
335
"requires": {
336
- "babel-messages": "6.23.0",
337
- "babel-runtime": "6.26.0",
338
- "babel-types": "6.26.0",
339
- "detect-indent": "4.0.0",
340
- "jsesc": "1.3.0",
341
- "lodash": "4.17.10",
342
- "source-map": "0.5.7",
343
- "trim-right": "1.0.1"
344
}
345
},
346
"babel-helper-builder-binary-assignment-operator-visitor": {
@@ -349,9 +430,9 @@
349
"integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
350
"dev": true,
351
"requires": {
352
- "babel-helper-explode-assignable-expression": "6.24.1",
353
- "babel-runtime": "6.26.0",
354
- "babel-types": "6.26.0"
355
}
356
},
357
"babel-helper-builder-react-jsx": {
@@ -360,9 +441,9 @@
360
"integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
361
"dev": true,
362
"requires": {
363
- "babel-runtime": "6.26.0",
364
- "babel-types": "6.26.0",
365
- "esutils": "2.0.2"
366
}
367
},
368
"babel-helper-call-delegate": {
@@ -371,10 +452,10 @@
371
"integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
372
"dev": true,
373
"requires": {
374
- "babel-helper-hoist-variables": "6.24.1",
375
- "babel-runtime": "6.26.0",
376
- "babel-traverse": "6.26.0",
377
- "babel-types": "6.26.0"
378
}
379
},
380
"babel-helper-define-map": {
@@ -383,10 +464,10 @@
383
"integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
384
"dev": true,
385
"requires": {
386
- "babel-helper-function-name": "6.24.1",
387
- "babel-runtime": "6.26.0",
388
- "babel-types": "6.26.0",
389
- "lodash": "4.17.10"
390
}
391
},
392
"babel-helper-explode-assignable-expression": {
@@ -395,9 +476,9 @@
395
"integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
396
"dev": true,
397
"requires": {
398
- "babel-runtime": "6.26.0",
399
- "babel-traverse": "6.26.0",
400
- "babel-types": "6.26.0"
401
}
402
},
403
"babel-helper-function-name": {
@@ -406,11 +487,11 @@
406
"integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
407
"dev": true,
408
"requires": {
409
- "babel-helper-get-function-arity": "6.24.1",
410
- "babel-runtime": "6.26.0",
411
- "babel-template": "6.26.0",
412
- "babel-traverse": "6.26.0",
413
- "babel-types": "6.26.0"
414
}
415
},
416
"babel-helper-get-function-arity": {
@@ -419,8 +500,8 @@
419
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
420
"dev": true,
421
"requires": {
422
- "babel-runtime": "6.26.0",
423
- "babel-types": "6.26.0"
424
}
425
},
426
"babel-helper-hoist-variables": {
@@ -429,8 +510,8 @@
429
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
430
"dev": true,
431
"requires": {
432
- "babel-runtime": "6.26.0",
433
- "babel-types": "6.26.0"
434
}
435
},
436
"babel-helper-optimise-call-expression": {
@@ -439,8 +520,8 @@
439
"integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
440
"dev": true,
441
"requires": {
442
- "babel-runtime": "6.26.0",
443
- "babel-types": "6.26.0"
444
}
445
},
446
"babel-helper-regex": {
@@ -449,9 +530,9 @@
449
"integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
450
"dev": true,
451
"requires": {
452
- "babel-runtime": "6.26.0",
453
- "babel-types": "6.26.0",
454
- "lodash": "4.17.10"
455
}
456
},
457
"babel-helper-remap-async-to-generator": {
@@ -460,11 +541,11 @@
460
"integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
461
"dev": true,
462
"requires": {
463
- "babel-helper-function-name": "6.24.1",
464
- "babel-runtime": "6.26.0",
465
- "babel-template": "6.26.0",
466
- "babel-traverse": "6.26.0",
467
- "babel-types": "6.26.0"
468
}
469
},
470
"babel-helper-replace-supers": {
@@ -473,12 +554,12 @@
473
"integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
474
"dev": true,
475
"requires": {
476
- "babel-helper-optimise-call-expression": "6.24.1",
477
- "babel-messages": "6.23.0",
478
- "babel-runtime": "6.26.0",
479
- "babel-template": "6.26.0",
480
- "babel-traverse": "6.26.0",
481
- "babel-types": "6.26.0"
482
}
483
},
484
"babel-helpers": {
@@ -487,8 +568,8 @@
487
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
488
"dev": true,
489
"requires": {
490
- "babel-runtime": "6.26.0",
491
- "babel-template": "6.26.0"
492
}
493
},
494
"babel-messages": {
@@ -497,7 +578,7 @@
497
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
498
"dev": true,
499
"requires": {
500
- "babel-runtime": "6.26.0"
501
}
502
},
503
"babel-plugin-add-module-exports": {
@@ -512,7 +593,7 @@
512
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
513
"dev": true,
514
"requires": {
515
- "babel-runtime": "6.26.0"
516
}
517
},
518
"babel-plugin-syntax-async-functions": {
@@ -563,9 +644,9 @@
563
"integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
564
"dev": true,
565
"requires": {
566
- "babel-helper-remap-async-to-generator": "6.24.1",
567
- "babel-plugin-syntax-async-functions": "6.13.0",
568
- "babel-runtime": "6.26.0"
569
}
570
},
571
"babel-plugin-transform-class-properties": {
@@ -574,10 +655,10 @@
574
"integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
575
"dev": true,
576
"requires": {
577
- "babel-helper-function-name": "6.24.1",
578
- "babel-plugin-syntax-class-properties": "6.13.0",
579
- "babel-runtime": "6.26.0",
580
- "babel-template": "6.26.0"
581
}
582
},
583
"babel-plugin-transform-es2015-arrow-functions": {
@@ -586,7 +667,7 @@
586
"integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
587
"dev": true,
588
"requires": {
589
- "babel-runtime": "6.26.0"
590
}
591
},
592
"babel-plugin-transform-es2015-block-scoped-functions": {
@@ -595,7 +676,7 @@
595
"integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
596
"dev": true,
597
"requires": {
598
- "babel-runtime": "6.26.0"
599
}
600
},
601
"babel-plugin-transform-es2015-block-scoping": {
@@ -604,11 +685,11 @@
604
"integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
605
"dev": true,
606
"requires": {
607
- "babel-runtime": "6.26.0",
608
- "babel-template": "6.26.0",
609
- "babel-traverse": "6.26.0",
610
- "babel-types": "6.26.0",
611
- "lodash": "4.17.10"
612
}
613
},
614
"babel-plugin-transform-es2015-classes": {
@@ -617,15 +698,15 @@
617
"integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
618
"dev": true,
619
"requires": {
620
- "babel-helper-define-map": "6.26.0",
621
- "babel-helper-function-name": "6.24.1",
622
- "babel-helper-optimise-call-expression": "6.24.1",
623
- "babel-helper-replace-supers": "6.24.1",
624
- "babel-messages": "6.23.0",
625
- "babel-runtime": "6.26.0",
626
- "babel-template": "6.26.0",
627
- "babel-traverse": "6.26.0",
628
- "babel-types": "6.26.0"
629
}
630
},
631
"babel-plugin-transform-es2015-computed-properties": {
@@ -634,8 +715,8 @@
634
"integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
635
"dev": true,
636
"requires": {
637
- "babel-runtime": "6.26.0",
638
- "babel-template": "6.26.0"
639
}
640
},
641
"babel-plugin-transform-es2015-destructuring": {
@@ -644,7 +725,7 @@
644
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
645
"dev": true,
646
"requires": {
647
- "babel-runtime": "6.26.0"
648
}
649
},
650
"babel-plugin-transform-es2015-duplicate-keys": {
@@ -653,8 +734,8 @@
653
"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
654
"dev": true,
655
"requires": {
656
- "babel-runtime": "6.26.0",
657
- "babel-types": "6.26.0"
658
}
659
},
660
"babel-plugin-transform-es2015-for-of": {
@@ -663,7 +744,7 @@
663
"integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
664
"dev": true,
665
"requires": {
666
- "babel-runtime": "6.26.0"
667
}
668
},
669
"babel-plugin-transform-es2015-function-name": {
@@ -672,9 +753,9 @@
672
"integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
673
"dev": true,
674
"requires": {
675
- "babel-helper-function-name": "6.24.1",
676
- "babel-runtime": "6.26.0",
677
- "babel-types": "6.26.0"
678
}
679
},
680
"babel-plugin-transform-es2015-literals": {
@@ -683,7 +764,7 @@
683
"integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
684
"dev": true,
685
"requires": {
686
- "babel-runtime": "6.26.0"
687
}
688
},
689
"babel-plugin-transform-es2015-modules-amd": {
@@ -692,9 +773,9 @@
692
"integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
693
"dev": true,
694
"requires": {
695
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
696
- "babel-runtime": "6.26.0",
697
- "babel-template": "6.26.0"
698
}
699
},
700
"babel-plugin-transform-es2015-modules-commonjs": {
@@ -703,10 +784,10 @@
703
"integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
704
"dev": true,
705
"requires": {
706
- "babel-plugin-transform-strict-mode": "6.24.1",
707
- "babel-runtime": "6.26.0",
708
- "babel-template": "6.26.0",
709
- "babel-types": "6.26.0"
710
}
711
},
712
"babel-plugin-transform-es2015-modules-systemjs": {
@@ -715,9 +796,9 @@
715
"integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
716
"dev": true,
717
"requires": {
718
- "babel-helper-hoist-variables": "6.24.1",
719
- "babel-runtime": "6.26.0",
720
- "babel-template": "6.26.0"
721
}
722
},
723
"babel-plugin-transform-es2015-modules-umd": {
@@ -726,9 +807,9 @@
726
"integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
727
"dev": true,
728
"requires": {
729
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
730
- "babel-runtime": "6.26.0",
731
- "babel-template": "6.26.0"
732
}
733
},
734
"babel-plugin-transform-es2015-object-super": {
@@ -737,8 +818,8 @@
737
"integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
738
"dev": true,
739
"requires": {
740
- "babel-helper-replace-supers": "6.24.1",
741
- "babel-runtime": "6.26.0"
742
}
743
},
744
"babel-plugin-transform-es2015-parameters": {
@@ -747,12 +828,12 @@
747
"integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
748
"dev": true,
749
"requires": {
750
- "babel-helper-call-delegate": "6.24.1",
751
- "babel-helper-get-function-arity": "6.24.1",
752
- "babel-runtime": "6.26.0",
753
- "babel-template": "6.26.0",
754
- "babel-traverse": "6.26.0",
755
- "babel-types": "6.26.0"
756
}
757
},
758
"babel-plugin-transform-es2015-shorthand-properties": {
@@ -761,8 +842,8 @@
761
"integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
762
"dev": true,
763
"requires": {
764
- "babel-runtime": "6.26.0",
765
- "babel-types": "6.26.0"
766
}
767
},
768
"babel-plugin-transform-es2015-spread": {
@@ -771,7 +852,7 @@
771
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
772
"dev": true,
773
"requires": {
774
- "babel-runtime": "6.26.0"
775
}
776
},
777
"babel-plugin-transform-es2015-sticky-regex": {
@@ -780,9 +861,9 @@
780
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
781
"dev": true,
782
"requires": {
783
- "babel-helper-regex": "6.26.0",
784
- "babel-runtime": "6.26.0",
785
- "babel-types": "6.26.0"
786
}
787
},
788
"babel-plugin-transform-es2015-template-literals": {
@@ -791,7 +872,7 @@
791
"integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
792
"dev": true,
793
"requires": {
794
- "babel-runtime": "6.26.0"
795
}
796
},
797
"babel-plugin-transform-es2015-typeof-symbol": {
@@ -800,7 +881,7 @@
800
"integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
801
"dev": true,
802
"requires": {
803
- "babel-runtime": "6.26.0"
804
}
805
},
806
"babel-plugin-transform-es2015-unicode-regex": {
@@ -809,9 +890,9 @@
809
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
810
"dev": true,
811
"requires": {
812
- "babel-helper-regex": "6.26.0",
813
- "babel-runtime": "6.26.0",
814
- "regexpu-core": "2.0.0"
815
}
816
},
817
"babel-plugin-transform-exponentiation-operator": {
@@ -820,9 +901,9 @@
820
"integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
821
"dev": true,
822
"requires": {
823
- "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
824
- "babel-plugin-syntax-exponentiation-operator": "6.13.0",
825
- "babel-runtime": "6.26.0"
826
}
827
},
828
"babel-plugin-transform-flow-strip-types": {
@@ -831,8 +912,8 @@
831
"integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
832
"dev": true,
833
"requires": {
834
- "babel-plugin-syntax-flow": "6.18.0",
835
- "babel-runtime": "6.26.0"
836
}
837
},
838
"babel-plugin-transform-object-rest-spread": {
@@ -841,8 +922,8 @@
841
"integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
842
"dev": true,
843
"requires": {
844
- "babel-plugin-syntax-object-rest-spread": "6.13.0",
845
- "babel-runtime": "6.26.0"
846
}
847
},
848
"babel-plugin-transform-react-display-name": {
@@ -851,7 +932,7 @@
851
"integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
852
"dev": true,
853
"requires": {
854
- "babel-runtime": "6.26.0"
855
}
856
},
857
"babel-plugin-transform-react-jsx": {
@@ -860,9 +941,9 @@
860
"integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
861
"dev": true,
862
"requires": {
863
- "babel-helper-builder-react-jsx": "6.26.0",
864
- "babel-plugin-syntax-jsx": "6.18.0",
865
- "babel-runtime": "6.26.0"
866
}
867
},
868
"babel-plugin-transform-react-jsx-self": {
@@ -871,8 +952,8 @@
871
"integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
872
"dev": true,
873
"requires": {
874
- "babel-plugin-syntax-jsx": "6.18.0",
875
- "babel-runtime": "6.26.0"
876
}
877
},
878
"babel-plugin-transform-react-jsx-source": {
@@ -881,8 +962,8 @@
881
"integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
882
"dev": true,
883
"requires": {
884
- "babel-plugin-syntax-jsx": "6.18.0",
885
- "babel-runtime": "6.26.0"
886
}
887
},
888
"babel-plugin-transform-regenerator": {
@@ -891,7 +972,7 @@
891
"integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
892
"dev": true,
893
"requires": {
894
- "regenerator-transform": "0.10.1"
895
}
896
},
897
"babel-plugin-transform-strict-mode": {
@@ -900,8 +981,8 @@
900
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
901
"dev": true,
902
"requires": {
903
- "babel-runtime": "6.26.0",
904
- "babel-types": "6.26.0"
905
}
906
},
907
"babel-preset-env": {
@@ -910,36 +991,36 @@
910
"integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
911
"dev": true,
912
"requires": {
913
- "babel-plugin-check-es2015-constants": "6.22.0",
914
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
915
- "babel-plugin-transform-async-to-generator": "6.24.1",
916
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
917
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
918
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
919
- "babel-plugin-transform-es2015-classes": "6.24.1",
920
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
921
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
922
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
923
- "babel-plugin-transform-es2015-for-of": "6.23.0",
924
- "babel-plugin-transform-es2015-function-name": "6.24.1",
925
- "babel-plugin-transform-es2015-literals": "6.22.0",
926
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
927
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
928
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
929
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
930
- "babel-plugin-transform-es2015-object-super": "6.24.1",
931
- "babel-plugin-transform-es2015-parameters": "6.24.1",
932
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
933
- "babel-plugin-transform-es2015-spread": "6.22.0",
934
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
935
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
936
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
937
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
938
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
939
- "babel-plugin-transform-regenerator": "6.26.0",
940
- "browserslist": "3.2.8",
941
- "invariant": "2.2.4",
942
- "semver": "5.5.0"
943
},
944
"dependencies": {
945
"semver": {
@@ -956,7 +1037,7 @@
956
"integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
957
"dev": true,
958
"requires": {
959
- "babel-plugin-transform-flow-strip-types": "6.22.0"
960
}
961
},
962
"babel-preset-react": {
@@ -965,12 +1046,12 @@
965
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
966
"dev": true,
967
"requires": {
968
- "babel-plugin-syntax-jsx": "6.18.0",
969
- "babel-plugin-transform-react-display-name": "6.25.0",
970
- "babel-plugin-transform-react-jsx": "6.24.1",
971
- "babel-plugin-transform-react-jsx-self": "6.22.0",
972
- "babel-plugin-transform-react-jsx-source": "6.22.0",
973
- "babel-preset-flow": "6.23.0"
974
}
975
},
976
"babel-register": {
@@ -979,13 +1060,13 @@
979
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
980
"dev": true,
981
"requires": {
982
- "babel-core": "6.26.3",
983
- "babel-runtime": "6.26.0",
984
- "core-js": "2.5.7",
985
- "home-or-tmp": "2.0.0",
986
- "lodash": "4.17.10",
987
- "mkdirp": "0.5.1",
988
- "source-map-support": "0.4.18"
989
}
990
},
991
"babel-runtime": {
@@ -994,8 +1075,8 @@
994
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
995
"dev": true,
996
"requires": {
997
- "core-js": "2.5.7",
998
- "regenerator-runtime": "0.11.1"
999
}
1000
},
1001
"babel-template": {
@@ -1004,11 +1085,11 @@
1004
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
1005
"dev": true,
1006
"requires": {
1007
- "babel-runtime": "6.26.0",
1008
- "babel-traverse": "6.26.0",
1009
- "babel-types": "6.26.0",
1010
- "babylon": "6.18.0",
1011
- "lodash": "4.17.10"
1012
}
1013
},
1014
"babel-traverse": {
@@ -1017,15 +1098,15 @@
1017
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
1018
"dev": true,
1019
"requires": {
1020
- "babel-code-frame": "6.26.0",
1021
- "babel-messages": "6.23.0",
1022
- "babel-runtime": "6.26.0",
1023
- "babel-types": "6.26.0",
1024
- "babylon": "6.18.0",
1025
- "debug": "2.6.9",
1026
- "globals": "9.18.0",
1027
- "invariant": "2.2.4",
1028
- "lodash": "4.17.10"
1029
},
1030
"dependencies": {
1031
"debug": {
@@ -1051,10 +1132,10 @@
1051
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
1052
"dev": true,
1053
"requires": {
1054
- "babel-runtime": "6.26.0",
1055
- "esutils": "2.0.2",
1056
- "lodash": "4.17.10",
1057
- "to-fast-properties": "1.0.3"
1058
}
1059
},
1060
"babelify": {
@@ -1088,7 +1169,7 @@
1088
"dev": true,
1089
"optional": true,
1090
"requires": {
1091
- "tweetnacl": "0.14.5"
1092
}
1093
},
1094
"binary-extensions": {
@@ -1103,8 +1184,8 @@
1103
"integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
1104
"dev": true,
1105
"requires": {
1106
- "readable-stream": "2.3.6",
1107
- "safe-buffer": "5.1.1"
1108
}
1109
},
1110
"block-stream": {
@@ -1114,7 +1195,7 @@
1114
"dev": true,
1115
"optional": true,
1116
"requires": {
1117
- "inherits": "2.0.3"
1118
}
1119
},
1120
"bn.js": {
@@ -1130,15 +1211,15 @@
1130
"dev": true,
1131
"requires": {
1132
"bytes": "2.2.0",
1133
- "content-type": "1.0.4",
1134
- "debug": "2.2.0",
1135
- "depd": "1.1.2",
1136
- "http-errors": "1.3.1",
1137
"iconv-lite": "0.4.13",
1138
- "on-finished": "2.3.0",
1139
"qs": "5.2.0",
1140
- "raw-body": "2.1.7",
1141
- "type-is": "1.6.16"
1142
},
1143
"dependencies": {
1144
"qs": {
@@ -1149,13 +1230,19 @@
1149
}
1150
}
1151
},
1152
"brace-expansion": {
1153
"version": "1.1.11",
1154
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1155
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1156
"dev": true,
1157
"requires": {
1158
- "balanced-match": "1.0.0",
1159
"concat-map": "0.0.1"
1160
}
1161
},
@@ -1165,9 +1252,9 @@
1165
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
1166
"dev": true,
1167
"requires": {
1168
- "expand-range": "1.8.2",
1169
- "preserve": "0.2.0",
1170
- "repeat-element": "1.1.2"
1171
}
1172
},
1173
"brorand": {
@@ -1182,12 +1269,12 @@
1182
"integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
1183
"dev": true,
1184
"requires": {
1185
- "JSONStream": "1.3.3",
1186
- "combine-source-map": "0.8.0",
1187
- "defined": "1.0.0",
1188
- "safe-buffer": "5.1.1",
1189
- "through2": "2.0.3",
1190
- "umd": "3.0.3"
1191
}
1192
},
1193
"browser-resolve": {
@@ -1213,54 +1300,54 @@
1213
"integrity": "sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==",
1214
"dev": true,
1215
"requires": {
1216
- "JSONStream": "1.3.3",
1217
- "assert": "1.4.1",
1218
- "browser-pack": "6.1.0",
1219
- "browser-resolve": "1.11.2",
1220
- "browserify-zlib": "0.2.0",
1221
- "buffer": "5.1.0",
1222
- "cached-path-relative": "1.0.1",
1223
- "concat-stream": "1.6.1",
1224
- "console-browserify": "1.1.0",
1225
- "constants-browserify": "1.0.0",
1226
- "crypto-browserify": "3.12.0",
1227
- "defined": "1.0.0",
1228
- "deps-sort": "2.0.0",
1229
- "domain-browser": "1.2.0",
1230
- "duplexer2": "0.1.4",
1231
- "events": "2.1.0",
1232
- "glob": "7.1.2",
1233
- "has": "1.0.3",
1234
- "htmlescape": "1.1.1",
1235
- "https-browserify": "1.0.0",
1236
- "inherits": "2.0.3",
1237
- "insert-module-globals": "7.1.0",
1238
- "labeled-stream-splicer": "2.0.1",
1239
- "mkdirp": "0.5.1",
1240
- "module-deps": "6.1.0",
1241
- "os-browserify": "0.3.0",
1242
- "parents": "1.0.1",
1243
- "path-browserify": "0.0.0",
1244
- "process": "0.11.10",
1245
- "punycode": "1.4.1",
1246
- "querystring-es3": "0.2.1",
1247
- "read-only-stream": "2.0.0",
1248
- "readable-stream": "2.3.6",
1249
- "resolve": "1.7.1",
1250
- "shasum": "1.0.2",
1251
- "shell-quote": "1.6.1",
1252
- "stream-browserify": "2.0.1",
1253
- "stream-http": "2.8.3",
1254
- "string_decoder": "1.1.1",
1255
- "subarg": "1.0.0",
1256
- "syntax-error": "1.4.0",
1257
- "through2": "2.0.3",
1258
- "timers-browserify": "1.4.2",
1259
"tty-browserify": "0.0.1",
1260
- "url": "0.11.0",
1261
- "util": "0.10.4",
1262
- "vm-browserify": "1.0.1",
1263
- "xtend": "4.0.1"
1264
},
1265
"dependencies": {
1266
"browserify-zlib": {
@@ -1269,7 +1356,7 @@
1269
"integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
1270
"dev": true,
1271
"requires": {
1272
- "pako": "1.0.6"
1273
}
1274
},
1275
"isarray": {
@@ -1290,13 +1377,13 @@
1290
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1291
"dev": true,
1292
"requires": {
1293
- "core-util-is": "1.0.2",
1294
- "inherits": "2.0.3",
1295
- "isarray": "1.0.0",
1296
- "process-nextick-args": "2.0.0",
1297
- "safe-buffer": "5.1.1",
1298
- "string_decoder": "1.1.1",
1299
- "util-deprecate": "1.0.2"
1300
}
1301
},
1302
"resolve": {
@@ -1305,7 +1392,7 @@
1305
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
1306
"dev": true,
1307
"requires": {
1308
- "path-parse": "1.0.5"
1309
}
1310
},
1311
"string_decoder": {
@@ -1314,7 +1401,7 @@
1314
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1315
"dev": true,
1316
"requires": {
1317
- "safe-buffer": "5.1.1"
1318
}
1319
}
1320
}
@@ -1325,12 +1412,12 @@
1325
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
1326
"dev": true,
1327
"requires": {
1328
- "buffer-xor": "1.0.3",
1329
- "cipher-base": "1.0.4",
1330
- "create-hash": "1.2.0",
1331
- "evp_bytestokey": "1.0.3",
1332
- "inherits": "2.0.3",
1333
- "safe-buffer": "5.1.1"
1334
}
1335
},
1336
"browserify-cache-api": {
@@ -1339,9 +1426,9 @@
1339
"integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=",
1340
"dev": true,
1341
"requires": {
1342
- "async": "1.5.2",
1343
- "through2": "2.0.3",
1344
- "xtend": "4.0.1"
1345
},
1346
"dependencies": {
1347
"async": {
@@ -1358,9 +1445,9 @@
1358
"integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
1359
"dev": true,
1360
"requires": {
1361
- "browserify-aes": "1.2.0",
1362
- "browserify-des": "1.0.1",
1363
- "evp_bytestokey": "1.0.3"
1364
}
1365
},
1366
"browserify-des": {
@@ -1369,9 +1456,9 @@
1369
"integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==",
1370
"dev": true,
1371
"requires": {
1372
- "cipher-base": "1.0.4",
1373
- "des.js": "1.0.0",
1374
- "inherits": "2.0.3"
1375
}
1376
},
1377
"browserify-incremental": {
@@ -1380,10 +1467,10 @@
1380
"integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=",
1381
"dev": true,
1382
"requires": {
1383
- "JSONStream": "0.10.0",
1384
- "browserify-cache-api": "3.0.1",
1385
- "through2": "2.0.3",
1386
- "xtend": "4.0.1"
1387
},
1388
"dependencies": {
1389
"JSONStream": {
@@ -1393,7 +1480,7 @@
1393
"dev": true,
1394
"requires": {
1395
"jsonparse": "0.0.5",
1396
- "through": "2.3.8"
1397
}
1398
},
1399
"jsonparse": {
@@ -1410,8 +1497,8 @@
1410
"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
1411
"dev": true,
1412
"requires": {
1413
- "bn.js": "4.11.8",
1414
- "randombytes": "2.0.6"
1415
}
1416
},
1417
"browserify-sign": {
@@ -1420,13 +1507,13 @@
1420
"integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
1421
"dev": true,
1422
"requires": {
1423
- "bn.js": "4.11.8",
1424
- "browserify-rsa": "4.0.1",
1425
- "create-hash": "1.2.0",
1426
- "create-hmac": "1.1.7",
1427
- "elliptic": "6.4.0",
1428
- "inherits": "2.0.3",
1429
- "parse-asn1": "5.1.1"
1430
}
1431
},
1432
"browserify-transform-tools": {
@@ -1435,8 +1522,8 @@
1435
"integrity": "sha1-g+J3Ih9jJZvtLn6yooOpcKUB9MQ=",
1436
"dev": true,
1437
"requires": {
1438
- "falafel": "2.1.0",
1439
- "through": "2.3.8"
1440
}
1441
},
1442
"browserslist": {
@@ -1445,8 +1532,8 @@
1445
"integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
1446
"dev": true,
1447
"requires": {
1448
- "caniuse-lite": "1.0.30000849",
1449
- "electron-to-chromium": "1.3.48"
1450
}
1451
},
1452
"buffer": {
@@ -1455,8 +1542,8 @@
1455
"integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==",
1456
"dev": true,
1457
"requires": {
1458
- "base64-js": "1.3.0",
1459
- "ieee754": "1.1.11"
1460
}
1461
},
1462
"buffer-alloc": {
@@ -1465,8 +1552,8 @@
1465
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
1466
"dev": true,
1467
"requires": {
1468
- "buffer-alloc-unsafe": "1.1.0",
1469
- "buffer-fill": "1.0.0"
1470
}
1471
},
1472
"buffer-alloc-unsafe": {
@@ -1529,8 +1616,53 @@
1529
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
1530
"dev": true,
1531
"requires": {
1532
- "camelcase": "2.1.1",
1533
- "map-obj": "1.0.1"
1534
}
1535
},
1536
"caniuse-lite": {
@@ -1552,11 +1684,11 @@
1552
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1553
"dev": true,
1554
"requires": {
1555
- "ansi-styles": "2.2.1",
1556
- "escape-string-regexp": "1.0.5",
1557
- "has-ansi": "2.0.0",
1558
- "strip-ansi": "3.0.1",
1559
- "supports-color": "2.0.0"
1560
}
1561
},
1562
"chokidar": {
@@ -1565,15 +1697,15 @@
1565
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
1566
"dev": true,
1567
"requires": {
1568
- "anymatch": "1.3.2",
1569
- "async-each": "1.0.1",
1570
- "fsevents": "1.2.4",
1571