WP Table Builder – WordPress Table Plugin - Version 1.0.2

Version Description

  • NEW: Duplicate table functionality.
  • NEW: Preview table on the frontend.
  • NEW: Prevent one click deletion of table.
Download this release

Release Info

Developer imtiazrayhan
Plugin Icon 128x128 WP Table Builder – WordPress Table Plugin
Version 1.0.2
Comparing to
See all releases

Code changes from version 1.0.1 to 1.0.2

inc/admin/class-admin-menu.php CHANGED
@@ -164,6 +164,7 @@ class Admin_Menu {
164
  );
165
  } elseif( isset( $_GET['page'] ) && sanitize_text_field( $_GET['page'] ) == 'wptb-overview' ) {
166
  wp_enqueue_script( 'wptb-overview-js', plugin_dir_url( __FILE__ ) . 'js/wptb-overview.js', array( 'jquery' ), NS\PLUGIN_VERSION, true );
 
167
  }
168
 
169
  }
164
  );
165
  } elseif( isset( $_GET['page'] ) && sanitize_text_field( $_GET['page'] ) == 'wptb-overview' ) {
166
  wp_enqueue_script( 'wptb-overview-js', plugin_dir_url( __FILE__ ) . 'js/wptb-overview.js', array( 'jquery' ), NS\PLUGIN_VERSION, true );
167
+ wp_enqueue_style( 'wptb-admin-common-css', plugin_dir_url( __FILE__ ) . 'css/admin-common.css', array(), NS\PLUGIN_VERSION, 'all' );
168
  }
169
 
170
  }
inc/admin/class-wptb-listing.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  namespace WP_Table_Builder\Inc\Admin;
 
4
 
5
 
6
  if ( ! class_exists( 'WP_List_Table' ) ) {
@@ -24,20 +25,6 @@ class WPTB_Listing extends \WP_List_Table{
24
  'plural' => __( 'WPTB Tables', 'wp-table-builder' ),
25
  'ajax' => false
26
  ] );
27
- if ( isset( $_GET['success'] ) ) { ?>
28
- <div class="notice notice-success is-dismissible">
29
- <p><?php esc_html_e( 'Table deleted successfully.', 'wp-table-builder' ); ?></p>
30
- </div>
31
- <?php
32
- unset( $_GET['success'] );
33
- } if ( isset( $_GET['bulksuccess'] ) ) { ?>
34
- <div class="notice notice-success is-dismissible">
35
- <p><?php esc_html_e( 'Bulk Delete Performed Successfully.', 'wp-table-builder' ); ?></p>
36
- </div>
37
- <?php
38
- unset( $_GET['bulksuccess'] );
39
- }
40
-
41
  }
42
 
43
  public static function get_tables( $per_page = 5, $page_number = 1 ) {
@@ -57,6 +44,37 @@ class WPTB_Listing extends \WP_List_Table{
57
 
58
  }
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  public static function delete_table( $id ) {
61
 
62
  global $wpdb;
@@ -104,7 +122,7 @@ class WPTB_Listing extends \WP_List_Table{
104
  function column_name( $item ) {
105
 
106
  // create a nonce
107
- $delete_nonce = wp_create_nonce( 'wptb_delete_table' );
108
 
109
  $table_title = $item->post_title;
110
 
@@ -123,7 +141,9 @@ class WPTB_Listing extends \WP_List_Table{
123
  );
124
 
125
  $actions = [
126
- 'delete' => sprintf( '<a href="?page=%s&action=%s&table_id=%s&_wpnonce=%s">Delete</a>', esc_attr( $_REQUEST['page'] ), 'delete', absint( $item->ID ), $delete_nonce ),
 
 
127
  'edit' => sprintf( '<a href="?page=wptb-builder&table=%d">Edit</a>', absint( $item->ID ) )
128
  ];
129
 
@@ -213,15 +233,36 @@ class WPTB_Listing extends \WP_List_Table{
213
  public function process_bulk_action() {
214
 
215
  $nonce = esc_attr( $_REQUEST['_wpnonce'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
 
217
  if ( 'delete' === $this->current_action() ) {
218
 
219
- if ( ! wp_verify_nonce( $nonce, 'wptb_delete_table' ) ) {
220
  die( 'Go get a life script kiddies' );
221
  } else {
222
  $this->delete_table( absint( $_GET['table_id'] ) );
223
- die('<script>window.location=window.location.href.split(\'?\')[0]+"?page=wptb-overview&success=1";</script>');
224
- exit;
 
 
 
 
225
  }
226
 
227
  }
@@ -239,9 +280,13 @@ class WPTB_Listing extends \WP_List_Table{
239
  foreach ( $delete_ids as $id ) {
240
  $this->delete_table( absint( $id ) );
241
  }
242
-
243
- die('<script>window.location=window.location.href.split(\'?\')[0]+"?page=wptb-overview&bulksuccess=1";</script>');
244
- exit;
 
 
 
 
245
  }
246
  }
247
  }
1
  <?php
2
 
3
  namespace WP_Table_Builder\Inc\Admin;
4
+ use WP_Table_Builder\Inc\Common\Helpers as Helpers;
5
 
6
 
7
  if ( ! class_exists( 'WP_List_Table' ) ) {
25
  'plural' => __( 'WPTB Tables', 'wp-table-builder' ),
26
  'ajax' => false
27
  ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
29
 
30
  public static function get_tables( $per_page = 5, $page_number = 1 ) {
44
 
45
  }
46
 
47
+ public static function duplicate_table( $id ) {
48
+
49
+ global $wpdb;
50
+
51
+ $post = get_post( $id );
52
+
53
+ if( $post ) {
54
+ $id_new = wp_insert_post([
55
+ 'post_title' => sanitize_text_field( $post->post_title ),
56
+ 'post_content' => '',
57
+ 'post_type' => 'wptb-tables'
58
+ ]);
59
+ $post_meta = get_post_meta( absint( $id ) , '_wptb_content_', true );
60
+
61
+ $post_meta = add_post_meta( $id_new, '_wptb_content_', $post_meta );
62
+
63
+ if( $id_new && $post_meta ) {
64
+ wp_update_post([
65
+ 'ID' => $id_new,
66
+ 'post_title' => str_replace( ' (ID #'.$id.')', '', get_the_title( $id_new ) . ' (ID #' . $id_new . ')' ),
67
+ 'post_content' => '',
68
+ 'post_type' => 'wptb-tables'
69
+ ]);
70
+ return true;
71
+ }
72
+ }
73
+
74
+ return false;
75
+
76
+ }
77
+
78
  public static function delete_table( $id ) {
79
 
80
  global $wpdb;
122
  function column_name( $item ) {
123
 
124
  // create a nonce
125
+ $nonce = wp_create_nonce( 'wptb_nonce_table' );
126
 
127
  $table_title = $item->post_title;
128
 
141
  );
142
 
143
  $actions = [
144
+ 'delete' => sprintf( '<a href="?page=%s&action=%s&table_id=%s&_wpnonce=%s">Delete</a>', esc_attr( $_REQUEST['page'] ), 'delete', absint( $item->ID ), $nonce ),
145
+ 'duplicate' => sprintf( '<a href="?page=%s&action=%s&table_id=%s&_wpnonce=%s">Duplicate</a>', esc_attr( $_REQUEST['page'] ), 'duplicate', absint( $item->ID ), $nonce ),
146
+ 'preview_' => sprintf( '<a href="%s&_wpnonce=%s" target="_blank">Preview</a>', Helpers::wptb_get_table_preview_url( absint( $item->ID ) ), $nonce ),
147
  'edit' => sprintf( '<a href="?page=wptb-builder&table=%d">Edit</a>', absint( $item->ID ) )
148
  ];
149
 
233
  public function process_bulk_action() {
234
 
235
  $nonce = esc_attr( $_REQUEST['_wpnonce'] );
236
+
237
+
238
+ if ( 'duplicate' === $this->current_action() ) {
239
+
240
+ if ( ! wp_verify_nonce( $nonce, 'wptb_nonce_table' ) ) {
241
+ die( 'Go get a life script kiddies' );
242
+ } else {
243
+ $duplicate = $this->duplicate_table( absint( $_GET['table_id'] ) );
244
+ ?>
245
+ <div class="notice notice-success is-dismissible">
246
+ <p><?php esc_html_e( 'Table duplicate successfully.', 'wp-table-builder' ); ?></p>
247
+ </div>
248
+ <script>window.history.pushState( null, null, window.location.href.split('?')[0] + '?page=wptb-overview' );</script>
249
+ <?php
250
+ }
251
+
252
+ }
253
 
254
  if ( 'delete' === $this->current_action() ) {
255
 
256
+ if ( ! wp_verify_nonce( $nonce, 'wptb_nonce_table' ) ) {
257
  die( 'Go get a life script kiddies' );
258
  } else {
259
  $this->delete_table( absint( $_GET['table_id'] ) );
260
+ ?>
261
+ <div class="notice notice-success is-dismissible">
262
+ <p><?php esc_html_e( 'Table deleted successfully.', 'wp-table-builder' ); ?></p>
263
+ </div>
264
+ <script>window.history.pushState( null, null, window.location.href.split('?')[0] + '?page=wptb-overview' );</script>
265
+ <?php
266
  }
267
 
268
  }
280
  foreach ( $delete_ids as $id ) {
281
  $this->delete_table( absint( $id ) );
282
  }
283
+
284
+ ?>
285
+ <div class="notice notice-success is-dismissible">
286
+ <p><?php esc_html_e( 'Bulk Delete Performed Successfully.', 'wp-table-builder' ); ?></p>
287
+ </div>
288
+ <script>window.history.pushState( null, null, window.location.href.split('?')[0] + '?page=wptb-overview' );</script>
289
+ <?php
290
  }
291
  }
292
  }
inc/admin/css/admin-common.css ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wptb-popup-dark-area {
2
+ position: fixed;
3
+ width: 100%;
4
+ height: 100%;
5
+ visibility: hidden;
6
+ top: 0;
7
+ left: 0;
8
+ z-index: 9999;
9
+ background-color: slategray;
10
+ opacity: 0;
11
+ -webkit-transition: all 0.3s;
12
+ -moz-transition: all 0.3s;
13
+ transition: all 0.3s;
14
+ }
15
+
16
+ .wptb-popup-window-modal.wptb-popup-show~.wptb-popup-dark-area {
17
+ visibility: visible;
18
+ opacity: .6;
19
+ }
20
+
21
+ .wptb-popup-window-modal {
22
+ position: fixed;
23
+ top: 50%;
24
+ left: 50%;
25
+ width: 50%;
26
+ max-width: 630px;
27
+ min-width: 300px;
28
+ height: auto;
29
+ z-index: 10000;
30
+ visibility: hidden;
31
+ -webkit-backface-visibility: hidden;
32
+ -moz-backface-visibility: hidden;
33
+ backface-visibility: hidden;
34
+ -webkit-transform: translateX(-50%) translateY(-50%);
35
+ -moz-transform: translateX(-50%) translateY(-50%);
36
+ -ms-transform: translateX(-50%) translateY(-50%);
37
+ transform: translateX(-50%) translateY(-50%);
38
+ }
39
+
40
+ .wptb-popup-window-modal.wptb-popup-window-delete-confirm {
41
+ width: 400px;
42
+ margin-left: -200px;
43
+ margin-top: -100px;
44
+ -webkit-transform: translateX(0%) translateY(0%);
45
+ -moz-transform: translateX(0%) translateY(0%);
46
+ -ms-transform: translateX(0%) translateY(0%);
47
+ transform: translateX(0%) translateY(0%);
48
+ }
49
+
50
+ .wptb-popup-window-modal.wptb-popup-show {
51
+ visibility: visible;
52
+ }
53
+
54
+ .wptb-popup-box {
55
+ -webkit-transform: scale(0.7);
56
+ -moz-transform: scale(0.7);
57
+ -ms-transform: scale(0.7);
58
+ transform: scale(0.7);
59
+ opacity: 0;
60
+ -webkit-transition: all 0.3s;
61
+ -moz-transition: all 0.3s;
62
+ transition: all 0.3s;
63
+ border-radius: 0;
64
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
65
+ padding: 30px;
66
+ background-color: white;
67
+ }
68
+
69
+ .wptb-popup-window-modal.wptb-popup-show .wptb-popup-box {
70
+ -webkit-transform: scale(1);
71
+ -moz-transform: scale(1);
72
+ -ms-transform: scale(1);
73
+ transform: scale(1);
74
+ opacity: 1;
75
+ }
76
+
77
+ .wptb-popup-window-close-icon {
78
+ height: 20px;
79
+ width: 20px;
80
+ position: absolute;
81
+ top: 10px;
82
+ right: 10px;
83
+ cursor: pointer;
84
+ opacity: .6;
85
+ text-align: center;
86
+ font-size: 27px !important;
87
+ line-height: 14px !important;
88
+ display: none;
89
+ z-index: 1;
90
+ }
91
+
92
+ .wptb-popup-content p {
93
+ font-size: 15px;
94
+ text-align: center;
95
+ }
96
+
97
+ .wptb-popup-window-buttons {
98
+ text-align: center;
99
+ margin-top: 30px;
100
+ }
101
+
102
+ .wptb-popup-window-buttons button {
103
+ padding: 10px 20px;
104
+ text-shadow: none;
105
+ cursor: pointer;
106
+ }
107
+
108
+ .wptb-popup-window-buttons button + button {
109
+ margin-left: 4px;
110
+ }
111
+
112
+ .wptb-confirm-btn {
113
+ background-color: #3B7EC0;
114
+ color: white;
115
+ }
116
+
117
+ .wptb-confirm-btn:hover {
118
+ background-color: #184D81;
119
+ }
120
+
121
+ .wptb-cancel-btn {
122
+ background-color: #ecf0f1;
123
+ color: #000;
124
+ }
125
+
126
+ .wptb-cancel-btn:hover {
127
+ background-color: #5553;
128
+ }
129
+
130
+ .wptb-popup-sing-picture-container {
131
+ height: 70px;
132
+ text-align: center;
133
+ }
134
+
135
+ .wptb-popup-window-modal.wptb-popup-window-delete-confirm.wptb-popup-show.hilight {
136
+ -webkit-animation: shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;
137
+ animation: shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;
138
+ -webkit-transform: translate3d(0,0,0);
139
+ transform: translate3d(0,0,0);
140
+ backface-visibility: hidden;
141
+ perspective: 1000px;
142
+ }
143
+
144
+ @keyframes shake {
145
+ 10%, 90% {
146
+ transform: translate3d(-1px, 0, 0);
147
+ }
148
+
149
+ 20%, 80% {
150
+ transform: translate3d(2px, 0, 0);
151
+ }
152
+
153
+ 30%, 50%, 70% {
154
+ transform: translate3d(-4px, 0, 0);
155
+ }
156
+
157
+ 40%, 60% {
158
+ transform: translate3d(4px, 0, 0);
159
+ }
160
+ }
161
+
162
+ @media screen and (max-width: 500px) {
163
+ .wptb-popup-window-modal.wptb-popup-window-delete-confirm {
164
+ width: 300px;
165
+ margin-left: -150px;
166
+ }
167
+ }
inc/admin/css/admin.css CHANGED
@@ -165,7 +165,7 @@ body>img {
165
  text-decoration: none;
166
  }
167
 
168
- .wptb-shortcode-popup-dark-area {
169
  position: fixed;
170
  width: 100%;
171
  height: 100%;
@@ -180,12 +180,12 @@ body>img {
180
  transition: all 0.3s;
181
  }
182
 
183
- .wptb-shortcode-popup-window-modal.wptb-shortcode-popup-show~.wptb-shortcode-popup-dark-area {
184
  visibility: visible;
185
  opacity: .6;
186
  }
187
 
188
- .wptb-shortcode-popup-window-modal {
189
  position: fixed;
190
  top: 50%;
191
  left: 50%;
@@ -204,11 +204,11 @@ body>img {
204
  transform: translateX(-50%) translateY(-50%);
205
  }
206
 
207
- .wptb-shortcode-popup-window-modal.wptb-shortcode-popup-show {
208
  visibility: visible;
209
  }
210
 
211
- .wptb-shortcode-popup-box {
212
  -webkit-transform: scale(0.7);
213
  -moz-transform: scale(0.7);
214
  -ms-transform: scale(0.7);
@@ -223,7 +223,7 @@ body>img {
223
  background-color: white;
224
  }
225
 
226
- .wptb-shortcode-popup-window-modal.wptb-shortcode-popup-show .wptb-shortcode-popup-box {
227
  -webkit-transform: scale(1);
228
  -moz-transform: scale(1);
229
  -ms-transform: scale(1);
@@ -231,7 +231,7 @@ body>img {
231
  opacity: 1;
232
  }
233
 
234
- .wptb-shortcode-popup-window-close-icon {
235
  height: 20px;
236
  width: 20px;
237
  position: absolute;
@@ -246,7 +246,7 @@ body>img {
246
  z-index: 1;
247
  }
248
 
249
- .wptb-shortcode-popup-content p {
250
  font-size: 15px;
251
  text-align: center;
252
  }
@@ -1235,6 +1235,13 @@ table.wptb-table {
1235
  margin-bottom: 7px;
1236
  }
1237
 
 
 
 
 
 
 
 
1238
 
1239
  /*
1240
  ** Button Style
165
  text-decoration: none;
166
  }
167
 
168
+ .wptb-popup-dark-area {
169
  position: fixed;
170
  width: 100%;
171
  height: 100%;
180
  transition: all 0.3s;
181
  }
182
 
183
+ .wptb-popup-window-modal.wptb-popup-show~.wptb-popup-dark-area {
184
  visibility: visible;
185
  opacity: .6;
186
  }
187
 
188
+ .wptb-popup-window-modal {
189
  position: fixed;
190
  top: 50%;
191
  left: 50%;
204
  transform: translateX(-50%) translateY(-50%);
205
  }
206
 
207
+ .wptb-popup-window-modal.wptb-popup-show {
208
  visibility: visible;
209
  }
210
 
211
+ .wptb-popup-box {
212
  -webkit-transform: scale(0.7);
213
  -moz-transform: scale(0.7);
214
  -ms-transform: scale(0.7);
223
  background-color: white;
224
  }
225
 
226
+ .wptb-popup-window-modal.wptb-popup-show .wptb-popup-box {
227
  -webkit-transform: scale(1);
228
  -moz-transform: scale(1);
229
  -ms-transform: scale(1);
231
  opacity: 1;
232
  }
233
 
234
+ .wptb-popup-window-close-icon {
235
  height: 20px;
236
  width: 20px;
237
  position: absolute;
246
  z-index: 1;
247
  }
248
 
249
+ .wptb-popup-content p {
250
  font-size: 15px;
251
  text-align: center;
252
  }
1235
  margin-bottom: 7px;
1236
  }
1237
 
1238
+ /*
1239
+ ** Image Style
1240
+ */
1241
+
1242
+ .wptb-image-wrapper img {
1243
+ width: 100%;
1244
+ }
1245
 
1246
  /*
1247
  ** Button Style
inc/admin/js/admin.js CHANGED
@@ -1,215 +1,3 @@
1
- var applyGenericItemSettings = function applyGenericItemSettings(element, kindIndexProt) {
2
- var copy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3
-
4
- var node = element.getDOMElement(),
5
- index,
6
- listItems,
7
- copy;
8
-
9
- if (kindIndexProt == undefined || copy == true) {
10
- index = document.counter.nextIndex(element.kind);
11
- var wptbElements = document.getElementsByClassName('wptb-ph-element');
12
- var elementIndexesArr = [];
13
- for (var i = 0; i < wptbElements.length; i++) {
14
- var regex = new RegExp('wptb-element-' + element.kind + '-(\\d+)', "i");
15
- var infArr = wptbElements[i].className.match(regex);
16
- if (infArr) {
17
- elementIndexesArr.push(infArr[1]);
18
- }
19
- }
20
- if (elementIndexesArr.length > 0) {
21
- var elementIndexMax = Math.max.apply(Math, elementIndexesArr);
22
- index = elementIndexMax + 1;
23
- } else {
24
- index = 1;
25
- }
26
- } else if (kindIndexProt && !copy) {
27
- index = kindIndexProt.split('-')[1];
28
- }
29
-
30
- node.onmouseenter = function (event) {
31
- this.classList.add('wptb-directlyhovered');
32
- var btnDelete = document.createElement('span'),
33
- btnCopy = document.createElement('span'),
34
- btnMove = document.createElement('span'),
35
- actions = document.createElement('span'),
36
- i = void 0;
37
-
38
- actions.classList.add('wptb-actions');
39
- btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');
40
- btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');
41
- btnMove.classList.add("dashicons", "dashicons-move", 'wptb-move-action');
42
- btnMove.draggable = true;
43
- btnDelete.onclick = function (event) {
44
- var act = this.parentNode.parentNode,
45
- el = act.parentNode;
46
- el.removeChild(act);
47
-
48
- if (act.kind == 'text') {
49
- var thisRow = el.parentNode;
50
- if (thisRow.classList.contains('wptb-table-head')) {
51
- var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
52
- WPTB_Helper.dataTitleColumnSet(table);
53
- }
54
- }
55
- };
56
- btnCopy.onclick = function (event) {
57
- var copy = void 0;
58
- if (element.kind == 'list') {
59
- var td = event.target.parentNode.parentNode.parentNode,
60
- temp = [],
61
- srcList = event.target.parentNode.parentNode.querySelectorAll('ul li .wptb-list-item-content');
62
-
63
- for (var i = 0; i < srcList.length; i++) {
64
- temp.push(srcList[i].innerHTML);
65
- }
66
-
67
- copy = new WPTB_List(temp, node);
68
-
69
- node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
70
- } else if (element.kind == 'text') {
71
- var td = event.target.parentNode.parentNode.parentNode;
72
- copy = new WPTB_Text(event.target.parentNode.parentNode.childNodes[0].innerHTML, node);
73
-
74
- node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
75
- } else if (element.kind == 'image') {
76
- var td = event.target.parentNode.parentNode.parentNode;
77
- copy = new WPTB_Image(event.target.parentNode.parentNode.children[0].children[0].src, node);
78
-
79
- node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
80
- } else {
81
- var td = event.target.parentNode.parentNode.parentNode,
82
- text = event.target.parentNode.parentNode.childNodes[0].querySelector('p').innerHTML;
83
- copy = new WPTB_Button(text, node);
84
-
85
- node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
86
- }
87
-
88
- WPTB_innerElementSet(copy.getDOMElement());
89
- };
90
- var parent = this,
91
- infArr = void 0,
92
- type = void 0;
93
- infArr = parent.className.match(/wptb-element-(.+)-(\d+)/i);
94
- type = infArr[1];
95
- var dragImagesArr = WPTB_Helper.dragImagesArr();
96
- btnMove.ondragstart = function (event) {
97
- this.parentNode.style.opacity = 0;
98
- parent.classList.remove('wptb-directlyhovered');
99
- parent.classList.add('wptb-moving-mode');
100
-
101
- event.dataTransfer.setDragImage(dragImagesArr[type], 0, 0);
102
- event.dataTransfer.setData('node', 'wptb-element-' + infArr[1] + '-' + infArr[2]);
103
- event.dataTransfer.setData('wptb-moving-mode', 'wptb-element-' + infArr[1] + '-' + infArr[2]);
104
- event.dataTransfer.setData('wptbElIndic-' + infArr[1], 'wptbElIndic-' + infArr[1]);
105
- var act = event.target.parentNode.parentNode;
106
- if (act.kind == 'text') {
107
- var thisRow = el.parentNode;
108
- if (thisRow.classList.contains('wptb-table-head')) {
109
- var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
110
- WPTB_Helper.dataTitleColumnSet(table);
111
- }
112
- }
113
- };
114
-
115
- if (element.kind === 'button') {
116
- var a = node.querySelector('a'),
117
- target = a.querySelector('div');
118
- a.onclick = function (e) {
119
- e.preventDefault();
120
- };
121
- WPTB_Helper.buttonsTinyMceInit(target);
122
- } else if (element.kind === 'text') {
123
- tinyMCE.init({
124
- target: node.childNodes[0],
125
- inline: true,
126
- plugins: "link, paste",
127
- dialog_type: "modal",
128
- theme: 'modern',
129
- menubar: false,
130
- fixed_toolbar_container: '#wpcd_fixed_toolbar',
131
- paste_as_text: true,
132
- toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',
133
- setup: function setup(ed) {
134
- ed.on('change', function (e) {
135
- var row = WPTB_Helper.findAncestor(node, 'wptb-row');
136
- if (row.classList.contains('wptb-table-head')) {
137
- var table = WPTB_Helper.findAncestor(row, 'wptb-preview-table');
138
- WPTB_Helper.dataTitleColumnSet(table);
139
- }
140
- });
141
- },
142
- init_instance_callback: function init_instance_callback(editor) {
143
- window.currentEditor = editor;
144
- //editor.fire('focus');
145
- editor.on('focus', function (e) {
146
- var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;
147
- if (window.currentEditor && document.getElementById('wptb_builder').scrollTop >= 55 && window.currentEditor.bodyElement.style.display != 'none') {
148
- document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';
149
- document.getElementById('wpcd_fixed_toolbar').style.right = totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2 + 'px';
150
- document.getElementById('wpcd_fixed_toolbar').style.top = '100px';
151
- } else {
152
- document.getElementById('wpcd_fixed_toolbar').style.position = 'static';
153
- delete document.getElementById('wpcd_fixed_toolbar').style.right;
154
- delete document.getElementById('wpcd_fixed_toolbar').style.top;
155
- }
156
- });
157
- }
158
- });
159
- } else {
160
- listItems = node.getElementsByClassName('wptb-list-item-content');
161
- for (var _i = 0; _i < listItems.length; _i++) {
162
- WPTB_Helper.listItemsTinyMceInit(listItems[_i]);
163
- }
164
- }
165
-
166
- actions.appendChild(btnMove);
167
- actions.appendChild(btnCopy);
168
- actions.appendChild(btnDelete);
169
- this.appendChild(actions);
170
- };
171
-
172
- node.onmouseleave = function (event) {
173
- this.classList.remove('wptb-directlyhovered');
174
- var iter = 0;
175
- while (event.target.querySelector('.wptb-actions') && iter < 5) {
176
- event.target.querySelector('.wptb-actions').remove();
177
- iter++;
178
- }
179
- };
180
-
181
- // Change data-title-column if the title was changed
182
- if (element.kind == 'text') {
183
- var observer = new MutationObserver(function (mutations) {
184
- var row = WPTB_Helper.findAncestor(node, 'wptb-row');
185
- if (row.classList.contains('wptb-table-head')) {
186
- var table = WPTB_Helper.findAncestor(row, 'wptb-preview-table');
187
- WPTB_Helper.dataTitleColumnSet(table);
188
- }
189
- });
190
- var config = { attributes: true, attributeFilter: ['style'] };
191
- observer.observe(element.getDOMElement(), config);
192
- }
193
-
194
- var node_wptb_element_kind_num = node.className.match(/wptb-element-(.+)-(\d+)/i);
195
- if (node_wptb_element_kind_num) {
196
- node.classList.remove(node_wptb_element_kind_num[0]);
197
- }
198
- if (!node.classList.contains('wptb-ph-element')) {
199
- node.classList.add('wptb-ph-element');
200
- if (!node.classList.contains('wptb-element-' + element.kind + '-' + index)) {
201
- node.classList.add('wptb-element-' + element.kind + '-' + index);
202
- }
203
- } else {
204
- if (!node.classList.contains('wptb-element-' + element.kind + '-' + index)) {
205
- node.classList.add('wptb-element-' + element.kind + '-' + index);
206
- }
207
- }
208
- new WPTB_ElementOptions(element, index, kindIndexProt);
209
-
210
- document.counter.increment(element.kind);
211
- };
212
-
213
  (function () {
214
  var WPTB_Builder = function WPTB_Builder() {
215
  var table_id = WPTB_Helper.detectMode();
@@ -1118,12 +906,12 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1118
  }
1119
  break;
1120
  case 'image-size':
1121
- affectedEl.getElementsByTagName('img')[0].style.width = this.value + '%';
1122
- affectedEl.getElementsByTagName('img')[0].style.height = 'auto';
1123
  this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;
1124
  break;
1125
  case 'image-alignment':
1126
- affectedEl.getElementsByTagName('img')[0].parentNode.style.textAlign = this.value;
1127
  break;
1128
  case 'font-size':
1129
  affectedEl.style.fontSize = val + 'px';
@@ -1390,17 +1178,17 @@ var WPTB_Helper = {
1390
  thisRowChildren = thisRow.children;
1391
  for (var _j = 0; _j < thisRowChildren.length; _j++) {
1392
  if (contentsForHeader[thisRowChildren[_j].dataset.xIndex]) {
1393
- thisRowChildren[_j].dataset.titleColumn = contentsForHeader[thisRowChildren[_j].dataset.xIndex][0];
1394
- thisRowChildren[_j].dataset.titleColumnFontSize = contentsForHeader[thisRowChildren[_j].dataset.xIndex][1];
1395
- thisRowChildren[_j].dataset.titleColumnColor = contentsForHeader[thisRowChildren[_j].dataset.xIndex][2];
1396
- thisRowChildren[_j].dataset.titleBackgroundColor = contentsForHeader[thisRowChildren[_j].dataset.xIndex][3];
1397
- thisRowChildren[_j].dataset.titleAlign = contentsForHeader[thisRowChildren[_j].dataset.xIndex][4];
1398
  } else {
1399
- thisRowChildren[_j].dataset.titleColumn = '';
1400
- thisRowChildren[_j].dataset.titleColumnFontSize = '';
1401
- thisRowChildren[_j].dataset.titleColumnColor = '';
1402
- thisRowChildren[_j].dataset.titleBackgroundColor = '';
1403
- thisRowChildren[_j].dataset.titleAlign = '';
1404
  }
1405
  }
1406
  }
@@ -1481,15 +1269,20 @@ var WPTB_Helper = {
1481
  };
1482
  var WPTB_Image = function WPTB_Image(src, DOMElementProt) {
1483
  var DOMElement = void 0,
 
1484
  kindIndexProt = undefined,
1485
  copy = false;
1486
  if (DOMElementProt == undefined) {
1487
  DOMElement = document.createElement('div');
 
1488
  var anchor = document.createElement('a'),
1489
  img = document.createElement('img');
1490
  anchor.style.display = 'inline-block';
1491
  anchor.appendChild(img);
1492
- DOMElement.appendChild(anchor);
 
 
 
1493
 
1494
  anchor.onclick = function (e) {
1495
  e.preventDefault();
@@ -1580,116 +1373,24 @@ var WPTB_Initializer = function WPTB_Initializer() {
1580
  // WPTB_LeftPanel();
1581
  // }
1582
  };
1583
- var WPTB_innerElementSet = function WPTB_innerElementSet(element) {
1584
 
1585
- function newElementProxy(el) {
1586
- if (el == 'list') {
1587
- return new WPTB_List();
1588
- } else if (el == 'image') {
1589
- return new WPTB_Image();
1590
- } else if (el == 'text') {
1591
- return new WPTB_Text();
1592
- } else if (el == 'button') {
1593
- return new WPTB_Button();
1594
- }
1595
- }
1596
 
1597
- element.ondragenter = function (e) {
1598
- var div;
1599
- if (e.dataTransfer.types.indexOf('wptbelement') == -1 && e.dataTransfer.types.indexOf('wptb-moving-mode') == -1) {
1600
- return;
 
 
 
 
 
 
 
1601
  }
1602
- WPTB_DropHandle(this, e);
1603
-
1604
- element.classList.add('wptb-ondragenter');
1605
- };
1606
- element.ondragover = function (e) {
1607
- e.preventDefault();
1608
- WPTB_DropHandle(this, e);
1609
- };
1610
- element.ondragleave = function () {};
1611
- element.ondrop = function (e) {
1612
- this.classList.remove('wptb-ondragenter');
1613
- var element = void 0,
1614
- classId = void 0;
1615
- e.preventDefault();
1616
- e.stopPropagation();
1617
-
1618
- if (!e.dataTransfer.getData('wptbElement') && !e.dataTransfer.getData('node')) {
1619
- return;
1620
- }
1621
- var wptbDropHandle = void 0,
1622
- wptbDropBorderMarker = void 0;
1623
- if (document.getElementsByClassName('wptb-drop-handle').length > 0) {
1624
- wptbDropHandle = document.getElementsByClassName('wptb-drop-handle')[0];
1625
- }
1626
- if (document.getElementsByClassName('wptb-drop-border-marker').length > 0) {
1627
- wptbDropBorderMarker = document.getElementsByClassName('wptb-drop-border-marker')[0];
1628
- }
1629
-
1630
- if (e.dataTransfer.getData('wptbElement')) {
1631
- element = newElementProxy(e.dataTransfer.getData('wptbElement'));
1632
- element = element.getDOMElement();
1633
- } else {
1634
- classId = e.dataTransfer.getData('node');
1635
- element = document.getElementsByClassName(classId)[0];
1636
- element.classList.remove('wptb-moving-mode');
1637
- }
1638
-
1639
- if (wptbDropHandle.style.display == 'block') {
1640
- var td = void 0;
1641
- if (wptbDropHandle.dataset.text == 'Drop Here') {
1642
- td = wptbDropHandle.getDOMParentElement();
1643
- td.appendChild(element);
1644
- } else {
1645
- var innerElement = wptbDropHandle.getDOMParentElement();
1646
- td = innerElement.parentNode;
1647
-
1648
- if (wptbDropHandle.dataset.text == 'Abowe Element') {
1649
- td.insertBefore(element, innerElement);
1650
- } else if (wptbDropHandle.dataset.text == 'Below Element') {
1651
- var innerElementNext = innerElement.nextSibling;
1652
- td.insertBefore(element, innerElementNext);
1653
- }
1654
- }
1655
- var thisRow = td.parentNode;
1656
- if (thisRow.classList.contains('wptb-table-head')) {
1657
- var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
1658
- WPTB_Helper.dataTitleColumnSet(table);
1659
- }
1660
- } else {
1661
- return;
1662
- }
1663
-
1664
- wptbDropHandle.style.display = 'none';
1665
- wptbDropBorderMarker.style.display = 'none';
1666
-
1667
- WPTB_innerElementSet(element);
1668
-
1669
- return true;
1670
- };
1671
- element.onmouseover = function (e) {
1672
- element.classList.remove('wptb-ondragenter');
1673
- };
1674
- };
1675
- var WPTB_LeftPanel = function WPTB_LeftPanel() {
1676
-
1677
- var table = document.getElementsByClassName('wptb-preview-table')[0],
1678
- wptbElementButtons = document.getElementsByClassName('wptb-element');
1679
-
1680
- function wptbTdBgColorSavedSet(inputId, trNumber) {
1681
- if (trNumber > 3) return;
1682
- if (table) {
1683
- var tableRows = table.getElementsByTagName('tr');
1684
- if (tableRows.length > trNumber) {
1685
- var trBackgroundColor = tableRows[trNumber].style.backgroundColor;
1686
- var wptbEvenRowBg = document.getElementById(inputId);
1687
- if (wptbEvenRowBg && trBackgroundColor) {
1688
- wptbEvenRowBg.value = WPTB_Helper.rgbToHex(trBackgroundColor);
1689
- }
1690
- }
1691
- }
1692
- }
1693
 
1694
  wptbTdBgColorSavedSet('wptb-even-row-bg', 1);
1695
  jQuery('#wptb-even-row-bg').wpColorPicker({
@@ -2072,7 +1773,11 @@ var WPTB_LeftPanel = function WPTB_LeftPanel() {
2072
  var thisRow = rows[_i5],
2073
  thisRowChildren = thisRow.children;
2074
  for (var j = 0; j < thisRowChildren.length; j++) {
2075
- thisRowChildren[j].removeAttribute('data-title-column');
 
 
 
 
2076
  }
2077
  }
2078
  }
@@ -2424,19 +2129,19 @@ var WPTB_Settings = function WPTB_Settings() {
2424
  };
2425
  };
2426
 
2427
- var shortcodePopupWindow = document.getElementsByClassName('wptb-shortcode-popup-window-modal')[0];
2428
  document.getElementsByClassName('wptb-embed-btn')[0].onclick = function () {
2429
  if (!this.classList.contains('wptb-embed-disable')) {
2430
- shortcodePopupWindow.classList.add('wptb-shortcode-popup-show');
2431
  }
2432
  };
2433
 
2434
- document.getElementsByClassName('wptb-shortcode-popup-dark-area')[0].onclick = function () {
2435
- shortcodePopupWindow.classList.remove('wptb-shortcode-popup-show');
2436
  };
2437
 
2438
- document.getElementsByClassName('wptb-shortcode-popup-window-close-icon')[0].onclick = function () {
2439
- shortcodePopupWindow.classList.remove('wptb-shortcode-popup-show');
2440
  };
2441
 
2442
  document.getElementsByClassName('wptb-save-btn')[0].onclick = function () {
@@ -2656,14 +2361,14 @@ var WPTB_Stringifier = function WPTB_Stringifier(codeMain) {
2656
  }
2657
  }
2658
 
2659
- if (tds[i].hasAttribute('data-title-column')) {
2660
  var columnNameDivContainer = document.createElement('div'),
2661
  columnNameDiv = document.createElement('div');
2662
  columnNameDivContainer.classList.add('wptb-column-title-mobile-container');
2663
  columnNameDiv.classList.add('wptb-column-title-mobile');
2664
- columnNameDiv.dataset.titleColumn = tds[i].dataset.titleColumn;
2665
- columnNameDiv.setAttribute('style', 'font-size:' + tds[i].dataset.titleColumnFontSize + '; \n\
2666
- color:' + tds[i].dataset.titleColumnColor + '; background-color:' + tds[i].dataset.titleBackgroundColor + '; text-align:' + tds[i].dataset.titleAlign + ';');
2667
  columnNameDiv.style.padding = tds[i].style.padding;
2668
  if (tds[i].children.length == 0) {
2669
  tds[i].classList.add('wptb-column-title-mobile-not-elements');
@@ -3127,7 +2832,7 @@ var array = [],
3127
 
3128
  //Create a HTML Table element.
3129
  table = document.createElement('table');
3130
- table.classList.add('wptb-preview-table', 'wptb-preview-table-default-width');
3131
  table.dataset.reconstraction = 1;
3132
  //Add the data rows.
3133
  for (var i = 0; i < rows; i++) {
@@ -4455,4 +4160,308 @@ var WPTB_Text = function WPTB_Text(text, DOMElementProt) {
4455
 
4456
  return this;
4457
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4458
  //# sourceMappingURL=admin.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  (function () {
2
  var WPTB_Builder = function WPTB_Builder() {
3
  var table_id = WPTB_Helper.detectMode();
906
  }
907
  break;
908
  case 'image-size':
909
+ affectedEl.getElementsByTagName('a')[0].style.width = this.value + '%';
910
+ affectedEl.getElementsByTagName('a')[0].style.height = 'auto';
911
  this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;
912
  break;
913
  case 'image-alignment':
914
+ affectedEl.getElementsByClassName('wptb-image-wrapper')[0].style.textAlign = this.value;
915
  break;
916
  case 'font-size':
917
  affectedEl.style.fontSize = val + 'px';
1178
  thisRowChildren = thisRow.children;
1179
  for (var _j = 0; _j < thisRowChildren.length; _j++) {
1180
  if (contentsForHeader[thisRowChildren[_j].dataset.xIndex]) {
1181
+ thisRowChildren[_j].dataset.wptbTitleColumn = contentsForHeader[thisRowChildren[_j].dataset.xIndex][0];
1182
+ thisRowChildren[_j].dataset.wptbTitleColumnFontSize = contentsForHeader[thisRowChildren[_j].dataset.xIndex][1];
1183
+ thisRowChildren[_j].dataset.wptbTitleColumnColor = contentsForHeader[thisRowChildren[_j].dataset.xIndex][2];
1184
+ thisRowChildren[_j].dataset.wptbTitleBackgroundColor = contentsForHeader[thisRowChildren[_j].dataset.xIndex][3];
1185
+ thisRowChildren[_j].dataset.wptbTitleAlign = contentsForHeader[thisRowChildren[_j].dataset.xIndex][4];
1186
  } else {
1187
+ thisRowChildren[_j].dataset.wptbTitleColumn = '';
1188
+ thisRowChildren[_j].dataset.wptbTitleColumnFontSize = '';
1189
+ thisRowChildren[_j].dataset.wptbTitleColumnColor = '';
1190
+ thisRowChildren[_j].dataset.wptbTitleBackgroundColor = '';
1191
+ thisRowChildren[_j].dataset.wptbTitleAlign = '';
1192
  }
1193
  }
1194
  }
1269
  };
1270
  var WPTB_Image = function WPTB_Image(src, DOMElementProt) {
1271
  var DOMElement = void 0,
1272
+ elImage = void 0,
1273
  kindIndexProt = undefined,
1274
  copy = false;
1275
  if (DOMElementProt == undefined) {
1276
  DOMElement = document.createElement('div');
1277
+ elImage = document.createElement('div');
1278
  var anchor = document.createElement('a'),
1279
  img = document.createElement('img');
1280
  anchor.style.display = 'inline-block';
1281
  anchor.appendChild(img);
1282
+ DOMElement.classList.add('wptb-image-container');
1283
+ elImage.classList.add('wptb-image-wrapper');
1284
+ elImage.appendChild(anchor);
1285
+ DOMElement.appendChild(elImage);
1286
 
1287
  anchor.onclick = function (e) {
1288
  e.preventDefault();
1373
  // WPTB_LeftPanel();
1374
  // }
1375
  };
1376
+ var WPTB_LeftPanel = function WPTB_LeftPanel() {
1377
 
1378
+ var table = document.getElementsByClassName('wptb-preview-table')[0],
1379
+ wptbElementButtons = document.getElementsByClassName('wptb-element');
 
 
 
 
 
 
 
 
 
1380
 
1381
+ function wptbTdBgColorSavedSet(inputId, trNumber) {
1382
+ if (trNumber > 3) return;
1383
+ if (table) {
1384
+ var tableRows = table.getElementsByTagName('tr');
1385
+ if (tableRows.length > trNumber) {
1386
+ var trBackgroundColor = tableRows[trNumber].style.backgroundColor;
1387
+ var wptbEvenRowBg = document.getElementById(inputId);
1388
+ if (wptbEvenRowBg && trBackgroundColor) {
1389
+ wptbEvenRowBg.value = WPTB_Helper.rgbToHex(trBackgroundColor);
1390
+ }
1391
+ }
1392
  }
1393
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1394
 
1395
  wptbTdBgColorSavedSet('wptb-even-row-bg', 1);
1396
  jQuery('#wptb-even-row-bg').wpColorPicker({
1773
  var thisRow = rows[_i5],
1774
  thisRowChildren = thisRow.children;
1775
  for (var j = 0; j < thisRowChildren.length; j++) {
1776
+ thisRowChildren[j].removeAttribute('data-wptb-title-column');
1777
+ thisRowChildren[j].removeAttribute('data-wptb-title-column-font-size');
1778
+ thisRowChildren[j].removeAttribute('data-wptb-title-column-color');
1779
+ thisRowChildren[j].removeAttribute('data-wptb-title-background-color');
1780
+ thisRowChildren[j].removeAttribute('data-wptb-title-align');
1781
  }
1782
  }
1783
  }
2129
  };
2130
  };
2131
 
2132
+ var shortcodePopupWindow = document.getElementsByClassName('wptb-popup-window-modal')[0];
2133
  document.getElementsByClassName('wptb-embed-btn')[0].onclick = function () {
2134
  if (!this.classList.contains('wptb-embed-disable')) {
2135
+ shortcodePopupWindow.classList.add('wptb-popup-show');
2136
  }
2137
  };
2138
 
2139
+ document.getElementsByClassName('wptb-popup-dark-area')[0].onclick = function () {
2140
+ shortcodePopupWindow.classList.remove('wptb-popup-show');
2141
  };
2142
 
2143
+ document.getElementsByClassName('wptb-popup-window-close-icon')[0].onclick = function () {
2144
+ shortcodePopupWindow.classList.remove('wptb-popup-show');
2145
  };
2146
 
2147
  document.getElementsByClassName('wptb-save-btn')[0].onclick = function () {
2361
  }
2362
  }
2363
 
2364
+ if (tds[i].hasAttribute('data-wptb-title-column')) {
2365
  var columnNameDivContainer = document.createElement('div'),
2366
  columnNameDiv = document.createElement('div');
2367
  columnNameDivContainer.classList.add('wptb-column-title-mobile-container');
2368
  columnNameDiv.classList.add('wptb-column-title-mobile');
2369
+ columnNameDiv.dataset.wptbTitleColumn = tds[i].dataset.wptbTitleColumn;
2370
+ columnNameDiv.setAttribute('style', 'font-size:' + tds[i].dataset.wptbTitleColumnFontSize + '; \n\
2371
+ color:' + tds[i].dataset.wptbTitleColumnColor + '; background-color:' + tds[i].dataset.wptbTitleBackgroundColor + '; text-align:' + tds[i].dataset.wptbTitleAlign + ';');
2372
  columnNameDiv.style.padding = tds[i].style.padding;
2373
  if (tds[i].children.length == 0) {
2374
  tds[i].classList.add('wptb-column-title-mobile-not-elements');
2832
 
2833
  //Create a HTML Table element.
2834
  table = document.createElement('table');
2835
+ table.classList.add('wptb-preview-table');
2836
  table.dataset.reconstraction = 1;
2837
  //Add the data rows.
2838
  for (var i = 0; i < rows; i++) {
4160
 
4161
  return this;
4162
  };
4163
+ var WPTB_innerElementSet = function WPTB_innerElementSet(element) {
4164
+
4165
+ function newElementProxy(el) {
4166
+ if (el == 'list') {
4167
+ return new WPTB_List();
4168
+ } else if (el == 'image') {
4169
+ return new WPTB_Image();
4170
+ } else if (el == 'text') {
4171
+ return new WPTB_Text();
4172
+ } else if (el == 'button') {
4173
+ return new WPTB_Button();
4174
+ }
4175
+ }
4176
+
4177
+ element.ondragenter = function (e) {
4178
+ var div;
4179
+ if (e.dataTransfer.types.indexOf('wptbelement') == -1 && e.dataTransfer.types.indexOf('wptb-moving-mode') == -1) {
4180
+ return;
4181
+ }
4182
+ WPTB_DropHandle(this, e);
4183
+
4184
+ element.classList.add('wptb-ondragenter');
4185
+ };
4186
+ element.ondragover = function (e) {
4187
+ e.preventDefault();
4188
+ WPTB_DropHandle(this, e);
4189
+ };
4190
+ element.ondragleave = function () {};
4191
+ element.ondrop = function (e) {
4192
+ this.classList.remove('wptb-ondragenter');
4193
+ var element = void 0,
4194
+ classId = void 0;
4195
+ e.preventDefault();
4196
+ e.stopPropagation();
4197
+
4198
+ if (!e.dataTransfer.getData('wptbElement') && !e.dataTransfer.getData('node')) {
4199
+ return;
4200
+ }
4201
+ var wptbDropHandle = void 0,
4202
+ wptbDropBorderMarker = void 0;
4203
+ if (document.getElementsByClassName('wptb-drop-handle').length > 0) {
4204
+ wptbDropHandle = document.getElementsByClassName('wptb-drop-handle')[0];
4205
+ }
4206
+ if (document.getElementsByClassName('wptb-drop-border-marker').length > 0) {
4207
+ wptbDropBorderMarker = document.getElementsByClassName('wptb-drop-border-marker')[0];
4208
+ }
4209
+
4210
+ if (e.dataTransfer.getData('wptbElement')) {
4211
+ element = newElementProxy(e.dataTransfer.getData('wptbElement'));
4212
+ element = element.getDOMElement();
4213
+ } else {
4214
+ classId = e.dataTransfer.getData('node');
4215
+ element = document.getElementsByClassName(classId)[0];
4216
+ element.classList.remove('wptb-moving-mode');
4217
+ }
4218
+
4219
+ if (wptbDropHandle.style.display == 'block') {
4220
+ var td = void 0;
4221
+ if (wptbDropHandle.dataset.text == 'Drop Here') {
4222
+ td = wptbDropHandle.getDOMParentElement();
4223
+ td.appendChild(element);
4224
+ } else {
4225
+ var innerElement = wptbDropHandle.getDOMParentElement();
4226
+ td = innerElement.parentNode;
4227
+
4228
+ if (wptbDropHandle.dataset.text == 'Abowe Element') {
4229
+ td.insertBefore(element, innerElement);
4230
+ } else if (wptbDropHandle.dataset.text == 'Below Element') {
4231
+ var innerElementNext = innerElement.nextSibling;
4232
+ td.insertBefore(element, innerElementNext);
4233
+ }
4234
+ }
4235
+ var thisRow = td.parentNode;
4236
+ if (thisRow.classList.contains('wptb-table-head')) {
4237
+ var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
4238
+ WPTB_Helper.dataTitleColumnSet(table);
4239
+ }
4240
+ } else {
4241
+ return;
4242
+ }
4243
+
4244
+ wptbDropHandle.style.display = 'none';
4245
+ wptbDropBorderMarker.style.display = 'none';
4246
+
4247
+ WPTB_innerElementSet(element);
4248
+
4249
+ return true;
4250
+ };
4251
+ element.onmouseover = function (e) {
4252
+ element.classList.remove('wptb-ondragenter');
4253
+ };
4254
+ };
4255
+ var applyGenericItemSettings = function applyGenericItemSettings(element, kindIndexProt) {
4256
+ var copy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4257
+
4258
+ var node = element.getDOMElement(),
4259
+ index,
4260
+ listItems,
4261
+ copy;
4262
+
4263
+ if (kindIndexProt == undefined || copy == true) {
4264
+ index = document.counter.nextIndex(element.kind);
4265
+ var wptbElements = document.getElementsByClassName('wptb-ph-element');
4266
+ var elementIndexesArr = [];
4267
+ for (var i = 0; i < wptbElements.length; i++) {
4268
+ var regex = new RegExp('wptb-element-' + element.kind + '-(\\d+)', "i");
4269
+ var infArr = wptbElements[i].className.match(regex);
4270
+ if (infArr) {
4271
+ elementIndexesArr.push(infArr[1]);
4272
+ }
4273
+ }
4274
+ if (elementIndexesArr.length > 0) {
4275
+ var elementIndexMax = Math.max.apply(Math, elementIndexesArr);
4276
+ index = elementIndexMax + 1;
4277
+ } else {
4278
+ index = 1;
4279
+ }
4280
+ } else if (kindIndexProt && !copy) {
4281
+ index = kindIndexProt.split('-')[1];
4282
+ }
4283
+
4284
+ node.onmouseenter = function (event) {
4285
+ this.classList.add('wptb-directlyhovered');
4286
+ var btnDelete = document.createElement('span'),
4287
+ btnCopy = document.createElement('span'),
4288
+ btnMove = document.createElement('span'),
4289
+ actions = document.createElement('span'),
4290
+ i = void 0;
4291
+
4292
+ actions.classList.add('wptb-actions');
4293
+ btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');
4294
+ btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');
4295
+ btnMove.classList.add("dashicons", "dashicons-move", 'wptb-move-action');
4296
+ btnMove.draggable = true;
4297
+ btnDelete.onclick = function (event) {
4298
+ var act = this.parentNode.parentNode,
4299
+ el = act.parentNode;
4300
+ el.removeChild(act);
4301
+
4302
+ if (act.kind == 'text') {
4303
+ var thisRow = el.parentNode;
4304
+ if (thisRow.classList.contains('wptb-table-head')) {
4305
+ var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
4306
+ WPTB_Helper.dataTitleColumnSet(table);
4307
+ }
4308
+ }
4309
+ };
4310
+ btnCopy.onclick = function (event) {
4311
+ var copy = void 0;
4312
+ if (element.kind == 'list') {
4313
+ var td = event.target.parentNode.parentNode.parentNode,
4314
+ temp = [],
4315
+ srcList = event.target.parentNode.parentNode.querySelectorAll('ul li .wptb-list-item-content');
4316
+
4317
+ for (var i = 0; i < srcList.length; i++) {
4318
+ temp.push(srcList[i].innerHTML);
4319
+ }
4320
+
4321
+ copy = new WPTB_List(temp, node);
4322
+
4323
+ node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
4324
+ } else if (element.kind == 'text') {
4325
+ var td = event.target.parentNode.parentNode.parentNode;
4326
+ copy = new WPTB_Text(event.target.parentNode.parentNode.childNodes[0].innerHTML, node);
4327
+
4328
+ node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
4329
+ } else if (element.kind == 'image') {
4330
+ var td = event.target.parentNode.parentNode.parentNode;
4331
+ copy = new WPTB_Image(event.target.parentNode.parentNode.children[0].children[0].src, node);
4332
+
4333
+ node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
4334
+ } else {
4335
+ var td = event.target.parentNode.parentNode.parentNode,
4336
+ text = event.target.parentNode.parentNode.childNodes[0].querySelector('p').innerHTML;
4337
+ copy = new WPTB_Button(text, node);
4338
+
4339
+ node.parentNode.insertBefore(copy.getDOMElement(), node.nextSibling);
4340
+ }
4341
+
4342
+ WPTB_innerElementSet(copy.getDOMElement());
4343
+ };
4344
+ var parent = this,
4345
+ infArr = void 0,
4346
+ type = void 0;
4347
+ infArr = parent.className.match(/wptb-element-(.+)-(\d+)/i);
4348
+ type = infArr[1];
4349
+ var dragImagesArr = WPTB_Helper.dragImagesArr();
4350
+ btnMove.ondragstart = function (event) {
4351
+ this.parentNode.style.opacity = 0;
4352
+ parent.classList.remove('wptb-directlyhovered');
4353
+ parent.classList.add('wptb-moving-mode');
4354
+
4355
+ event.dataTransfer.setDragImage(dragImagesArr[type], 0, 0);
4356
+ event.dataTransfer.setData('node', 'wptb-element-' + infArr[1] + '-' + infArr[2]);
4357
+ event.dataTransfer.setData('wptb-moving-mode', 'wptb-element-' + infArr[1] + '-' + infArr[2]);
4358
+ event.dataTransfer.setData('wptbElIndic-' + infArr[1], 'wptbElIndic-' + infArr[1]);
4359
+ var act = event.target.parentNode.parentNode;
4360
+ if (act.kind == 'text') {
4361
+ var thisRow = el.parentNode;
4362
+ if (thisRow.classList.contains('wptb-table-head')) {
4363
+ var table = WPTB_Helper.findAncestor(thisRow, 'wptb-preview-table');
4364
+ WPTB_Helper.dataTitleColumnSet(table);
4365
+ }
4366
+ }
4367
+ };
4368
+
4369
+ if (element.kind === 'button') {
4370
+ var a = node.querySelector('a'),
4371
+ target = a.querySelector('div');
4372
+ a.onclick = function (e) {
4373
+ e.preventDefault();
4374
+ };
4375
+ WPTB_Helper.buttonsTinyMceInit(target);
4376
+ } else if (element.kind === 'text') {
4377
+ tinyMCE.init({
4378
+ target: node.childNodes[0],
4379
+ inline: true,
4380
+ plugins: "link, paste",
4381
+ dialog_type: "modal",
4382
+ theme: 'modern',
4383
+ menubar: false,
4384
+ fixed_toolbar_container: '#wpcd_fixed_toolbar',
4385
+ paste_as_text: true,
4386
+ toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',
4387
+ setup: function setup(ed) {
4388
+ ed.on('change', function (e) {
4389
+ var row = WPTB_Helper.findAncestor(node, 'wptb-row');
4390
+ if (row.classList.contains('wptb-table-head')) {
4391
+ var table = WPTB_Helper.findAncestor(row, 'wptb-preview-table');
4392
+ WPTB_Helper.dataTitleColumnSet(table);
4393
+ }
4394
+ });
4395
+ },
4396
+ init_instance_callback: function init_instance_callback(editor) {
4397
+ window.currentEditor = editor;
4398
+ //editor.fire('focus');
4399
+ editor.on('focus', function (e) {
4400
+ var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;
4401
+ if (window.currentEditor && document.getElementById('wptb_builder').scrollTop >= 55 && window.currentEditor.bodyElement.style.display != 'none') {
4402
+ document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';
4403
+ document.getElementById('wpcd_fixed_toolbar').style.right = totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2 + 'px';
4404
+ document.getElementById('wpcd_fixed_toolbar').style.top = '100px';
4405
+ } else {
4406
+ document.getElementById('wpcd_fixed_toolbar').style.position = 'static';
4407
+ delete document.getElementById('wpcd_fixed_toolbar').style.right;
4408
+ delete document.getElementById('wpcd_fixed_toolbar').style.top;
4409
+ }
4410
+ });
4411
+ }
4412
+ });
4413
+ } else {
4414
+ listItems = node.getElementsByClassName('wptb-list-item-content');
4415
+ for (var _i = 0; _i < listItems.length; _i++) {
4416
+ WPTB_Helper.listItemsTinyMceInit(listItems[_i]);
4417
+ }
4418
+ }
4419
+
4420
+ actions.appendChild(btnMove);
4421
+ actions.appendChild(btnCopy);
4422
+ actions.appendChild(btnDelete);
4423
+ this.appendChild(actions);
4424
+ };
4425
+
4426
+ node.onmouseleave = function (event) {
4427
+ this.classList.remove('wptb-directlyhovered');
4428
+ var iter = 0;
4429
+ while (event.target.querySelector('.wptb-actions') && iter < 5) {
4430
+ event.target.querySelector('.wptb-actions').remove();
4431
+ iter++;
4432
+ }
4433
+ };
4434
+
4435
+ // Change data-title-column if the title was changed
4436
+ if (element.kind == 'text') {
4437
+ var observer = new MutationObserver(function (mutations) {
4438
+ var row = WPTB_Helper.findAncestor(node, 'wptb-row');
4439
+ if (row.classList.contains('wptb-table-head')) {
4440
+ var table = WPTB_Helper.findAncestor(row, 'wptb-preview-table');
4441
+ WPTB_Helper.dataTitleColumnSet(table);
4442
+ }
4443
+ });
4444
+ var config = { attributes: true, attributeFilter: ['style'] };
4445
+ observer.observe(element.getDOMElement(), config);
4446
+ }
4447
+
4448
+ var node_wptb_element_kind_num = node.className.match(/wptb-element-(.+)-(\d+)/i);
4449
+ if (node_wptb_element_kind_num) {
4450
+ node.classList.remove(node_wptb_element_kind_num[0]);
4451
+ }
4452
+ if (!node.classList.contains('wptb-ph-element')) {
4453
+ node.classList.add('wptb-ph-element');
4454
+ if (!node.classList.contains('wptb-element-' + element.kind + '-' + index)) {
4455
+ node.classList.add('wptb-element-' + element.kind + '-' + index);
4456
+ }
4457
+ } else {
4458
+ if (!node.classList.contains('wptb-element-' + element.kind + '-' + index)) {
4459
+ node.classList.add('wptb-element-' + element.kind + '-' + index);
4460
+ }
4461
+ }
4462
+ new WPTB_ElementOptions(element, index, kindIndexProt);
4463
+
4464
+ document.counter.increment(element.kind);
4465
+ };
4466
+
4467
  //# sourceMappingURL=admin.js.map
inc/admin/js/admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["applyGenericItemSettings.js","wptb-builder.js","WPTB_Builder.js","WPTB_Button.js","WPTB_Cell.js","WPTB_DropHandle.js","WPTB_ElementCounters.js","WPTB_ElementOptions.js","WPTB_Helper.js","WPTB_Image.js","WPTB_Initializer.js","WPTB_innerElementSet.js","WPTB_LeftPanel.js","WPTB_List.js","WPTB_ListItem.js","WPTB_MultipleSelect.js","WPTB_Parser.js","WPTB_Parser2.js","WPTB_Settings.js","WPTB_Space.js","WPTB_Stringifier.js","WPTB_Stringifier2.js","WPTB_Table.js","WPTB_Text.js"],"names":["applyGenericItemSettings","element","kindIndexProt","copy","node","getDOMElement","index","listItems","undefined","document","counter","nextIndex","kind","wptbElements","getElementsByClassName","elementIndexesArr","i","length","regex","RegExp","infArr","className","match","push","elementIndexMax","Math","max","split","onmouseenter","event","classList","add","btnDelete","createElement","btnCopy","btnMove","actions","draggable","onclick","act","parentNode","el","removeChild","thisRow","contains","table","WPTB_Helper","findAncestor","dataTitleColumnSet","td","target","temp","srcList","querySelectorAll","innerHTML","WPTB_List","insertBefore","nextSibling","WPTB_Text","childNodes","WPTB_Image","children","src","text","querySelector","WPTB_Button","WPTB_innerElementSet","parent","type","dragImagesArr","ondragstart","style","opacity","remove","dataTransfer","setDragImage","setData","a","e","preventDefault","buttonsTinyMceInit","tinyMCE","init","inline","plugins","dialog_type","theme","menubar","fixed_toolbar_container","paste_as_text","toolbar","setup","ed","on","row","init_instance_callback","editor","window","currentEditor","totalWidth","offsetWidth","getElementById","scrollTop","bodyElement","display","position","right","top","listItemsTinyMceInit","appendChild","onmouseleave","iter","observer","MutationObserver","mutations","config","attributes","attributeFilter","observe","node_wptb_element_kind_num","WPTB_ElementOptions","increment","WPTB_Builder","table_id","detectMode","http","XMLHttpRequest","urlSet","ajaxurl","open","setRequestHeader","onreadystatechange","d","readyState","status","ans","JSON","parse","responseText","value","wptbTableSetupEl","WPTB_Parser","WPTB_Table","WPTB_LeftPanel","WPTB_Settings","send","ElementCounters","select","MultipleSelect","initializer","WPTB_Initializer","settings","addEventListener","DOMElementProt","DOMElement","elButton","el_B","el_BDiv","wptbElementMutch","Array","isArray","attributesContainer","setAttribute","name","wptbButtonWrapper","wptbButtonWrapAttributes","wptbButton","wptbButtonAttributes","WPTB_Cell","callback","highlightRow","parentRow","columnCount","parseInt","tds","getElementsByTagName","classToAdd","ttd","highlightColumn","rowCount","tr","padding","jQuery","val","innerBorderWidth","border","wptbPhElement","wptbSpaceBetween","j","WPTB_Space","wptbElementTypeClass","wptbTypeElementArr","wptbListItems","WPTB_ListItem","setCoords","y","x","dataset","yIndex","xIndex","getCoords","coords","appendElement","WPTB_DropHandle","thisElem","newElementProxy","includes","wptbDropHandle","wptbDropBorderMarker","wptbDropBorderMarkerTop","wptbDropBorderMarkerRight","wptbDropBorderMarkerBottom","wptbDropBorderMarkerLeft","body","ondragenter","ondragover","ondragleave","ondrop","getData","getDOMParentElement","nodeName","toLowerCase","innerElement","innerElementNext","wptbContainer","onscroll","localName","indics","types","notDragEnter","width","height","offsetHeight","coordinatesElement","getBoundingClientRect","left","Number","indexOf","elementDrag","offsetY","layerY","bottom","priv","key","elemIdClass","prop","cloneNode","properties","affectedEl","wptbButtonA","wptbSize","b","buttonAlignment","justifyContent","buttonAlignmentSelect","selectOption","selectOptionVal","selected","buttonHref","getAttribute","buttonLinkTarget","buttonId","buttonHrefInput","buttonLinkTargetInput","buttonLinkTargetInputId","buttonLinkTargetInputLabel","buttotIdInput","checked","buttonTextColor","color","buttonColor","backgroundColor","buttonTextColorInput","buttonBackgroundColorInput","rgbToHex","elementsA","aTextAlign","textAlign","imageAlignmentSelect","imageLinkHref","inputImageLink","imageLinkTarget","imageLinkTargetInput","imageLinkTargetInputId","imageLinkTargetInputLabel","img","imgWidth","imageWidthInputRange","imageWidthInputNumber","imgAlternativeText","imageAlternativeTextInput","elementFontSize","fontSize","elementTextColor","textFontSizeInputRange","textFontSizeInputNumber","textColorInput","elementList","elementListColor","listColorInput","elementListItem","listItemP","listItemPClasses","elementListClassSelect","listIconSelectLabel","nodeType","listIconSelectLabelId","elementListStyleTypeSelect","elementListItemContent","listItemPTextAlignArr","p","listItemPTextAlignLeftCount","listItemPTextAlignCenterCount","listItemPTextAlignRightCount","elementListAlignmentSelect","maxListItemTAlLeftC","optionsClass","buttons","size","n_Class","num","optionControls","wpColorPicker","change","ui","classe","ps","number","toString","slider","oninput","onchange","alt","href","linkHttpCheckChange","rel","removeAttribute","jc","id","parentNodeSettingItem","listItem","hexToRgb","hex","result","exec","rgb","slice","getDragImageCustom","hostName","location","protocol","hostname","image","button","list","listItemsRecalculateIndex","ulElem","par","listStyleTypeIndex","article","keyCode","duplicate","firstChild","innerText","pText","replace","trim","selectedText","getSelectionText","link","linkArr","linkClean","rows","rowHead","computedStyleRowHead","getComputedStyle","rowHeadChildren","contentsForHeader","tdElements","textContentStyle","textContent","thisRowChildren","titleColumn","titleColumnFontSize","titleColumnColor","titleBackgroundColor","titleAlign","cls","parentElement","txt","getSelection","selection","createRange","settingsPanelClear","wpColorPickerClear","inputId","input","wpPickerContainer","newInput","url","results","decodeURIComponent","anchor","file_frame","wp","media","frames","title","multiple","attachment","state","get","first","toJSON","MIN_COLUMNS","MIN_ROWS","MAX_COLUMNS","MAX_ROWS","tableGenerator","columnsDecrementButton","columnsIncrementButton","rowsDecrementButton","rowsIncrementButton","columnsInput","rowsInput","columns","div","classId","stopPropagation","onmouseover","wptbElementButtons","wptbTdBgColorSavedSet","trNumber","tableRows","trBackgroundColor","wptbEvenRowBg","clear","tableHeader","tableTopRowAsHeadSavedSet","wptbTopRowAsHeader","tableBorderColorWidthSavedSet","tableBorderColor","borderColor","tableBorderColorInput","tableBorderWidth","borderWidth","wptbTableBorderWidthSlider","wptbTableBorderWidthNumber","tableTd","applyInnerBorder","innerBorderCheckInput","wptbApplyInnerBorder","wptbTableInnerBorderSlider","wptbTableInnerBorderNumber","tableCells","tableInnerborderNumber","addInnerBorderSize","borderStyle","addCellPadding","addInnerBorder","styles","wptbPreviewTable","marginBottom","addBorderSize","cellPaddingSavedSet","wptbTableCellSlider","wptbTableCellNumber","numberImputSize","wptbNumberInputs","maxCount","maxValue","onkeydown","thisValue","String","substring","onkeyup","wptbTableBorderNumber","wptbTextfontSizeNumber","wptbImageWidthNumber","wptbInnerBorderCheck","tableBorderColorSetArea","createMobileHeadForTable","thisEvent","wptbElement","toggleTableEditMode","addRowToTheEnd","addRowToTheStart","addRowBefore","addRowAfter","addColumnEnd","addColumnStart","addColumnBefore","addColumnAfter","deleteColumn","deleteRow","mergeCells","splitCell","wptbBuilderPanel","wpcdFixedToolbar","hasAttribute","innerElements","el_L","item","wptbListItemReturn","divcontent","styleDot","listItemKeyListener","previous","action","content","html","setTimeout","append","selectedCells","multipleCellMode","activateMultipleSelectMode","deactivateMultipleSelectMode","isActivated","pushSelectedCell","cell","flushSelectedCells","getFirst","minXIndex","minYIndex","getLast","maxXIndex","maxYIndex","last","removeAllButFirst","code","columnTitleMobile","WPTB_Parser2","elementHtml","createTextNode","tagName","elems","effectAllowed","ondragend","shortcodePopupWindow","bar","wptb_admin_object","t","messagingArea","WPTB_Stringifier","outerHTML","messagingAreaText","params","security_code","rs","wptbId","stringify","data","elSpaceBetween","spaceBetween","t_space","spaceParent","alert","codeMain","tableColumns","reconstraction","colSpan","rowSpan","mceContentBodys","k","dataMceStyle","contentEditable","spellCheck","mceIds","wptbActions","wptbActionsLength","columnNameDivContainer","columnNameDiv","WPTB_Stringifier2","start","nodeValue","int_elem_arr","attributes_list","internal_elements","inter_elem","array","wptbTableSetup","maxAmountOfCells","maxAmountOfRows","mark","cs","markedCells","noCells","singleCells","multipleCells","column","isSquare","realTimeArray","carried","cols","matriz","items","justAssigned","amount","carriedRowspans","cellsBuffer","cellPointer","xPosition","stepsToMove","celda","drawTable","string","undoSelect","fillTableArray","colspansSums","cells","colspanSumInRow","apply","getActualPointsInRow","points","search","skipInCols","insertRow","wptb_preview_table","cellModeBackground","leftScrollPanelCurtain","wptbPreviewTableTds","recalculateIndexes","trs","maxCols","tdsArr","jMainIter","z","currentTable","currentTableTd","currentTdStyle","firstCell","c_pos","cellStyle","pos","pendingInsertion","bro","currentCell","l","r","aux","from","cellNew","rowChildren","rowChildrenLength","cellRowSpan","rowAfter","cellsColSpan","tableRowsIChildren","tableRIChildrenLength","rowIRowSpan","rNext","rNextChildren","rNextChildrenLength","rowStart","columnStart","rowEnd","columnEnd","itemsEstimate","dimensions","rowspan","colspan","call","tdsChildrenNew","tdsInternalElements","tdsIntElemLength","cellStyles","cellXIndex","rowChildInsertBefore","rowNext","findRowspannedCells","difference","actualPoints","addLackingCells","sumRows","totalColspan","nextRow","nextRowChildren","nextRowChildrenLength","tdArr","nextRowChildrenK","jRowChildren","pop","elText2","elP"],"mappings":"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","file":"admin.js","sourcesContent":["var applyGenericItemSettings = function ( element, kindIndexProt, copy = false ) {\r\n var node = element.getDOMElement(),\r\n index,\r\n listItems,\r\n copy;\r\n \r\n if ( kindIndexProt == undefined || copy == true ) {\r\n index = document.counter.nextIndex( element.kind );\r\n let wptbElements = document.getElementsByClassName( 'wptb-ph-element' );\r\n let elementIndexesArr = [];\r\n for( let i = 0; i < wptbElements.length; i++ ) {\r\n var regex = new RegExp( 'wptb-element-' + element.kind + '-(\\\\d+)', \"i\" );\r\n let infArr = wptbElements[i].className.match( regex );\r\n if( infArr ) {\r\n elementIndexesArr.push( infArr[1] );\r\n }\r\n }\r\n if( elementIndexesArr.length > 0 ) {\r\n let elementIndexMax = Math.max( ...elementIndexesArr );\r\n index = elementIndexMax + 1;\r\n } else { \r\n index = 1;\r\n }\r\n } else if ( kindIndexProt && ! copy ) {\r\n index = kindIndexProt.split('-')[1];\r\n }\r\n \r\n node.onmouseenter = function (event) {\r\n this.classList.add('wptb-directlyhovered');\r\n let btnDelete = document.createElement( 'span' ),\r\n btnCopy = document.createElement( 'span' ),\r\n btnMove = document.createElement( 'span' ),\r\n actions = document.createElement( 'span' ), i;\r\n\r\n actions.classList.add('wptb-actions');\r\n btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');\r\n btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');\r\n btnMove.classList.add(\"dashicons\", \"dashicons-move\", 'wptb-move-action');\r\n btnMove.draggable = true;\r\n btnDelete.onclick = function (event) {\r\n let act = this.parentNode.parentNode,\r\n el = act.parentNode;\r\n el.removeChild(act);\r\n \r\n if( act.kind == 'text' ) {\r\n let thisRow = el.parentNode\r\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\r\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n }\r\n \r\n };\r\n btnCopy.onclick = function (event) {\r\n let copy;\r\n if (element.kind == 'list') {\r\n var td = event.target.parentNode.parentNode.parentNode,\r\n temp = [],\r\n srcList = event.target.parentNode.parentNode.querySelectorAll('ul li .wptb-list-item-content');\r\n\r\n for (var i = 0; i < srcList.length; i++) {\r\n temp.push(srcList[i].innerHTML);\r\n }\r\n\r\n copy = new WPTB_List( temp, node );\r\n\r\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\r\n } else if (element.kind == 'text') {\r\n var td = event.target.parentNode.parentNode.parentNode;\r\n copy = new WPTB_Text(event.target.parentNode.parentNode.childNodes[0].innerHTML, node);\r\n\r\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\r\n } else if ( element.kind == 'image' ) {\r\n var td = event.target.parentNode.parentNode.parentNode;\r\n copy = new WPTB_Image( event.target.parentNode.parentNode.children[0].children[0].src, node );\r\n\r\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\r\n } else {\r\n var td = event.target.parentNode.parentNode.parentNode,\r\n text = event.target.parentNode.parentNode.childNodes[0].querySelector( 'p' ).innerHTML;\r\n copy = new WPTB_Button( text, node );\r\n\r\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\r\n }\r\n \r\n WPTB_innerElementSet( copy.getDOMElement() );\r\n };\r\n let parent = this,\r\n infArr,\r\n type;\r\n infArr = parent.className.match(/wptb-element-(.+)-(\\d+)/i);\r\n type = infArr[1];\r\n let dragImagesArr = WPTB_Helper.dragImagesArr();\r\n btnMove.ondragstart = function (event) {\r\n this.parentNode.style.opacity = 0;\r\n parent.classList.remove( 'wptb-directlyhovered' );\r\n parent.classList.add( 'wptb-moving-mode' );\r\n \r\n event.dataTransfer.setDragImage( dragImagesArr[type], 0, 0 );\r\n event.dataTransfer.setData( 'node', 'wptb-element-' + infArr[1] + '-' + infArr[2] );\r\n event.dataTransfer.setData( 'wptb-moving-mode', 'wptb-element-' + infArr[1] + '-' + infArr[2] );\r\n event.dataTransfer.setData( 'wptbElIndic-' + infArr[1], 'wptbElIndic-' + infArr[1] );\r\n let act = event.target.parentNode.parentNode;\r\n if( act.kind == 'text' ) {\r\n let thisRow = el.parentNode\r\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\r\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n }\r\n };\r\n\r\n if (element.kind === 'button') {\r\n let a = node.querySelector( 'a' ),\r\n target = a.querySelector( 'div' );\r\n a.onclick = function( e ) {\r\n e.preventDefault();\r\n }\r\n WPTB_Helper.buttonsTinyMceInit( target );\r\n } else if (element.kind === 'text') {\r\n tinyMCE.init({\r\n target: node.childNodes[0],\r\n inline: true,\r\n plugins: \"link, paste\",\r\n dialog_type: \"modal\",\r\n theme: 'modern',\r\n menubar: false,\r\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\r\n paste_as_text: true,\r\n toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',\r\n setup : function( ed ) {\r\n ed.on( 'change', function(e) {\r\n let row = WPTB_Helper.findAncestor( node, 'wptb-row' );\r\n if( row.classList.contains( 'wptb-table-head' ) ) {\r\n let table = WPTB_Helper.findAncestor( row, 'wptb-preview-table' );\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n });\r\n },\r\n init_instance_callback: function (editor) {\r\n window.currentEditor = editor;\r\n //editor.fire('focus');\r\n editor.on('focus', function (e) {\r\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\r\n if (window.currentEditor &&\r\n document.getElementById('wptb_builder').scrollTop >= 55 &&\r\n window.currentEditor.bodyElement.style.display != 'none') {\r\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\r\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\r\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\r\n } else {\r\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\r\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\r\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\r\n }\r\n });\r\n }\r\n });\r\n \r\n } else {\r\n listItems = node.getElementsByClassName( 'wptb-list-item-content' );\r\n for ( let i = 0; i < listItems.length; i++ ) {\r\n WPTB_Helper.listItemsTinyMceInit( listItems[i] );\r\n }\r\n }\r\n\r\n actions.appendChild(btnMove);\r\n actions.appendChild(btnCopy);\r\n actions.appendChild(btnDelete);\r\n this.appendChild( actions );\r\n };\r\n\r\n node.onmouseleave = function ( event ) {\r\n this.classList.remove( 'wptb-directlyhovered' );\r\n let iter = 0;\r\n while( event.target.querySelector( '.wptb-actions' ) && iter < 5 ) {\r\n event.target.querySelector( '.wptb-actions' ).remove();\r\n iter++;\r\n }\r\n };\r\n \r\n // Change data-title-column if the title was changed\r\n if( element.kind == 'text' ) {\r\n var observer = new MutationObserver( function( mutations ) {\r\n let row = WPTB_Helper.findAncestor( node, 'wptb-row' );\r\n if( row.classList.contains( 'wptb-table-head' ) ) {\r\n let table = WPTB_Helper.findAncestor( row, 'wptb-preview-table' );\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n });\r\n var config = { attributes: true, attributeFilter: ['style'] };\r\n observer.observe( element.getDOMElement(), config );\r\n }\r\n\r\n let node_wptb_element_kind_num = node.className.match(/wptb-element-(.+)-(\\d+)/i);\r\n if ( node_wptb_element_kind_num ) {\r\n node.classList.remove( node_wptb_element_kind_num[0] );\r\n }\r\n if ( ! node.classList.contains( 'wptb-ph-element' ) ) {\r\n node.classList.add( 'wptb-ph-element' );\r\n if( ! node.classList.contains( 'wptb-element-' + element.kind + '-' + index ) ) {\r\n node.classList.add( 'wptb-element-' + element.kind + '-' + index );\r\n }\r\n } else {\r\n if( ! node.classList.contains( 'wptb-element-' + element.kind + '-' + index ) ) {\r\n node.classList.add( 'wptb-element-' + element.kind + '-' + index );\r\n }\r\n }\r\n new WPTB_ElementOptions( element, index, kindIndexProt );\r\n\r\n document.counter.increment(element.kind);\r\n};","","(function () {\r\n var WPTB_Builder = function () {\r\n var table_id = WPTB_Helper.detectMode();\r\n if ( table_id ) {\r\n var http = new XMLHttpRequest(),\r\n urlSet = ajaxurl + \"?action=get_table\" + '&id=' + table_id;\r\n http.open('GET', urlSet, true);\r\n http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\r\n http.onreadystatechange = function (d) {\r\n if (this.readyState == 4 && this.status == 200) {\r\n var ans = JSON.parse(http.responseText);\r\n document.getElementById('wptb-setup-name').value = ans[0];\r\n \r\n if( ans[1] ) {\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'none';\r\n let wptbTableSetupEl = document.getElementsByClassName('wptb-table-setup')[0];\r\n wptbTableSetupEl.appendChild( WPTB_Parser( ans[1] ) );\r\n WPTB_Table();\r\n WPTB_LeftPanel();\r\n WPTB_Settings();\r\n } else {\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\r\n }\r\n \r\n return;\r\n }\r\n };\r\n http.send(null);\r\n } else {\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\r\n }\r\n document.counter = new ElementCounters();\r\n document.select = new MultipleSelect();\r\n\r\n var initializer = WPTB_Initializer();\r\n settings = WPTB_Settings();\r\n };\r\n\r\n document.addEventListener('DOMContentLoaded', WPTB_Builder);\r\n})();","var WPTB_Button = function( text, DOMElementProt ) {\r\n \r\n var DOMElement = document.createElement('div'),\r\n elButton = document.createElement('div'),\r\n el_B = document.createElement('a'),\r\n el_BDiv = document.createElement( 'div' ),\r\n kindIndexProt = undefined,\r\n copy = false;\r\n\r\n DOMElement.classList.add('wptb-button-container', 'wptb-size-M', 'wptb-');\r\n elButton.classList.add('wptb-button-wrapper');\r\n el_BDiv.classList.add('wptb-button');\r\n el_BDiv.innerHTML = text != undefined ? text : 'Button Text';\r\n \r\n // Creation of a new button when copying to avoid errors when assigning new event handlers.\r\n if ( DOMElementProt ) {\r\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\r\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\r\n kindIndexProt = wptbElementMutch[1];\r\n copy = true;\r\n }; \r\n var attributesContainer = [...DOMElementProt.attributes];\r\n if ( attributesContainer.length > 0 ) {\r\n for( let i = 0; i < attributesContainer.length; i++ ) {\r\n DOMElement.setAttribute(attributesContainer[i].name, attributesContainer[i].value);\r\n } \r\n }\r\n \r\n var wptbButtonWrapper = DOMElementProt.querySelector( '.wptb-button-wrapper' );\r\n if ( wptbButtonWrapper ) {\r\n var wptbButtonWrapAttributes = [...wptbButtonWrapper.attributes];\r\n if ( wptbButtonWrapAttributes.length > 0 ) {\r\n for( let i = 0; i < wptbButtonWrapAttributes.length; i++ ) {\r\n if ( wptbButtonWrapAttributes[i].name == 'style') {\r\n elButton.setAttribute( wptbButtonWrapAttributes[i].name, wptbButtonWrapAttributes[i].value );\r\n }\r\n } \r\n }\r\n }\r\n \r\n var wptbButton = DOMElementProt.querySelector( 'a' );\r\n if ( wptbButton ) {\r\n var wptbButtonAttributes = [...wptbButton.attributes];\r\n if ( wptbButtonAttributes.length > 0 ) {\r\n for( let i = 0; i < wptbButtonAttributes.length; i++ ) {\r\n if ( wptbButtonAttributes[i].name == 'style' || \r\n wptbButtonAttributes[i].name == 'href' || \r\n wptbButtonAttributes[i].name == 'target' ) {\r\n el_B.setAttribute( wptbButtonAttributes[i].name, wptbButtonAttributes[i].value );\r\n }\r\n } \r\n }\r\n }\r\n }\r\n \r\n elButton.appendChild(el_B);\r\n el_B.appendChild( el_BDiv );\r\n DOMElement.appendChild(elButton);\r\n \r\n \r\n \r\n this.kind = 'button';\r\n\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n };\r\n\r\n applyGenericItemSettings( this, kindIndexProt, copy );\r\n\r\n return this;\r\n};","var WPTB_Cell = function (callback, DOMElement) {\r\n\r\n function highlightRow(td) {\r\n var parentRow = td.parentNode,\r\n columnCount = parseInt(document.getElementById('wptb-columns-number').value),\r\n tds = document.getElementsByClassName('wptb-preview-table')[0].getElementsByTagName('td');\r\n for (var i = 0; i < tds.length; i++) {\r\n tds[i].classList.remove('wptb-highlighted-row-first', 'wptb-highlighted-row-last', 'wptb-highlighted-row-inner', 'wptb-highlighted-column-first', 'wptb-highlighted-column-last', 'wptb-highlighted-column-inner');\r\n }\r\n for (var i = 0; i < columnCount; i++) {\r\n\r\n var classToAdd = i == 0 ? 'wptb-highlighted-row-first' : i == columnCount - 1 ? 'wptb-highlighted-row-last' : 'wptb-highlighted-row-inner';\r\n var ttd = parentRow.getElementsByTagName('td')[i];\r\n if (ttd !== td) {\r\n ttd.classList.add(classToAdd);\r\n }\r\n }\r\n }\r\n\r\n function highlightColumn(td) {\r\n\r\n var index,\r\n parentRow = td.parentNode;\r\n columnCount = parseInt(document.getElementById('wptb-columns-number').value), rowCount = parseInt(document.getElementById('wptb-rows-number').value), table = document.getElementsByClassName('wptb-preview-table')[0];\r\n for (var i = 0; i < columnCount; i++) {\r\n if (parentRow.getElementsByTagName('td')[i] === td) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n for (var i = 0; i < rowCount; i++) {\r\n var classToAdd = i == 0 ? 'wptb-highlighted-column-first' : i == rowCount - 1 ? 'wptb-highlighted-column-last' : 'wptb-highlighted-column-inner';\r\n var tr = table.getElementsByTagName('tr')[i];\r\n if (tr.getElementsByTagName('td')[index] !== td) {\r\n tr.getElementsByTagName('td')[index].classList.add(classToAdd);\r\n }\r\n }\r\n }\r\n \r\n if( ! DOMElement ) {\r\n DOMElement = document.createElement(\"td\");\r\n\r\n DOMElement.style.padding = jQuery('#wptb-table-padding-number').val() + 'px';\r\n\r\n var innerBorderWidth = jQuery('#wptb-table-inner-border-number').val();\r\n\r\n if (innerBorderWidth != '' && parseInt(innerBorderWidth) != 0) {\r\n DOMElement.style.border = innerBorderWidth + 'px solid ' + jQuery('#wptb-table-border-color').val();\r\n } \r\n\r\n DOMElement.classList.add('wptb-droppable', 'wptb-cell');\r\n }\r\n\r\n DOMElement.draggable = false;\r\n if ( callback ) {\r\n DOMElement.onclick = callback;\r\n }\r\n \r\n WPTB_innerElementSet( DOMElement );\r\n \r\n let wptbPhElement = DOMElement.getElementsByClassName( 'wptb-ph-element' );\r\n \r\n if ( wptbPhElement.length > 0 ) {\r\n for( let i = 0; i < wptbPhElement.length; i++ ) {\r\n\r\n let wptbSpaceBetween = DOMElement.getElementsByClassName( 'wptb-space-between' );\r\n\r\n if ( wptbSpaceBetween.length > 0 ) {\r\n for( let j = 0; j < wptbSpaceBetween.length; j++ ) {\r\n WPTB_Space( wptbSpaceBetween[j] );\r\n }\r\n }\r\n \r\n wptbPhElement[i].getDOMElement = function() {\r\n return wptbPhElement[i];\r\n }\r\n \r\n WPTB_innerElementSet( wptbPhElement[i] );\r\n \r\n let wptbElementTypeClass = wptbPhElement[i].className.match( /wptb-element-((.+-)\\d+)/i );\r\n if( wptbElementTypeClass && Array.isArray( wptbElementTypeClass ) ) {\r\n let wptbTypeElementArr = wptbElementTypeClass[1].split( '-' );\r\n wptbPhElement[i].kind = wptbTypeElementArr[0];\r\n applyGenericItemSettings( wptbPhElement[i], wptbElementTypeClass[1] );\r\n if ( wptbPhElement[i].kind == 'list' ) {\r\n let wptbListItems = wptbPhElement[i].getElementsByTagName( 'li' );\r\n if( wptbListItems.length > 0 ) {\r\n for ( let i = 0; i < wptbListItems.length; i++ ) {\r\n WPTB_ListItem( undefined, wptbListItems[i] );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n };\r\n\r\n this.setCoords = function (y, x) {\r\n var el = this.getDOMElement();\r\n el.dataset.yIndex = y;\r\n el.dataset.xIndex = x;\r\n };\r\n\r\n this.getCoords = function () {\r\n var coords,\r\n el = this.getDOMElement();\r\n coords.x = el.dataset.xIndex;\r\n coords.y = el.dataset.yIndex;\r\n return coords;\r\n };\r\n\r\n this.appendElement = function (node) {\r\n getDOMElement().appendChild(node);\r\n };\r\n\r\n return this;\r\n};","var WPTB_DropHandle = function (thisElem, e) {\r\n \r\n function newElementProxy(el) {\r\n if (el.includes('list')) {\r\n return new WPTB_List();\r\n } else if (el.includes('image')) {\r\n return new WPTB_Image();\r\n } else if (el.includes('text')) {\r\n return new WPTB_Text();\r\n } else if (el.includes('button')) {\r\n return new WPTB_Button();\r\n }\r\n }\r\n \r\n let wptbDropHandle,\r\n wptbDropBorderMarker;\r\n if ( document.getElementsByClassName( 'wptb-drop-handle' ).length == 0 ) {\r\n wptbDropHandle = document.createElement( 'div' );\r\n wptbDropHandle.classList.add( 'wptb-drop-handle' );\r\n \r\n wptbDropBorderMarker = document.createElement( 'div' );\r\n wptbDropBorderMarker.classList.add( 'wptb-drop-border-marker' );\r\n \r\n let wptbDropBorderMarkerTop = document.createElement( 'div' ),\r\n wptbDropBorderMarkerRight = document.createElement( 'div' ),\r\n wptbDropBorderMarkerBottom = document.createElement( 'div' ),\r\n wptbDropBorderMarkerLeft = document.createElement( 'div' );\r\n \r\n wptbDropBorderMarkerTop.classList.add( 'wptb-drop-border-marker-top' );\r\n wptbDropBorderMarkerRight.classList.add( 'wptb-drop-border-marker-right' );\r\n wptbDropBorderMarkerBottom.classList.add( 'wptb-drop-border-marker-bottom' );\r\n wptbDropBorderMarkerLeft.classList.add( 'wptb-drop-border-marker-left' );\r\n \r\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerTop );\r\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerRight );\r\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerBottom );\r\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerLeft );\r\n \r\n let body = document.getElementsByTagName( 'body' );\r\n if ( body.length > 0 ) {\r\n body[0].appendChild( wptbDropHandle );\r\n body[0].appendChild( wptbDropBorderMarker );\r\n }\r\n \r\n wptbDropHandle.ondragenter = function () {\r\n\r\n }\r\n\r\n wptbDropHandle.ondragover = function (e) {\r\n e.preventDefault();\r\n }\r\n\r\n wptbDropHandle.ondragleave = function () {\r\n\r\n }\r\n wptbDropHandle.ondrop = function (e) {\r\n e.preventDefault();\r\n let element;\r\n \r\n if ( e.dataTransfer.getData('wptbElement') ) {\r\n element = newElementProxy( e.dataTransfer.getData('wptbElement') );\r\n element = element.getDOMElement();\r\n } else {\r\n element = document.getElementsByClassName( e.dataTransfer.getData('node') )[0];\r\n element.classList.remove( 'wptb-moving-mode' );\r\n element.classList.remove( 'wptb-moving-into-same-elem' );\r\n }\r\n \r\n let td;\r\n if( wptbDropHandle.dataset.text == 'Drop Here' ) {\r\n thisElem = wptbDropHandle.getDOMParentElement();\r\n if ( thisElem.nodeName.toLowerCase() == 'td' ) {\r\n td = wptbDropHandle.getDOMParentElement();\r\n td.appendChild( element );\r\n }\r\n } else {\r\n let innerElement = wptbDropHandle.getDOMParentElement();\r\n td = innerElement.parentNode;\r\n \r\n if( wptbDropHandle.dataset.text == 'Abowe Element' ) {\r\n td.insertBefore( element, innerElement );\r\n } else if( wptbDropHandle.dataset.text == 'Below Element' ) {\r\n let innerElementNext = innerElement.nextSibling;\r\n td.insertBefore( element, innerElementNext );\r\n }\r\n }\r\n \r\n let thisRow = td.parentNode\r\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\r\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n \r\n wptbDropHandle.style.display = 'none';\r\n wptbDropBorderMarker.style.display = 'none';\r\n \r\n WPTB_innerElementSet(element);\r\n }\r\n let wptbContainer = document.querySelector( '.wptb-container' );\r\n wptbContainer.onscroll = function() {\r\n wptbDropHandle.style.display = 'none';\r\n wptbDropBorderMarker.style.display = 'none';\r\n }\r\n } else {\r\n wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' )[0];\r\n wptbDropBorderMarker = document.getElementsByClassName( 'wptb-drop-border-marker' )[0];\r\n }\r\n if( thisElem && thisElem.nodeName.toLowerCase() == 'td' && \r\n thisElem.getElementsByClassName( 'wptb-ph-element' ).length != 0 ) {\r\n return;\r\n }\r\n \r\n let thisRow;\r\n if ( thisElem.localName == 'td' ) {\r\n thisRow = thisElem.parentNode;\r\n } else if ( thisElem.localName == 'div' && thisElem.classList.contains( 'wptb-ph-element' ) ) {\r\n thisRow = thisElem.parentNode.parentNode;\r\n }\r\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\r\n let indics = e.dataTransfer.types;\r\n let notDragEnter = false;\r\n for ( let i = 0; i < indics.length; i++ ) {\r\n let infArr = indics[i].match( /wptbelindic-([a-z]+)/i );\r\n if ( infArr && infArr[1] != 'text' ) {\r\n notDragEnter = true;\r\n break;\r\n }\r\n }\r\n if( notDragEnter ) {\r\n return;\r\n }\r\n }\r\n \r\n wptbDropHandle.style.width = thisElem.offsetWidth + 'px';\r\n let height = thisElem.offsetHeight,\r\n coordinatesElement = thisElem.getBoundingClientRect(),\r\n left = Number( coordinatesElement.left ),\r\n top;\r\n wptbDropHandle.style.left = left + 'px';\r\n \r\n if( e.dataTransfer.types.indexOf( 'wptb-moving-mode' ) != -1 ) {\r\n let elementDrag = document.getElementsByClassName( 'wptb-moving-mode' )[0];\r\n if( thisElem == elementDrag ) {\r\n wptbDropHandle.classList.add('wptb-moving-into-same-elem');\r\n wptbDropBorderMarker.classList.add('wptb-moving-into-same-elem');\r\n } else {\r\n wptbDropHandle.classList.remove('wptb-moving-into-same-elem');\r\n wptbDropBorderMarker.classList.remove('wptb-moving-into-same-elem');\r\n }\r\n }\r\n \r\n wptbDropHandle.getDOMParentElement = function() {\r\n return thisElem;\r\n }\r\n \r\n wptbDropHandle.style.display = 'block';\r\n wptbDropBorderMarker.style.display = 'block';\r\n if( thisElem.nodeName.toLowerCase() != 'td' ) {\r\n let y = e.offsetY==undefined?e.layerY:e.offsetY;\r\n top = Number( coordinatesElement.top ) - Number( 11 );\r\n wptbDropHandle.dataset.text = 'Abowe Element';\r\n if ( y > height/2 ) {\r\n top = Number( coordinatesElement.top ) + height - 1;\r\n wptbDropHandle.dataset.text = 'Below Element';\r\n }\r\n } else {\r\n wptbDropHandle.dataset.text = 'Drop Here';\r\n top = Number( coordinatesElement.top ) + height/2 - 5;\r\n }\r\n wptbDropHandle.style.top = top + 'px';\r\n\r\n wptbDropBorderMarker.style.top = coordinatesElement.top + 'px';\r\n wptbDropBorderMarker.style.left = coordinatesElement.left + 'px';\r\n\r\n wptbDropBorderMarkerTop = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-top' );\r\n wptbDropBorderMarkerTop.style.width = ( Number( thisElem.offsetWidth ) - Number( 1 ) ) + 'px';\r\n\r\n wptbDropBorderMarkerRight = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-right' );\r\n wptbDropBorderMarkerRight.style.height = ( Number( coordinatesElement.bottom ) - Number( coordinatesElement.top ) - 1 ) + 'px';\r\n wptbDropBorderMarkerRight.style.left = wptbDropBorderMarkerTop.style.width;\r\n\r\n wptbDropBorderMarkerBottom = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-bottom' );\r\n wptbDropBorderMarkerBottom.style.width = wptbDropBorderMarkerTop.style.width;\r\n wptbDropBorderMarkerBottom.style.top = wptbDropBorderMarkerRight.style.height;\r\n\r\n wptbDropBorderMarkerLeft = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-left' );\r\n wptbDropBorderMarkerLeft.style.height = wptbDropBorderMarkerRight.style.height;\r\n}","var ElementCounters = function () {\r\n\r\n\tvar priv = [];\r\n\tpriv['text'] = 0;\r\n\tpriv['image'] = 0;\r\n\tpriv['list'] = 0;\r\n\tpriv['button'] = 0;\r\n\r\n\tthis.increment = function (key) {\r\n\t\tif (!(key in priv)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tpriv[key]++;\r\n\t}\r\n\r\n\tthis.nextIndex = function (key) {\r\n\t\tif (!(key in priv)) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\treturn priv[key] + 1;\r\n\t}\r\n\r\n\treturn this;\r\n\r\n};","var WPTB_ElementOptions = function ( element, index, kindIndexProt ) {\r\n\r\n var node = element.getDOMElement(), elemIdClass;\r\n\r\n prop = document.querySelector(\".wptb-\" + element.kind + \"-options-prototype\").cloneNode(true);\r\n prop.classList.remove(\"wptb-\" + element.kind + \"-options-prototype\"); // remove prototype from the class\r\n elemIdClass = 'wptb-options-' + element.kind + \"-\" + index;\r\n\r\n var properties = prop.getElementsByClassName('wptb-element-property');\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n properties[i].dataset.element = elemIdClass;\r\n }\r\n\r\n prop.classList.add(elemIdClass);\r\n document.getElementById(\"element-options-group\").appendChild(prop);\r\n \r\n if ( kindIndexProt ) {\r\n if ( element.kind == 'button' ) {\r\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt )[0],\r\n wptbButtonWrapper,\r\n wptbButtonA,\r\n wptbButton,\r\n wptbSize;\r\n \r\n if ( affectedEl ) {\r\n wptbSize = affectedEl.className.match(/wptb-size-([a-z]+)/i);\r\n }\r\n \r\n if( wptbSize && Array.isArray( wptbSize ) ) {\r\n var b = prop.getElementsByClassName('wptb-btn-size-btn');\r\n \r\n for ( var i = 0; i < b.length; i++ ) {\r\n b[i].classList.remove( 'selected' );\r\n \r\n if ( b[i].innerHTML == wptbSize[1] ) {\r\n b[i].classList.add( 'selected' );\r\n }\r\n }\r\n }\r\n \r\n if( affectedEl ) {\r\n wptbButtonWrapper = affectedEl.getElementsByClassName( 'wptb-button-wrapper' );\r\n \r\n wptbButtonA = affectedEl.getElementsByTagName( 'a' );\r\n \r\n wptbButton = affectedEl.getElementsByClassName( 'wptb-button' );\r\n }\r\n \r\n if ( wptbButtonWrapper ) {\r\n let buttonAlignment = wptbButtonWrapper[0].style.justifyContent,\r\n buttonAlignmentSelect = prop.querySelector( 'select[data-type=\"button-alignment\"]' ),\r\n selectOption = buttonAlignmentSelect.getElementsByTagName( 'option' ),\r\n selectOptionVal;\r\n \r\n if ( buttonAlignment == 'flex-start' ) {\r\n selectOptionVal = 'left';\r\n } else if ( buttonAlignment == 'center' || ! buttonAlignment ) {\r\n selectOptionVal = 'center';\r\n } else if ( buttonAlignment == 'flex-end' ) {\r\n selectOptionVal = 'right';\r\n }\r\n \r\n for ( let i = 0; i < selectOption.length; i++ ) {\r\n if ( selectOption[i].value == selectOptionVal ) {\r\n selectOption[i].selected = true;\r\n }\r\n }\r\n }\r\n \r\n if ( wptbButtonA.length > 0 ) {\r\n let buttonHref = wptbButtonA[0].getAttribute( 'href' ), \r\n buttonLinkTarget = wptbButtonA[0].getAttribute( 'target' ),\r\n buttonId = wptbButtonA[0].getAttribute( 'id' ),\r\n \r\n \r\n buttonHrefInput = prop.querySelector( 'input[data-type=\"button-link\"]' ),\r\n buttonLinkTargetInput = prop.querySelector( 'input[data-type=\"button-link-target\"]' ),\r\n buttonLinkTargetInputId = buttonLinkTargetInput.getAttribute( 'id' ),\r\n buttonLinkTargetInputLabel = buttonLinkTargetInput.parentNode.getElementsByTagName( 'label' )[0],\r\n \r\n buttotIdInput = prop.querySelector( 'input[data-type=\"button-id\"]' );\r\n\r\n buttonLinkTargetInputId = buttonLinkTargetInputId + '-' + kindIndexProt.split( '-' )[1];\r\n buttonLinkTargetInput.setAttribute( 'id', buttonLinkTargetInputId );\r\n buttonLinkTargetInputLabel.setAttribute( 'for', buttonLinkTargetInputId );\r\n\r\n buttonHrefInput.value = buttonHref;\r\n\r\n if( buttonLinkTarget && buttonLinkTarget == '_blank') {\r\n buttonLinkTargetInput.checked = true;\r\n }\r\n \r\n buttotIdInput.value = buttonId;\r\n }\r\n \r\n if( wptbButton ) {\r\n let buttonTextColor = wptbButton[0].style.color,\r\n buttonColor = wptbButton[0].style.backgroundColor,\r\n buttonTextColorInput = prop.querySelector( 'input[data-type=\"button-text-color\"]' ),\r\n buttonBackgroundColorInput = prop.querySelector( 'input[data-type=\"button-color\"]' );\r\n \r\n \r\n buttonTextColorInput.value = WPTB_Helper.rgbToHex( buttonTextColor );\r\n \r\n buttonBackgroundColorInput.value = WPTB_Helper.rgbToHex( buttonColor );\r\n \r\n }\r\n } else if ( element.kind == 'image' ) {\r\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\r\n if ( affectedEl.length > 0 ) {\r\n let elementsA = affectedEl[0].getElementsByTagName( 'a' );\r\n if ( elementsA.length > 0 ) {\r\n let a = elementsA[0];\r\n\r\n if ( a ) {\r\n a.onclick = function( e ) {\r\n e.preventDefault();\r\n }\r\n // set select according to the alignment of the image\r\n let aTextAlign = a.style.textAlign,\r\n imageAlignmentSelect = prop.querySelector( 'select[data-type=\"image-alignment\"]' ),\r\n selectOption = imageAlignmentSelect.getElementsByTagName( 'option' );\r\n\r\n for ( let i = 0; i < selectOption.length; i++ ) {\r\n if ( selectOption[i].value == aTextAlign ) {\r\n selectOption[i].selected = true;\r\n }\r\n }\r\n\r\n // set text link for input field of setting panel\r\n let imageLinkHref = a.getAttribute( 'href' ),\r\n inputImageLink = prop.querySelector( 'input[data-type=\"image-link\"]' );\r\n if ( imageLinkHref ) {\r\n inputImageLink.value = imageLinkHref;\r\n }\r\n\r\n // set checkbox for target of link \r\n let imageLinkTarget = a.getAttribute( 'target' ),\r\n imageLinkTargetInput = prop.querySelector( 'input[data-type=\"image-link-target\"]' ),\r\n imageLinkTargetInputId = imageLinkTargetInput.getAttribute( 'id' ),\r\n imageLinkTargetInputLabel = imageLinkTargetInput.parentNode.getElementsByTagName( 'label' )[0];\r\n\r\n imageLinkTargetInputId = imageLinkTargetInputId + '-' + kindIndexProt.split( '-' )[1];\r\n\r\n imageLinkTargetInput.setAttribute( 'id', imageLinkTargetInputId );\r\n imageLinkTargetInputLabel.setAttribute( 'for', imageLinkTargetInputId );\r\n\r\n if ( imageLinkTarget && imageLinkTarget == '_blank' ) {\r\n imageLinkTargetInput.checked = true;\r\n }\r\n\r\n let img = a.getElementsByTagName( 'img' );\r\n if ( img.length > 0 ) {\r\n // set value for input fields of image size\r\n let imgWidth = img[0].style.width;\r\n if ( imgWidth ) {\r\n let imageWidthInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"image-size\"]' ),\r\n imageWidthInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"image-size\"]' );\r\n\r\n imageWidthInputRange.value = parseInt( imgWidth );\r\n imageWidthInputNumber.value = parseInt( imgWidth );\r\n }\r\n\r\n // set value for input field of alternative text image\r\n let imgAlternativeText = img[0].getAttribute('alt'),\r\n imageAlternativeTextInput = prop.querySelector( 'input[type=\"text\"][data-type=\"alternative-text\"]' );\r\n\r\n imageAlternativeTextInput.value = imgAlternativeText;\r\n }\r\n }\r\n }\r\n }\r\n } else if ( element.kind == 'text' ) {\r\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\r\n if ( affectedEl.length > 0 ) {\r\n let elementFontSize = affectedEl[0].style.fontSize,\r\n elementTextColor = affectedEl[0].style.color;\r\n let textFontSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"font-size\"]' ),\r\n textFontSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"font-size\"]' ),\r\n textColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"color\"]' );\r\n\r\n textFontSizeInputRange.value = parseInt( elementFontSize );\r\n textFontSizeInputNumber.value = parseInt( elementFontSize );\r\n textColorInput.value = WPTB_Helper.rgbToHex( elementTextColor );\r\n }\r\n } else if ( element.kind == 'list' ) {\r\n let elementList = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\r\n if ( elementList.length > 0 ) {\r\n let elementListColor = elementList[0].querySelector( 'p' ).style.color;\r\n let listColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"list-text-color\"]' );\r\n listColorInput.value = WPTB_Helper.rgbToHex( elementListColor );\r\n \r\n let elementListItem = elementList[0].querySelectorAll( 'li' );\r\n if ( elementListItem.length > 0 ) {\r\n let listItemP = elementListItem[0].querySelector( 'p' );\r\n let listItemPClasses = listItemP.classList;\r\n //listItemPClasses = [...listItemPClasses];\r\n if ( listItemPClasses.length > 0 ) {\r\n let elementListClassSelect = prop.querySelector( 'select[data-type=\"list-class\"]' );\r\n if ( elementListClassSelect ) {\r\n elementListClassSelect.value = 'unordered';\r\n \r\n let listIconSelectLabel = elementListClassSelect.parentNode.nextSibling;\r\n for ( let i = 0; i < 10; i++ ) {\r\n if ( listIconSelectLabel.nodeType == '1' ) {\r\n break;\r\n } else {\r\n listIconSelectLabel = listIconSelectLabel.nextSibling;\r\n }\r\n }\r\n if ( listIconSelectLabel ) {\r\n let listIconSelectLabelId = listIconSelectLabel.getAttribute( 'id' );\r\n listIconSelectLabel.setAttribute( 'id', listIconSelectLabelId + '-' + kindIndexProt );\r\n listIconSelectLabel.style.display = 'flex';\r\n }\r\n \r\n let elementListStyleTypeSelect = prop.querySelector( 'select[data-type=\"list-style-type\"]' );\r\n if ( elementListStyleTypeSelect ) {\r\n elementListStyleTypeSelect.parentNode.style.display = 'flex';\r\n \r\n if( listItemPClasses.contains( 'wptb-list-style-type-disc' ) ) {\r\n elementListStyleTypeSelect.value = 'disc';\r\n } else if( listItemPClasses.contains( 'wptb-list-style-type-circle' ) ) {\r\n elementListStyleTypeSelect.value = 'circle';\r\n } else if( listItemPClasses.contains( 'wptb-list-style-type-square' ) ) {\r\n elementListStyleTypeSelect.value = 'square';\r\n } else if ( listItemPClasses.contains( 'wptb-list-style-type-none' ) ) {\r\n elementListStyleTypeSelect.value = 'none';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n let elementListItemContent = elementList[0].getElementsByClassName( 'wptb-list-item-content' );\r\n if ( elementListItemContent.length > 0 ) {\r\n let listItemPTextAlignArr = [];\r\n for ( let i = 0; i < elementListItemContent.length; i++ ) {\r\n let p = elementListItemContent[i].querySelector( 'p' );\r\n if ( p ) {\r\n if ( p.style.textAlign ) {\r\n listItemPTextAlignArr.push( p.style.textAlign );\r\n } else {\r\n listItemPTextAlignArr.push( 'left' );\r\n }\r\n }\r\n \r\n }\r\n \r\n let listItemPTextAlignLeftCount = 0,\r\n listItemPTextAlignCenterCount = 0,\r\n listItemPTextAlignRightCount = 0;\r\n \r\n if ( listItemPTextAlignArr.length > 0 ) {\r\n for ( let i = 0; i < listItemPTextAlignArr.length; i++ ) {\r\n if ( listItemPTextAlignArr[i] ) {\r\n if ( listItemPTextAlignArr[i] == 'left' ) {\r\n listItemPTextAlignLeftCount++;\r\n } else if ( listItemPTextAlignArr[i] == 'center' ) {\r\n listItemPTextAlignCenterCount++;\r\n } else if ( listItemPTextAlignArr[i] == 'right' ) {\r\n listItemPTextAlignRightCount++;\r\n }\r\n }\r\n }\r\n }\r\n \r\n let elementListAlignmentSelect = prop.querySelector( 'select[data-type=\"list-alignment\"]' ),\r\n maxListItemTAlLeftC = Math.max( listItemPTextAlignLeftCount, listItemPTextAlignCenterCount, listItemPTextAlignRightCount );\r\n \r\n if ( listItemPTextAlignLeftCount == maxListItemTAlLeftC ) {\r\n elementListAlignmentSelect.value = 'left';\r\n } else if ( listItemPTextAlignCenterCount == maxListItemTAlLeftC ) {\r\n elementListAlignmentSelect.value = 'center';\r\n } else if ( listItemPTextAlignRightCount == maxListItemTAlLeftC ) {\r\n elementListAlignmentSelect.value = 'right';\r\n }\r\n }\r\n } \r\n }\r\n }\r\n\r\n node.onclick = function () {\r\n var infArr = this.className.match(/wptb-element-((.+-)\\d+)/i),\r\n optionsClass = '.wptb-' + infArr[2] + 'options' +\r\n '.wptb-options-' + infArr[1];\r\n\r\n document.getElementsByClassName('wptb-elements-container')[0].style.display = 'none';\r\n document.getElementsByClassName('wptb-settings-section')[0].style.display = 'none';\r\n document.getElementById(\"element-options-group\").style.display = 'block';\r\n\r\n var children = document.getElementById(\"element-options-group\").childNodes;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].style)\r\n children[i].style.display = 'none';\r\n }\r\n\r\n document.querySelector(optionsClass).style.display = 'block';\r\n\r\n //var listStyleType, textAlign;\r\n\r\n// switch (element.kind) {\r\n\r\n// case 'text':\r\n// jQuery(prop).find('[data-type=color]').wpColorPicker({ defaultColor: node.style.color });\r\n// prop.querySelector('[type=number][data-type=font-size]').value\r\n// = prop.querySelector('[type=range][data-type=font-size]').value\r\n// = node.style.fontSize.substring(0, node.style.fontSize.length - 2);\r\n// break;\r\n// case 'list':\r\n// textAlign = node.querySelector('li p').style.textAlign;\r\n// listStyleType = node.querySelector('li').style.listStyleType;\r\n// if ( prop.querySelector( 'select[data-type=list-class]' ) ) {\r\n// console.log(textAlign);\r\n// console.log(listStyleType);\r\n// console.log(listStyleType);\r\n// console.log(prop);\r\n// prop.querySelector('select[data-type=list-class]').selectedIndex = ( listStyleType == 'decimal' ? 0 : 1 );\r\n// }\r\n// if ( prop.querySelector('select[data-type=list-style-type]') ) {\r\n// prop.querySelector('select[data-type=list-style-type]').selectedIndex = (listStyleType == 'circle' ? 0 : (listStyleType == 'square' ? 1 : 2));\r\n// }\r\n// if ( prop.querySelector('select[data-type=list-alignment]') ) {\r\n// prop.querySelector('select[data-type=list-alignment]').selectedIndex = (textAlign == 'left' ? 0 : (textAlign == 'center' ? 1 : 2));\r\n// }\r\n// break;\r\n// case 'image':\r\n// break;\r\n// case 'button':\r\n// jQuery(prop).find('[data-type=button-color]').wpColorPicker({ defaultColor: node.style.backgroundColor });\r\n// break;\r\n//\r\n// }\r\n };\r\n\r\n if (element.kind == 'button') {\r\n //We must add this special kind of property, since it is triggered with click event\r\n var buttons = prop.getElementsByClassName('wptb-btn-size-btn');\r\n\r\n for (var i = 0; i < buttons.length; i++) {\r\n buttons[i].onclick = function () {\r\n var size = this.innerHTML,\r\n n_Class = this.dataset.element,\r\n infArr = n_Class.match(/wptb-options-(.+)-(\\d+)/i),\r\n type = infArr[1],\r\n num = infArr[2],\r\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];\r\n affectedEl.classList.remove('wptb-size-S');\r\n affectedEl.classList.remove('wptb-size-M');\r\n affectedEl.classList.remove('wptb-size-L');\r\n affectedEl.classList.remove('wptb-size-XL');\r\n affectedEl.classList.add('wptb-size-' + size);\r\n var b = this.parentNode.getElementsByClassName('wptb-btn-size-btn');\r\n for (var i = 0; i < b.length; i++) {\r\n b[i].classList.remove('selected');\r\n }\r\n this.classList.add('selected');\r\n }\r\n }\r\n }\r\n\r\n var optionControls = prop.getElementsByClassName('wptb-element-property');\r\n\r\n for (var i = 0; i < optionControls.length; i++) {\r\n if (optionControls[i].classList.contains('wptb-color-picker')) {\r\n jQuery(optionControls[i]).wpColorPicker({\r\n change: function (event, ui) {\r\n var parent = event.target, classe, type, ps, number;\r\n classe = parent.dataset.element.match(/wptb-options-(.+)-(\\d+)/i);\r\n type = classe[1];\r\n number = classe[2];\r\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + number)[0];\r\n if ( type == 'button' ) {\r\n if (parent.dataset.type == 'button-text-color') {\r\n affectedEl.getElementsByClassName('wptb-button')[0].style.color = ui.color.toString();\r\n } else {\r\n affectedEl.getElementsByClassName('wptb-button')[0].style.backgroundColor = ui.color.toString();\r\n }\r\n } else if( type == 'list' ) {\r\n let ps = affectedEl.querySelectorAll( 'p' );\r\n if( ps.length > 0 ) {\r\n for ( let i = 0; i < ps.length; i++ ) {\r\n ps[i].style.color = ui.color.toString();\r\n }\r\n }\r\n } else {\r\n affectedEl.style.color = ui.color.toString();\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (optionControls[i].dataset.type === 'font-size') {\r\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-text-font-size-slider')[0];\r\n slider.oninput = function () {\r\n this.parentNode.parentNode.getElementsByClassName('wptb-text-font-size-number')[0].value = this.value;\r\n this.parentNode.parentNode.getElementsByClassName('wptb-text-font-size-number')[0].onchange();\r\n }\r\n }\r\n\r\n if (optionControls[i].dataset.type === 'image-size') {\r\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0];\r\n slider.oninput = function () {\r\n this.parentNode.parentNode.getElementsByClassName('wptb-image-width-number')[0].value = this.value;\r\n this.parentNode.parentNode.getElementsByClassName('wptb-image-width-number')[0].onchange();\r\n }\r\n }\r\n\r\n optionControls[i].onchange = function (event) {\r\n\r\n var n_Class = this.dataset.element,\r\n infArr = n_Class.match(/wptb-options-(.+)-(\\d+)/i),\r\n type = infArr[1],\r\n num = infArr[2],\r\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0],\r\n val = this.value;\r\n\r\n switch (this.dataset.type) {\r\n case 'src':\r\n var img = affectedEl.getElementsByTagName(\"img\")[0];\r\n img.src = this.value;\r\n break;\r\n case 'alternative-text':\r\n var img = affectedEl.getElementsByTagName('img')[0];\r\n img.alt = this.value;\r\n break;\r\n case 'image-link':\r\n affectedEl.getElementsByTagName('a')[0].href = WPTB_Helper.linkHttpCheckChange( this.value );\r\n break;\r\n case 'image-link-target':\r\n if (this.checked == true) {\r\n affectedEl.getElementsByTagName('a')[0].target = '_blank';\r\n } else {\r\n affectedEl.getElementsByTagName('a')[0].target = '_self';\r\n }\r\n break;\r\n case 'image-link-nofollow':\r\n if (this.checked == true) {\r\n affectedEl.getElementsByTagName('a')[0].rel = 'nofollow';\r\n } else {\r\n affectedEl.getElementsByTagName('a')[0].removeAttribute('rel');\r\n }\r\n break;\r\n case 'image-size':\r\n affectedEl.getElementsByTagName('img')[0].style.width = this.value + '%';\r\n affectedEl.getElementsByTagName('img')[0].style.height = 'auto';\r\n this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;\r\n break;\r\n case 'image-alignment':\r\n affectedEl.getElementsByTagName( 'img' )[0].parentNode.style.textAlign = this.value;\r\n break;\r\n case 'font-size':\r\n affectedEl.style.fontSize = val + 'px';\r\n break;\r\n case 'button-alignment':\r\n var jc = '';\r\n if (this.value == 'left') {\r\n jc = 'start';\r\n } else if (this.value == 'right') {\r\n jc = 'flex-end';\r\n } else {\r\n jc = 'center';\r\n }\r\n affectedEl.getElementsByClassName('wptb-button-wrapper')[0].style.justifyContent = jc;\r\n break;\r\n case 'button-link':\r\n if ( this.value ) {\r\n affectedEl.getElementsByTagName( 'a' )[0].href = WPTB_Helper.linkHttpCheckChange( this.value );\r\n } else {\r\n affectedEl.getElementsByTagName( 'a' )[0].removeAttribute( 'href' );\r\n }\r\n break;\r\n case 'button-link-target':\r\n if (this.checked == true) {\r\n affectedEl.getElementsByTagName('a')[0].target = '_blank';\r\n } else {\r\n affectedEl.getElementsByTagName('a')[0].target = '_self';\r\n }\r\n break;\r\n case 'button-link-nofollow':\r\n if (this.checked == true) {\r\n affectedEl.getElementsByTagName('a')[0].rel = 'nofollow';\r\n } else {\r\n affectedEl.getElementsByTagName('a')[0].removeAttribute( 'rel' );\r\n }\r\n break;\r\n case 'button-id':\r\n if( this.value ) {\r\n affectedEl.getElementsByTagName( 'a' )[0].id = this.value;\r\n } else {\r\n affectedEl.getElementsByTagName( 'a' )[0].removeAttribute( 'id' );\r\n }\r\n case 'button-color':\r\n break;\r\n case 'list-alignment':\r\n let listItems = affectedEl.querySelectorAll('li');\r\n for (var i = 0; i < listItems.length; i++) {\r\n let p = listItems[i].querySelector( 'p' );\r\n if ( p ) {\r\n p.style.textAlign = this.value;\r\n }\r\n }\r\n break;\r\n case 'list-class':\r\n let parentNode = event.target\r\n .parentNode\r\n .parentNode\r\n .querySelector('[data-type=list-style-type]')\r\n .parentNode,\r\n parentNodeSettingItem = parentNode.parentNode;\r\n if (val == 'unordered') {\r\n parentNode.style.display = 'flex';\r\n \r\n parentNodeSettingItem.querySelector( '.wptb-list-icon-select-label' ).style.display = 'flex';\r\n let listItem = affectedEl.querySelectorAll('li');\r\n for (var i = 0; i < listItem.length; i++) {\r\n let p = listItem[i].querySelector( 'p' );\r\n p.removeAttribute ( 'class' );\r\n p.classList.add( 'wptb-list-style-type-disc' );\r\n }\r\n parentNodeSettingItem.querySelector('[data-type=list-style-type]').value = 'disc';\r\n } else {\r\n parentNode.style.display = 'none';\r\n parentNodeSettingItem.querySelector( '.wptb-list-icon-select-label' ).style.display = 'none';\r\n var listItem = affectedEl.querySelectorAll('li');\r\n for (var i = 0; i < listItem.length; i++) {\r\n let p = listItem[i].querySelector( 'p' );\r\n p.removeAttribute ( 'class' );\r\n }\r\n }\r\n break;\r\n case 'list-style-type':\r\n var listItem = affectedEl.querySelectorAll('li');\r\n for (var i = 0; i < listItem.length; i++) {\r\n let p = listItem[i].querySelector( 'p' );\r\n p.removeAttribute ( 'class' );\r\n p.classList.add( 'wptb-list-style-type-' + val.toLowerCase() );\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n};","var WPTB_Helper = {\n hexToRgb: function( hex ) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec( hex );\n return result ? 'rgb(' + parseInt( result[1], 16 ) + ',' + parseInt( result[2], 16 ) + ',' + parseInt( result[3], 16 ) + ')' : null;\n },\n rgbToHex: function ( rgb ) {\n var rgb = rgb.match( /^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i );\n\n return ( rgb && rgb.length === 4 ) ? \"#\" +\n ( \"0\" + parseInt( rgb[1],10 ).toString( 16 )).slice( -2 ) +\n ( \"0\" + parseInt( rgb[2],10 ).toString( 16 )).slice( -2 ) +\n ( \"0\" + parseInt( rgb[3],10 ).toString( 16 )).slice( -2 ) : '';\n },\n getDragImageCustom: function ( type ) {\n let hostName = location.protocol + '//' + location.hostname;\n let img = document.createElement( 'img' );\n img.src = hostName + '/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/' + type + '.png';\n return img;\n },\n dragImagesArr: function() {\n return {\n text: WPTB_Helper.getDragImageCustom( 'text' ),\n image: WPTB_Helper.getDragImageCustom( 'image' ),\n button: WPTB_Helper.getDragImageCustom( 'button' ),\n list: WPTB_Helper.getDragImageCustom( 'list' )\n };\n },\n listItemsRecalculateIndex: function( ulElem ) {\n let par = ulElem.querySelectorAll( 'p' );\n if ( par.length > 0 ) {\n for ( let i = 0; i < par.length; i++ ) {\n par[i].dataset.listStyleTypeIndex = Number( i ) + 1 + '.';\n }\n }\n },\n listItemsTinyMceInit: function( listItem ) {\n tinyMCE.init({\n target: listItem,\n inline: true,\n plugins: \"link, paste\",\n dialog_type: \"modal\",\n theme: 'modern',\n menubar: false,\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\n paste_as_text: true,\n toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',\n setup: function(ed) {\n ed.on('keydown', function(e) {\n let article = e.target.parentNode;\n if ( e.keyCode == 13 ) {\n e.preventDefault();\n let text = e.target.innerHTML;\n let duplicate = new WPTB_ListItem( text, article, true );\n \n article.parentNode.insertBefore( duplicate.getDOMElement(), article );\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\n e.target.querySelector( 'p' ).innerText = 'New List Item';\n //tinyMCE.execCommand('mceInsertContent', false, 'New List Item');\n WPTB_Helper.listItemsRecalculateIndex( article.parentNode );\n \n } else if ( e.keyCode == '8' || e.keyCode == '46' ) {\n let p = e.target.querySelector( 'p' );\n let pText = p.innerHTML.replace(/<[^>]+>/g, '');\n pText = pText.replace( /\\s+/g, ' ' ).trim();\n pText = pText.replace( /&nbsp;/g, '').trim();\n \n if( pText == '' ) {\n e.preventDefault();\n e.target.querySelector( 'p' ).innerText = '\\n';\n } else {\n let selectedText = WPTB_Helper.getSelectionText();\n selectedText = selectedText.replace( /\\s+/g, ' ' ).trim();\n selectedText = selectedText.replace( /&nbsp;/g, '' ).trim();\n if( selectedText == pText ) {\n e.preventDefault();\n e.target.querySelector( 'p' ).innerText = '\\n';\n }\n }\n }\n });\n \n ed.on( 'keyup', function( e ) {\n \n });\n },\n init_instance_callback: function (editor) {\n window.currentEditor = editor;\n editor.on('focus', function (e) {\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\n if (window.currentEditor &&\n document.getElementById('wptb_builder').scrollTop >= 55 &&\n window.currentEditor.bodyElement.style.display != 'none') {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\n } else {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\n }\n });\n }\n });\n },\n buttonsTinyMceInit: function( target ) {\n tinyMCE.init({\n target: target,\n inline: true,\n plugins: \"link\",\n dialog_type: \"modal\",\n theme: 'modern',\n menubar: false,\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\n toolbar: 'bold italic strikethrough',\n setup : function(ed) {\n ed.on('keydown', function(e) {\n if (e.keyCode == 13) {\n e.preventDefault();\n }\n });\n },\n init_instance_callback: function (editor) {\n window.currentEditor = editor;\n editor.on('focus', function (e) {\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\n if (window.currentEditor &&\n document.getElementById('wptb_builder').scrollTop >= 55 &&\n window.currentEditor.bodyElement.style.display != 'none') {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\n } else {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\n }\n });\n }\n });\n },\n linkHttpCheckChange: function( link ) {\n if ( link ) {\n if ( link.indexOf( 'http://' ) == -1 && link.indexOf( 'https://' ) == -1 ) {\n let linkArr = link.split( '/' ),\n linkClean;\n if ( Array.isArray( linkArr ) && linkArr.length > 0 ) {\n linkClean = linkArr[linkArr.length - 1];\n }\n return document.location.protocol + '//' + linkClean;\n } else { \n return link;\n }\n } else {\n return '';\n }\n },\n dataTitleColumnSet: function( table ) {\n let rows = table.rows,\n rowHead = rows[0];\n let computedStyleRowHead = getComputedStyle(rowHead);\n \n let rowHeadChildren = rowHead.children;\n let contentsForHeader = {};\n for( let i = 0; i < rowHeadChildren.length; i++ ) {\n let tdElements = rowHeadChildren[i].children;\n for( let j = 0; j < tdElements.length; j++ ) {\n let element = tdElements[j];\n if( element.classList.contains( 'wptb-ph-element' ) ) {\n let textContentStyle = element.getAttribute( 'style' );\n let infArr = element.className.match( /wptb-element-(.+)-(\\d+)/i );\n if( infArr[1] == 'text' ) {\n let p = element.querySelector( 'p' ),\n textContent = p.textContent,\n textAlign = p.style.textAlign;\n contentsForHeader[rowHeadChildren[i].dataset.xIndex] = [textContent, element.style.fontSize, \n element.style.color, computedStyleRowHead.backgroundColor, textAlign];\n break;\n }\n }\n }\n if( ! contentsForHeader[rowHeadChildren[i].dataset.xIndex] ) {\n contentsForHeader[rowHeadChildren[i].dataset.xIndex] = ['', '', \n '', computedStyleRowHead.backgroundColor, ''];\n }\n }\n for ( let i = 1; i < rows.length; i++ ) {\n let thisRow = rows[i],\n thisRowChildren = thisRow.children;\n for( let j = 0; j < thisRowChildren.length; j++ ) {\n if ( contentsForHeader[thisRowChildren[j].dataset.xIndex] ) {\n thisRowChildren[j].dataset.titleColumn = contentsForHeader[thisRowChildren[j].dataset.xIndex][0];\n thisRowChildren[j].dataset.titleColumnFontSize = contentsForHeader[thisRowChildren[j].dataset.xIndex][1];\n thisRowChildren[j].dataset.titleColumnColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][2];\n thisRowChildren[j].dataset.titleBackgroundColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][3];\n thisRowChildren[j].dataset.titleAlign = contentsForHeader[thisRowChildren[j].dataset.xIndex][4];\n } else {\n thisRowChildren[j].dataset.titleColumn = '';\n thisRowChildren[j].dataset.titleColumnFontSize = '';\n thisRowChildren[j].dataset.titleColumnColor = '';\n thisRowChildren[j].dataset.titleBackgroundColor = '';\n thisRowChildren[j].dataset.titleAlign = '';\n }\n }\n }\n },\n findAncestor: function(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls));\n return el;\n },\n getSelectionText: function() {\n var txt = '';\n if (txt = window.getSelection) {\n txt = window.getSelection().toString();\n } else {\n txt = document.selection.createRange().text;\n }\n return txt;\n },\n settingsPanelClear: function() {\n document.getElementById( 'wptb-top-row-as-header' ).checked = false;\n document.getElementById( 'wptb-table-border-slider' ).value = 0;\n document.getElementById( 'wptb-table-border-number' ).value = 0;\n document.getElementById( 'wptb-inner-border-check' ).checked = false;\n document.getElementById( 'wptb-apply-inner-border' ).classList.remove( 'visible' );\n document.getElementById( 'wptb-table-inner-border-slider' ).value = 1;\n document.getElementById( 'wptb-table-inner-border-number' ).value = 1;\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-border-color' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-header-bg' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-even-row-bg' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-odd-row-bg' );\n \n document.getElementById( 'wptb-table-cell-slider' ).value = 15;\n document.getElementById( 'wptb-table-cell-number' ).value = 15;\n },\n wpColorPickerClear: function( inputId ) {\n let input = document.getElementById( inputId );\n let wpPickerContainer = WPTB_Helper.findAncestor( input, 'wp-picker-container' );\n let parent = wpPickerContainer.parentNode;\n parent.removeChild( wpPickerContainer );\n let newInput = document.createElement( 'input' );\n newInput.setAttribute( 'id', inputId );\n newInput.value = \"\";\n parent.appendChild( newInput );\n },\n detectMode: function() {\n var url = window.location.href,\n regex = new RegExp('[?&]table(=([^&#]*)|&|#|$)'),\n results = regex.exec(url);\n if (!results) return false;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n}\n","var WPTB_Image = function ( src, DOMElementProt ) {\r\n let DOMElement,\r\n kindIndexProt = undefined,\r\n copy = false;\r\n if ( DOMElementProt == undefined ) {\r\n DOMElement = document.createElement('div');\r\n\t let anchor = document.createElement('a'),\r\n\t img = document.createElement('img');\r\n anchor.style.display = 'inline-block';\r\n anchor.appendChild(img);\r\n DOMElement.appendChild(anchor);\r\n \r\n anchor.onclick = function( e ) {\r\n e.preventDefault();\r\n }\r\n \r\n file_frame = wp.media.frames.file_frame = wp.media({\r\n\t\ttitle: 'Select a image to upload',\r\n\t\tbutton: {\r\n\t\t\ttext: 'Use this image'\r\n\t\t},\r\n\t\tmultiple: false\r\n });\r\n // When an image is selected, run a callback.\r\n file_frame.on('select', function () {\r\n attachment = file_frame.state().get('selection').first().toJSON();\r\n img.src = attachment.url;\r\n });\r\n // Finally, open the modal\r\n if (src == undefined) {\r\n file_frame.open();\r\n } else {\r\n img.src = src;\r\n }\r\n } else {\r\n DOMElement = DOMElementProt.cloneNode( true );\r\n \r\n DOMElement.getElementsByTagName( 'a' )[0].onclick = function(e) {\r\n e.preventDefault();\r\n };\r\n \r\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\r\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\r\n kindIndexProt = wptbElementMutch[1];\r\n copy = true;\r\n };\r\n }\r\n \r\n this.kind = 'image';\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n };\r\n\tapplyGenericItemSettings( this, kindIndexProt, copy );\r\n\r\n\treturn this;\r\n};","var WPTB_Initializer = function () {\r\n\r\n const MIN_COLUMNS = 1,\r\n MIN_ROWS = 1,\r\n MAX_COLUMNS = 10,\r\n MAX_ROWS = 10;\r\n\r\n var tableGenerator = document.body;\r\n columnsDecrementButton = tableGenerator.getElementsByClassName('wptb-input-number-decrement')[0],\r\n columnsIncrementButton = tableGenerator.getElementsByClassName('wptb-input-number-increment')[0],\r\n rowsDecrementButton = tableGenerator.getElementsByClassName('wptb-input-number-decrement')[1],\r\n rowsIncrementButton = tableGenerator.getElementsByClassName('wptb-input-number-increment')[1],\r\n columnsInput = document.getElementById('wptb-columns-number'),\r\n rowsInput = document.getElementById('wptb-rows-number');\r\n \r\n columnsDecrementButton.onclick = function () {\r\n if (columnsInput.value > MIN_COLUMNS) {\r\n columnsInput.value--;\r\n }\r\n };\r\n\r\n columnsIncrementButton.onclick = function () {\r\n if (columnsInput.value < MAX_COLUMNS) {\r\n columnsInput.value++;\r\n }\r\n };\r\n\r\n rowsDecrementButton.onclick = function () {\r\n if (rowsInput.value > MIN_ROWS) {\r\n rowsInput.value--;\r\n }\r\n };\r\n\r\n rowsIncrementButton.onclick = function () {\r\n if (rowsInput.value < MAX_ROWS) {\r\n rowsInput.value++;\r\n }\r\n };\r\n\r\n document.getElementById('wptb-generate-table').onclick = function () {\r\n var columns = document.getElementById('wptb-columns-number').value,\r\n rows = document.getElementById('wptb-rows-number').value;\r\n\r\n WPTB_Table(columns, rows);\r\n }\r\n \r\n// if( document.getElementsByClassName( 'wptb-preview-table' ).length == 0 ) {\r\n// WPTB_LeftPanel();\r\n// }\r\n\r\n};\r\n","var WPTB_innerElementSet = function ( element ) {\n \n function newElementProxy(el) {\n if (el == 'list') {\n return new WPTB_List();\n } else if (el == 'image') {\n return new WPTB_Image();\n } else if (el == 'text') {\n return new WPTB_Text();\n } else if (el == 'button') {\n return new WPTB_Button();\n }\n }\n \n element.ondragenter = function (e) {\n var div;\n if ( e.dataTransfer.types.indexOf( 'wptbelement' ) == -1 && e.dataTransfer.types.indexOf( 'wptb-moving-mode' ) == -1 ) {\n return;\n }\n WPTB_DropHandle(this, e);\n \n element.classList.add( 'wptb-ondragenter' );\n }\n element.ondragover = function (e) {\n e.preventDefault();\n WPTB_DropHandle(this, e);\n }\n element.ondragleave = function () {\n \n }\n element.ondrop = function(e) {\n this.classList.remove( 'wptb-ondragenter' );\n let element, classId;\n e.preventDefault();\n e.stopPropagation();\n\n if (!e.dataTransfer.getData('wptbElement') && !e.dataTransfer.getData('node')) {\n return;\n }\n let wptbDropHandle,\n wptbDropBorderMarker;\n if ( document.getElementsByClassName( 'wptb-drop-handle' ).length > 0 ) {\n wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' )[0];\n }\n if( document.getElementsByClassName( 'wptb-drop-border-marker' ).length > 0 ) {\n wptbDropBorderMarker = document.getElementsByClassName( 'wptb-drop-border-marker' )[0];\n }\n\n if ( e.dataTransfer.getData( 'wptbElement' ) ) {\n element = newElementProxy( e.dataTransfer.getData( 'wptbElement' ) );\n element = element.getDOMElement();\n } else {\n classId = e.dataTransfer.getData( 'node' );\n element = document.getElementsByClassName( classId )[0];\n element.classList.remove( 'wptb-moving-mode' );\n }\n \n if( wptbDropHandle.style.display == 'block' ) {\n let td;\n if( wptbDropHandle.dataset.text == 'Drop Here' ) {\n td = wptbDropHandle.getDOMParentElement();\n td.appendChild( element );\n } else {\n let innerElement = wptbDropHandle.getDOMParentElement();\n td = innerElement.parentNode;\n\n if( wptbDropHandle.dataset.text == 'Abowe Element' ) {\n td.insertBefore( element, innerElement );\n } else if( wptbDropHandle.dataset.text == 'Below Element' ) {\n let innerElementNext = innerElement.nextSibling;\n td.insertBefore( element, innerElementNext );\n }\n }\n let thisRow = td.parentNode\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n \n } else {\n return;\n }\n \n wptbDropHandle.style.display = 'none';\n wptbDropBorderMarker.style.display = 'none';\n\n WPTB_innerElementSet( element );\n\n return true;\n }\n element.onmouseover = function(e) {\n element.classList.remove( 'wptb-ondragenter' );\n }\n}","var WPTB_LeftPanel = function () {\r\n\r\n var table = document.getElementsByClassName('wptb-preview-table')[0],\r\n wptbElementButtons = document.getElementsByClassName('wptb-element');\r\n \r\n function wptbTdBgColorSavedSet( inputId, trNumber ) {\r\n if ( trNumber > 3 ) return;\r\n if( table ) {\r\n let tableRows = table.getElementsByTagName('tr');\r\n if ( tableRows.length > trNumber ) {\r\n let trBackgroundColor = tableRows[trNumber].style.backgroundColor;\r\n var wptbEvenRowBg = document.getElementById(inputId);\r\n if ( wptbEvenRowBg && trBackgroundColor ) {\r\n wptbEvenRowBg.value = WPTB_Helper.rgbToHex( trBackgroundColor );\r\n }\r\n }\r\n }\r\n \r\n }\r\n \r\n wptbTdBgColorSavedSet( 'wptb-even-row-bg', 1 );\r\n jQuery('#wptb-even-row-bg').wpColorPicker({\r\n change: function ( event, ui ) {\r\n var tableRows = table.getElementsByTagName('tr');\r\n for ( let i = 1; i < tableRows.length; i += 2 ) {\r\n tableRows[i].style.backgroundColor = ui.color.toString();\r\n }\r\n },\r\n clear: function(){\r\n var tableRows = table.getElementsByTagName('tr');\r\n for ( let i = 1; i < tableRows.length; i += 2 ) {\r\n tableRows[i].style.backgroundColor = '';\r\n let tds = tableRows[i].getElementsByTagName('td');\r\n for ( let j = 0; j < tds.length; j++ ) {\r\n tds[j].style.backgroundColor = '';\r\n }\r\n }\r\n },\r\n\r\n });\r\n \r\n wptbTdBgColorSavedSet( 'wptb-odd-row-bg', 2 );\r\n jQuery('#wptb-odd-row-bg').wpColorPicker({\r\n change: function ( event, ui ) {\r\n var tableRows = table.getElementsByTagName('tr');\r\n for ( let i = 2; i < tableRows.length; i += 2 ) {\r\n tableRows[i].style.backgroundColor = ui.color.toString();\r\n }\r\n },\r\n clear: function(){\r\n var tableRows = table.getElementsByTagName('tr');\r\n for ( let i = 2; i < tableRows.length; i += 2 ) {\r\n tableRows[i].style.backgroundColor = '';\r\n let tds = tableRows[i].getElementsByTagName( 'td' );\r\n for ( var j = 0; j < tds.length; j++ ) {\r\n tds[j].style.backgroundColor = '';\r\n }\r\n }\r\n },\r\n });\r\n \r\n wptbTdBgColorSavedSet( 'wptb-table-header-bg', 0 );\r\n jQuery('#wptb-table-header-bg').wpColorPicker({\r\n change: function (event, ui) {\r\n var tableHeader = table.getElementsByTagName('tr')[0];\r\n tableHeader.style.backgroundColor = ui.color.toString();\r\n },\r\n clear: function(){\r\n var tableHeader = table.getElementsByTagName('tr')[0];\r\n tableHeader.style.backgroundColor = '';\r\n let tds = tableHeader.getElementsByTagName('td');\r\n for (var j = 0; j < tds.length; j++) {\r\n tds[j].style.backgroundColor = '';\r\n }\r\n },\r\n });\r\n \r\n function tableTopRowAsHeadSavedSet( table ) {\r\n let wptbTopRowAsHeader = document.getElementById( 'wptb-top-row-as-header' );\r\n \r\n if( table && table.classList.contains( 'wptb-table-preview-head' ) ) {\r\n wptbTopRowAsHeader.checked = true;\r\n } else {\r\n wptbTopRowAsHeader.checked = false;\r\n }\r\n }\r\n tableTopRowAsHeadSavedSet( table );\r\n \r\n function tableBorderColorWidthSavedSet() {\r\n let table = document.getElementsByClassName('wptb-preview-table');\r\n if ( table.length > 0 ) {\r\n let tableBorderColor = table[0].style.borderColor;\r\n if ( tableBorderColor ) {\r\n let tableBorderColorInput = document.getElementById( 'wptb-table-border-color' );\r\n if ( tableBorderColorInput ) {\r\n tableBorderColorInput.value = WPTB_Helper.rgbToHex( tableBorderColor );\r\n }\r\n }\r\n \r\n let tableBorderWidth = table[0].style.borderWidth;\r\n if ( tableBorderWidth ) {\r\n let wptbTableBorderWidthSlider = document.getElementById('wptb-table-border-slider'),\r\n wptbTableBorderWidthNumber = document.getElementById('wptb-table-border-number');\r\n \r\n if ( wptbTableBorderWidthSlider ) {\r\n wptbTableBorderWidthSlider.value = parseInt( tableBorderWidth );\r\n }\r\n if ( wptbTableBorderWidthNumber ) {\r\n wptbTableBorderWidthNumber.value = parseInt( tableBorderWidth );\r\n }\r\n }\r\n \r\n \r\n let tableTd = table[0].querySelector( 'td' );\r\n let applyInnerBorder = tableTd.style.borderWidth;\r\n if ( applyInnerBorder ) {\r\n let innerBorderCheckInput = document.getElementById( 'wptb-inner-border-check' );\r\n let wptbApplyInnerBorder = document.getElementById( 'wptb-apply-inner-border' );\r\n if ( applyInnerBorder && parseInt( applyInnerBorder ) > 0 ) {\r\n if ( innerBorderCheckInput ) {\r\n innerBorderCheckInput.checked = true;\r\n \r\n if ( wptbApplyInnerBorder ) {\r\n wptbApplyInnerBorder.classList.add( 'visible' );\r\n let wptbTableInnerBorderSlider = document.getElementById( 'wptb-table-inner-border-slider' );\r\n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\r\n wptbTableInnerBorderSlider.value = parseInt( applyInnerBorder );\r\n wptbTableInnerBorderNumber.value = parseInt( applyInnerBorder );\r\n }\r\n }\r\n } else {\r\n innerBorderCheckInput.checked = false;\r\n }\r\n }\r\n \r\n if ( ( tableBorderWidth && parseInt( tableBorderWidth ) > 0 ) || ( applyInnerBorder && parseInt( applyInnerBorder ) > 0 ) ) {\r\n document.getElementById( 'wptb-table-border-color-set-area' ).style.display = '';\r\n }\r\n }\r\n }\r\n \r\n tableBorderColorWidthSavedSet();\r\n\r\n jQuery('#wptb-table-border-color').wpColorPicker({\r\n change: function (event, ui) {\r\n var tableCells = table.getElementsByTagName('td');\r\n table.style.border = document.querySelector('#wptb-table-border-number').value + 'px solid ' + ui.color.toString();\r\n\r\n for (var i = 0; i < tableCells.length; i++) {\r\n let tableInnerborderNumber = document.querySelector('#wptb-table-inner-border-number').value;\r\n if ( document.getElementById('wptb-inner-border-check').checked ) {\r\n tableCells[i].style.border = ( tableInnerborderNumber != 0 ? tableInnerborderNumber : 1 ) + 'px solid ' + ui.color.toString();\r\n }\r\n }\r\n },\r\n clear: function() {\r\n var tableCells = table.getElementsByTagName('td');\r\n table.style.borderColor = '';\r\n\r\n for (var i = 0; i < tableCells.length; i++) {\r\n tableCells[i].style.borderColor = '';\r\n }\r\n }\r\n });\r\n\r\n function addInnerBorderSize(value) {\r\n var tableCells = table.getElementsByTagName('td');\r\n for (var i = 0; i < tableCells.length; i++) {\r\n tableCells[i].style.borderWidth = document.querySelector('#wptb-table-inner-border-number').value + 'px';\r\n tableCells[i].style.borderStyle = 'solid';\r\n }\r\n }\r\n\r\n function addCellPadding(value) {\r\n var tableCells = table.getElementsByTagName('td');\r\n for (var i = 0; i < tableCells.length; i++) {\r\n tableCells[i].style.padding = value + 'px';\r\n }\r\n }\r\n\r\n function addInnerBorder(checked) {\r\n var styles, color = document.querySelector('#wptb-table-border-color').value != undefined ?\r\n document.querySelector('#wptb-table-border-color').value : 'rgb(0,0,0)';\r\n if ( document.querySelector( '#wptb-table-inner-border-slider' ).value == 0 || document.querySelector( '#wptb-table-inner-border-number' ).value == 0 ) {\r\n document.querySelector( '#wptb-table-inner-border-slider' ).value = 1;\r\n document.querySelector( '#wptb-table-inner-border-number' ).value = 1;\r\n }\r\n let width = document.querySelector( '#wptb-table-inner-border-slider' ).value + 'px';\r\n let wptbPreviewTable = document.getElementsByClassName('wptb-preview-table');\r\n if( wptbPreviewTable.length > 0 ) {\r\n if (checked == 'checked') {\r\n document.getElementById('wptb-apply-inner-border').style.marginBottom = '0px';\r\n var tableCells = wptbPreviewTable[0].getElementsByTagName( 'td' );\r\n for (var i = 0; i < tableCells.length; i++) {\r\n tableCells[i].style.border = width + ' solid ' + color;\r\n }\r\n document.getElementById( 'wptb-apply-inner-border' ).classList.add( 'visible' );\r\n } else {\r\n document.getElementById( 'wptb-apply-inner-border' ).classList.remove( 'visible' );\r\n var tableCells = wptbPreviewTable[0].getElementsByTagName( 'td' );\r\n for (var i = 0; i < tableCells.length; i++) {\r\n tableCells[i].style.border = '0px solid ' + color;\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n function addBorderSize(value) {\r\n table.style.borderWidth = value + 'px';\r\n table.style.borderStyle = 'solid';\r\n }\r\n \r\n function cellPaddingSavedSet() {\r\n let table = document.getElementsByClassName('wptb-preview-table');\r\n \r\n if ( table.length > 0 ) {\r\n let td = table[0].querySelector( 'td' );\r\n \r\n if ( td ) {\r\n let padding = td.style.padding;\r\n \r\n if ( padding ) {\r\n let wptbTableCellSlider = document.getElementById('wptb-table-cell-slider'),\r\n wptbTableCellNumber = document.getElementById('wptb-table-cell-number');\r\n \r\n if ( wptbTableCellSlider ) {\r\n wptbTableCellSlider.value = parseInt( padding );\r\n }\r\n if ( wptbTableCellNumber ) {\r\n wptbTableCellNumber.value = parseInt( padding );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n cellPaddingSavedSet();\r\n \r\n function numberImputSize( wptbNumberInputs, maxCount, maxValue ) {\r\n wptbNumberInputs.onkeydown = function() {\r\n let thisValue = this.value;\r\n thisValue = String( thisValue );\r\n if ( thisValue[0] == 0 ) {\r\n this.value = \"\";\r\n } else {\r\n thisValue = thisValue.substring( 0, maxCount );\r\n this.value = thisValue;\r\n }\r\n }\r\n wptbNumberInputs.onkeyup = function() {\r\n let thisValue = this.value;\r\n thisValue = String( thisValue );\r\n if ( thisValue > maxValue ) {\r\n this.value = maxValue;\r\n }\r\n }\r\n }\r\n \r\n let wptbTableBorderNumber = document.getElementById( 'wptb-table-border-number' );\r\n numberImputSize( wptbTableBorderNumber, 1, 50 );\r\n \r\n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\r\n numberImputSize( wptbTableInnerBorderNumber, 1, 50 );\r\n \r\n let wptbTableCellNumber = document.getElementById( 'wptb-table-cell-number' );\r\n numberImputSize( wptbTableCellNumber, 1, 50 );\r\n \r\n let wptbTextfontSizeNumber = document.getElementById( 'wptb-text-font-size-number' );\r\n numberImputSize( wptbTextfontSizeNumber, 1, 50 );\r\n \r\n let wptbImageWidthNumber = document.getElementById( 'wptb-image-width-number' );\r\n numberImputSize( wptbImageWidthNumber, 2, 100 );\r\n \r\n \r\n \r\n document.getElementById('wptb-table-cell-slider').oninput = function () {\r\n document.getElementById('wptb-table-cell-number').value = this.value;\r\n addCellPadding(this.value);\r\n };\r\n\r\n document.getElementById('wptb-table-cell-number').onchange = function () {\r\n document.getElementById('wptb-table-cell-slider').value = this.value;\r\n addCellPadding(this.value);\r\n };\r\n\r\n document.getElementById('wptb-table-border-slider').oninput = function () {\r\n document.getElementById('wptb-table-border-number').value = this.value;\r\n addBorderSize(this.value);\r\n \r\n let wptbInnerBorderCheck = document.getElementById('wptb-inner-border-check').checked,\r\n tableBorderColorSetArea = document.getElementById( 'wptb-table-border-color-set-area' );\r\n if ( this.value == 0 && wptbInnerBorderCheck == false ) {\r\n tableBorderColorSetArea.style.display = 'none';\r\n } else {\r\n tableBorderColorSetArea.style.display = '';\r\n }\r\n };\r\n\r\n document.getElementById('wptb-table-border-number').onchange = function () {\r\n document.getElementById('wptb-table-border-slider').value = this.value;\r\n addBorderSize(this.value);\r\n };\r\n\r\n document.getElementById('wptb-table-inner-border-slider').oninput = function () {\r\n document.getElementById('wptb-table-inner-border-number').value = this.value;\r\n addInnerBorderSize(this.value);\r\n };\r\n\r\n document.getElementById('wptb-table-inner-border-number').onchange = function () {\r\n document.getElementById('wptb-table-inner-border-slider').value = this.value;\r\n addInnerBorderSize(this.value);\r\n };\r\n\r\n document.getElementById('wptb-inner-border-check').onchange = function () {\r\n if( table ) {\r\n let val = this.checked ? 'checked' : 'unchecked';\r\n addInnerBorder( val );\r\n let borderWidth = document.getElementById('wptb-table-border-slider').value,\r\n tableBorderColorSetArea = document.getElementById( 'wptb-table-border-color-set-area' );\r\n if( val == 'unchecked' && borderWidth == 0 ) {\r\n tableBorderColorSetArea.style.display = 'none';\r\n } else {\r\n tableBorderColorSetArea.style.display = '';\r\n }\r\n }\r\n \r\n };\r\n \r\n function createMobileHeadForTable( table, thisEvent ) {\r\n \r\n if( thisEvent.checked ) {\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n \r\n table.classList.add( 'wptb-table-preview-head' );\r\n table.rows[0].classList.add( 'wptb-table-head' );\r\n } else {\r\n let rows = table.rows;\r\n table.classList.remove( 'wptb-table-preview-head' );\r\n rows[0].classList.remove( 'wptb-table-head' );\r\n \r\n for ( let i = 1; i < rows.length; i++ ) {\r\n let thisRow = rows[i],\r\n thisRowChildren = thisRow.children;\r\n for( let j = 0; j < thisRowChildren.length; j++ ) {\r\n thisRowChildren[j].removeAttribute( 'data-title-column' );\r\n }\r\n }\r\n }\r\n }\r\n \r\n document.getElementById( 'wptb-top-row-as-header' ).onchange = function () {\r\n createMobileHeadForTable( table, this );\r\n }\r\n\r\n for (var i = 0; i < wptbElementButtons.length; i++) {\r\n wptbElementButtons[i].ondragstart = function (e) {\r\n e.dataTransfer.setData('wptbElement', this.dataset.wptbElement);\r\n e.dataTransfer.setData( 'wptbElIndic-' + this.dataset.wptbElement, 'wptbElIndic-' + this.dataset.wptbElement );\r\n }\r\n }\r\n \r\n if( table ) {\r\n document.getElementById('wptb-activate-cell-management-mode').onclick = table.toggleTableEditMode;\r\n document.getElementById( 'wptb-table-edit-mode-close' ).onclick = table.toggleTableEditMode;\r\n document.getElementById( 'wptb-left-scroll-panel-curtain-close' ).onclick = table.toggleTableEditMode;\r\n document.getElementById('wptb-add-end-row').onclick = table.addRowToTheEnd;\r\n document.getElementById('wptb-add-start-row').onclick = table.addRowToTheStart;\r\n document.getElementById('wptb-add-row-before').onclick = table.addRowBefore;\r\n document.getElementById('wptb-add-row-after').onclick = table.addRowAfter;\r\n document.getElementById('wptb-add-end-column').onclick = table.addColumnEnd;\r\n document.getElementById('wptb-add-start-column').onclick = table.addColumnStart;\r\n document.getElementById('wptb-add-column-before').onclick = table.addColumnBefore;\r\n document.getElementById('wptb-add-column-after').onclick = table.addColumnAfter;\r\n document.getElementById('wptb-delete-column').onclick = table.deleteColumn;\r\n document.getElementById('wptb-delete-row').onclick = table.deleteRow;\r\n document.getElementById('wptb-merge-cells').onclick = table.mergeCells;\r\n document.getElementById('wptb-split-cell').onclick = table.splitCell;\r\n }\r\n \r\n document.querySelector( '.wptb-left-panel-extend' ).onclick = function() {\r\n let wptbContainer = document.querySelector( '.wptb-container' );\r\n if( wptbContainer ) {\r\n if ( wptbContainer.classList.contains( 'collapsed' ) ) {\r\n wptbContainer.classList.remove( 'collapsed' );\r\n } else {\r\n wptbContainer.classList.add( 'collapsed' );\r\n }\r\n }\r\n };\r\n \r\n // this code hides the \"element parameters\" area \r\n // when clicked outside this element and its \"tinymce\" toolbar \r\n let wptbBuilderPanel = document.getElementsByClassName( 'wptb-builder-panel' )[0];\r\n wptbBuilderPanel.addEventListener( 'click', function( e ) {\r\n if( ! e.target.classList.contains( 'wptb-ph-element' ) && ! WPTB_Helper.findAncestor( e.target, 'wptb-ph-element' ) && \r\n ! e.target.classList.contains( 'wptb-fixed-toolbar' ) && ! WPTB_Helper.findAncestor( e.target, 'wptb-fixed-toolbar' ) ) {\r\n document.getElementsByClassName( 'wptb-elements-container' )[0].style.display = 'table';\r\n document.getElementsByClassName( 'wptb-settings-section' )[0].style.display = 'block';\r\n document.getElementById( 'element-options-group' ).style.display = 'none';\r\n let wpcdFixedToolbar = document.getElementById( 'wpcd_fixed_toolbar' );\r\n if( wpcdFixedToolbar.hasAttribute( 'data-toolbar-active-id' ) ) {\r\n document.getElementById( wpcdFixedToolbar.getAttribute( 'data-toolbar-active-id' ) ).classList.remove( 'toolbar-active' );\r\n }\r\n } \r\n }, false);\r\n \r\n};","var WPTB_List = function ( innerElements, DOMElementProt ) {\r\n\r\n var el_L = document.createElement('ul'), item,\r\n DOMElement = document.createElement('div'),\r\n kindIndexProt = undefined,\r\n copy = false;\r\n DOMElement.classList.add( 'wptb-list-item-container' );\r\n\r\n this.kind = 'list';\r\n\r\n if (innerElements === '') {\r\n //Case for edit mode list\r\n } else if ( !innerElements ) {\r\n for (var i = 0; i < 3; i++) {\r\n item = new WPTB_ListItem( '<p>List Item ' + (i + 1) + '</p>');\r\n el_L.appendChild(item.getDOMElement());\r\n }\r\n } else {\r\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\r\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\r\n kindIndexProt = wptbElementMutch[1];\r\n copy = true;\r\n };\r\n \r\n for ( var i = 0; i < innerElements.length; i++ ) {\r\n let listItem = DOMElementProt.querySelector( 'li' );\r\n item = new WPTB_ListItem( innerElements[i], listItem, true );\r\n el_L.appendChild(item.getDOMElement());\r\n }\r\n }\r\n DOMElement.appendChild(el_L);\r\n //window.addElementOptions('list', elList);\r\n\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n }\r\n applyGenericItemSettings( this, kindIndexProt, copy );\r\n WPTB_Helper.listItemsRecalculateIndex( el_L );\r\n\r\n return this;\r\n};","var WPTB_ListItem = function ( text, DOMElementProt, copy ) {\r\n let wptbListItemReturn;\r\n if ( DOMElementProt == undefined || ( DOMElementProt && copy )) {\r\n if (text == undefined) text = 'New List Item';\r\n var DOMElement = document.createElement('li'),\r\n //divdot = document.createElement('div'),\r\n divcontent = document.createElement('div');\r\n //libullet = document.createElement('li');\r\n //divdot.classList.add('wptb-list-item-style-dot');\r\n divcontent.classList.add('wptb-list-item-content');\r\n //libullet.classList.add('wptb-bullet');\r\n if ( DOMElementProt ) {\r\n let styleDot = DOMElementProt.getAttribute( 'style' );\r\n if ( styleDot ) {\r\n DOMElement.setAttribute( 'style', styleDot );\r\n }\r\n }\r\n //DOMElement.appendChild(divdot);\r\n DOMElement.appendChild(divcontent);\r\n //divdot.appendChild(libullet);\r\n divcontent.innerHTML = text;\r\n divcontent.onkeyup = window.listItemKeyListener;\r\n \r\n wptbListItemReturn = true;\r\n } else {\r\n var DOMElement = DOMElementProt;\r\n var divcontent = DOMElement.getElementsByClassName( 'wptb-list-item-content' )[0];\r\n \r\n divcontent.onkeyup = window.listItemKeyListener;\r\n \r\n wptbListItemReturn = false;\r\n }\r\n \r\n DOMElement.onmouseenter = function (event) {\r\n\r\n var btnDelete = document.createElement('span'),\r\n btnCopy = document.createElement('span'),\r\n actions = document.createElement('span'),\r\n previous,\r\n i;\r\n actions.classList.add('wptb-actions');\r\n btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');\r\n btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');\r\n this.classList.add('wptb-directlyhovered');\r\n\r\n btnDelete.onclick = function () {\r\n var action = this.parentNode, \r\n item = this.parentNode.parentNode,\r\n parent = item.parentNode;\r\n item.removeChild( action );\r\n parent.removeChild( item );\r\n WPTB_Helper.listItemsRecalculateIndex( parent );\r\n };\r\n\r\n btnCopy.onclick = function (event) {\r\n var listItem = event.target.parentNode.parentNode,\r\n content = listItem.querySelector('.wptb-list-item-content'),\r\n html = content.innerHTML;\r\n var duplicate = new WPTB_ListItem( html, listItem, true );\r\n listItem.parentNode.insertBefore( duplicate.getDOMElement(), DOMElement );\r\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\r\n setTimeout( function(){\r\n divcontent.innerHTML = html;\r\n WPTB_Helper.listItemsRecalculateIndex( listItem.parentNode );\r\n }, 5 );\r\n };\r\n\r\n actions.append(btnCopy, btnDelete);\r\n this.appendChild(actions);\r\n };\r\n\r\n DOMElement.onmouseleave = function (event) {\r\n this.removeAttribute( 'class' );\r\n let iter = 0;\r\n while( event.target.querySelector( '.wptb-actions' ) && iter < 5 ) {\r\n event.target.querySelector( '.wptb-actions' ).remove();\r\n iter++;\r\n }\r\n };\r\n\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n };\r\n \r\n if ( wptbListItemReturn ) {\r\n return this;\r\n }\r\n};","var MultipleSelect = function () {\r\n\r\n\tvar selectedCells = [],\r\n\t\tmultipleCellMode = false;\r\n\r\n\tthis.activateMultipleSelectMode = function () {\r\n\t\tselectedCells = [];\r\n\t\tvar tds = document.getElementsByClassName('wptb-preview-table')[0].getElementsByTagName('td');\r\n\t\tfor (var i = 0; i < tds.length; i++) {\r\n\t\t\ttds[i].classList.remove('wptb-highlighted');\r\n\t\t}\r\n\t\tmultipleCellMode = true;\r\n\t}\r\n\r\n\tthis.deactivateMultipleSelectMode = function () {\r\n\t\tmultipleCellMode = false;\r\n\t}\r\n\r\n\tthis.isActivated = function () {\r\n\t\treturn multipleCellMode;\r\n\t}\r\n\r\n\tthis.pushSelectedCell = function (cell) {\r\n\t\tif (!multipleCellMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tselectedCells.push(cell);\r\n\t\tcell.classList.add('wptb-highlighted');\r\n\t};\r\n\r\n\tthis.selectedCells = function () {\r\n\t\treturn selectedCells;\r\n\t}\r\n\r\n\tthis.flushSelectedCells = function () {\r\n\t\tselectedCells = [];\r\n\t}\r\n\r\n\tthis.getFirst = function () {\r\n\t\tvar minXIndex = 1000, minYIndex = 1000, first;\r\n\t\tfor (var i = selectedCells.length - 1; i >= 0; i--) {\r\n\t\t\tif (minXIndex >= selectedCells[i].dataset.xIndex\r\n\t\t\t\t&& minYIndex >= selectedCells[i].dataset.yIndex) {\r\n\t\t\t\tfirst = selectedCells[i];\r\n\t\t\t\tminXIndex = selectedCells[i].dataset.xIndex;\r\n\t\t\t\tminYIndex = selectedCells[i].dataset.yIndex;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn first;\r\n\t}\r\n\r\n\tthis.getLast = function () {\r\n\t\tvar maxXIndex = -1, maxYIndex = -1, last;\r\n\t\tfor (var i = selectedCells.length - 1; i >= 0; i--) {\r\n\t\t\tif (maxXIndex <= selectedCells[i].dataset.xIndex\r\n\t\t\t\t&& maxYIndex <= selectedCells[i].dataset.yIndex) {\r\n\t\t\t\tlast = selectedCells[i];\r\n\t\t\t\tmaxXIndex = selectedCells[i].dataset.xIndex;\r\n\t\t\t\tmaxYIndex = selectedCells[i].dataset.yIndex;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn last;\r\n\t}\r\n\r\n\tthis.removeAllButFirst = function () {\r\n\t\tvar td = this.getFirst();\r\n\t\tfor (var i = 1; i < selectedCells.length; i++) {\r\n\t\t\tselectedCells[i].classList.add('wptb-fused-cell-' + td.dataset.xIndex + '-' + td.dataset.yIndex);\r\n\t\t}\r\n\t}\r\n\r\n\treturn this;\r\n\r\n};","var WPTB_Parser = function (code) {\n let div = document.createElement( 'div' );\n div.innerHTML = code;\n \n let table = div.children[0];\n let columnTitleMobile = [...table.querySelectorAll( '.wptb-column-title-mobile-container' )];\n \n for( let i = 0; i < columnTitleMobile.length; i++ ) {\n let parent = columnTitleMobile[i].parentNode;\n parent.removeChild( columnTitleMobile[i] );\n }\n \n let tds = table.querySelectorAll( 'td' );\n for ( let i = 0; i < tds.length; i++ ) {\n tds[i].classList.add( 'wptb-droppable' );\n tds[i].classList.remove( 'wptb-column-title-mobile-not-elements' );\n }\n \n return table;\n}","var WPTB_Parser2 = function (code) {\r\n if( Array.isArray( code ) ) {\r\n let elementHtml;\r\n \r\n if ( code.length == 1) {\r\n return elementHtml.appendChild( document.createTextNode( code[0] ) );\r\n }\r\n if( 0 in code ) {\r\n let tagName = code[0];\r\n elementHtml = document.createElement( tagName );\r\n \r\n if ( 1 in code ) {\r\n if( Array.isArray( code[1] ) ) {\r\n let attributes = code[1];\r\n \r\n for( let i = 0; i < attributes.length; i++ ) {\r\n if( Array.isArray( attributes[i] ) ) {\r\n elementHtml.setAttribute(attributes[i][0], attributes[i][1]);\r\n }\r\n }\r\n }\r\n }\r\n \r\n if ( 2 in code ) {\r\n if ( Array.isArray( code[2] ) ) {\r\n for ( let i = 0; i < code[2].length; i++ ) {\r\n if ( typeof code[2][i] === 'string' && tagName.toLowerCase() == 'p' ) {\r\n elementHtml.appendChild( document.createTextNode( code[2][i] ) );\r\n continue;\r\n }\r\n if ( ! WPTB_Parser( code[2][i] ) ) continue;\r\n elementHtml.appendChild( WPTB_Parser( code[2][i] ) );\r\n }\r\n } else if( typeof code[2] === 'string' ) {\r\n elementHtml.appendChild( document.createTextNode( code[2] ) );\r\n }\r\n \r\n }\r\n }\r\n \r\n return elementHtml;\r\n } else {\r\n return false;\r\n }\r\n \r\n}","var WPTB_Settings = function () {\r\n var elems = document.getElementsByClassName('wptb-element');\r\n\r\n for ( var i = 0; i < elems.length; i++ ) {\r\n elems[i].ondragstart = function ( event ) {\r\n event.dataTransfer.effectAllowed = 'move';\r\n event.dataTransfer.setData( 'wptbElement', event.target.dataset.wptbElement );\r\n event.dataTransfer.setData( 'wptbElIndic-' + event.target.dataset.wptbElement, 'wptbElIndic-' + event.target.dataset.wptbElement );\r\n }\r\n elems[i].ondragend = function () {\r\n let wptbDropHandle = document.querySelector( '.wptb-drop-handle' ),\r\n wptbDropBorderMarker = document.querySelector( '.wptb-drop-border-marker' );\r\n if ( wptbDropHandle || wptbDropBorderMarker ) {\r\n wptbDropHandle.style.display = 'none';\r\n wptbDropBorderMarker.style.display = 'none';\r\n }\r\n }\r\n };\r\n \r\n let shortcodePopupWindow = document.getElementsByClassName( 'wptb-shortcode-popup-window-modal' )[0];\r\n document.getElementsByClassName( 'wptb-embed-btn' )[0].onclick = function () {\r\n if( ! this.classList.contains( 'wptb-embed-disable' ) ) {\r\n shortcodePopupWindow.classList.add( 'wptb-shortcode-popup-show' );\r\n }\r\n }\r\n \r\n document.getElementsByClassName( 'wptb-shortcode-popup-dark-area' )[0].onclick = function () {\r\n shortcodePopupWindow.classList.remove( 'wptb-shortcode-popup-show' );\r\n }\r\n \r\n document.getElementsByClassName( 'wptb-shortcode-popup-window-close-icon' )[0].onclick = function () {\r\n shortcodePopupWindow.classList.remove( 'wptb-shortcode-popup-show' );\r\n }\r\n\r\n document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function () {\r\n let bar = document.querySelector( '.wptb-edit-bar' );\r\n if ( bar && bar.classList.contains( 'visible' ) ) {\r\n let table = document.getElementsByClassName( 'wptb-preview-table' )[0];\r\n table.toggleTableEditMode();\r\n }\r\n\r\n let http = new XMLHttpRequest(),\r\n url = ( wptb_admin_object ? wptb_admin_object.ajaxurl : ajaxurl ) + \"?action=save_table\",\r\n t = document.getElementById( 'wptb-setup-name' ).value.trim(),\r\n messagingArea,\r\n code = document.getElementsByClassName( 'wptb-preview-table' );\r\n if( code.length > 0 ) {\r\n code = WPTB_Stringifier( code[0] );\r\n code = code.outerHTML;\r\n } else { \r\n code = '';\r\n }\r\n \r\n if ( t === '' || code === '' ) {\r\n let messagingAreaText = '';\r\n if( t === '' ) messagingAreaText += 'You must assign a name to the table before saving it.</br>';\r\n if( code === '' ) messagingAreaText += 'Table wasn\\'t created';\r\n messagingArea = document.getElementById( 'wptb-messaging-area' );\r\n messagingArea.innerHTML = '<div class=\"wptb-error wptb-message\">Error: ' + messagingAreaText + '</div>';\r\n messagingArea.classList.add( 'wptb-warning' );\r\n setTimeout(function () {\r\n messagingArea.removeChild( messagingArea.firstChild );\r\n }, 4000 );\r\n return;\r\n }\r\n\r\n let params = {\r\n title: t,\r\n content: code,\r\n security_code: wptb_admin_object.security_code\r\n };\r\n if (( rs = WPTB_Helper.detectMode() ) || ( rs = document.wptbId )) {\r\n params.id = rs;\r\n }\r\n params = JSON.stringify( params );\r\n\r\n http.open('POST', url, true);\r\n http.setRequestHeader( 'Content-type', 'application/json; charset=utf-8' );\r\n\r\n http.onreadystatechange = function (action) {\r\n if ( this.readyState == 4 && this.status == 200 ) {\r\n var data = JSON.parse( http.responseText );\r\n messagingArea = document.getElementById( 'wptb-messaging-area' );\r\n\r\n if ( data[0] == 'saved' ) {\r\n document.wptbId = data[1];\r\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully saved.</div>';\r\n document.getElementsByClassName( 'wptb-embed-btn' )[0].classList.remove( 'wptb-embed-disable' );\r\n document.getElementById( 'wptb-embed-shortcode' ).value = '[wptb id=' + data[1] + ']';\r\n } else if( data[0] == 'edited' ) {\r\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully updated.</div>';\r\n } else {\r\n messagingArea.innerHTML = '<div class=\"wptb-error wptb-message\">Safety problems</div>';\r\n }\r\n messagingArea.classList.add( 'wptb-success' );\r\n setTimeout( function () {\r\n messagingArea.removeChild( messagingArea.firstChild );\r\n }, 4000 );\r\n }\r\n }\r\n http.send( params );\r\n }\r\n};\r\n","var WPTB_Space = function ( elSpaceBetween ) {\r\n\r\n function newElementProxy(el) {\r\n if (el.includes('list')) {\r\n return new WPTB_List();\r\n } else if (el.includes('image')) {\r\n return new WPTB_Image();\r\n } else if (el.includes('text')) {\r\n return new WPTB_Text();\r\n } else if (el.includes('button')) {\r\n return new WPTB_Button();\r\n }\r\n }\r\n let spaceBetween;\r\n if ( ! elSpaceBetween ) {\r\n spaceBetween = document.createElement('div'), spaceBetween.classList.add('wptb-space-between');\r\n } else {\r\n spaceBetween = elSpaceBetween;\r\n }\r\n\r\n spaceBetween.ondragenter = function () {\r\n this.classList.add('visible');\r\n };\r\n spaceBetween.ondragover = function (event) {\r\n event.preventDefault();\r\n };\r\n\r\n spaceBetween.ondragleave = function () {\r\n this.classList.remove('visible');\r\n };\r\n\r\n spaceBetween.ondrop = function (event) {\r\n event.stopPropagation();\r\n\r\n var p = event.target.nextSibling,\r\n td = event.target,\r\n element, t_space, spaceParent;\r\n\r\n while ( !td.classList.contains('wptb-droppable') ) {\r\n td = td.parentNode;\r\n }\r\n\r\n if (event.dataTransfer.getData('wptbElement')) {\r\n element = newElementProxy(event.dataTransfer.getData('wptbElement'));\r\n this.classList.remove('visible');\r\n\r\n if (p == null) {\r\n td.appendChild(element.getDOMElement());\r\n td.appendChild(new WPTB_Space());\r\n } else {\r\n td.insertBefore(element.getDOMElement(), p);\r\n td.insertBefore(new WPTB_Space(), p);\r\n }\r\n\r\n } else {\r\n alert(event.dataTransfer.getData('node'));\r\n element = document.getElementsByClassName(event.dataTransfer.getData('node'))[0];\r\n t_space = element.nextSibling;\r\n spaceParent = element.parentNode;\r\n if (t_space != undefined) {\r\n spaceParent.removeChild(t_space);\r\n }\r\n\r\n if (p == null) {\r\n td.appendChild(element);\r\n td.appendChild(new WPTB_Space());\r\n } else {\r\n td.insertBefore(element, p);\r\n td.insertBefore(new WPTB_Space(), p);\r\n }\r\n\r\n }\r\n this.classList.remove('visible');\r\n };\r\n \r\n if ( ! elSpaceBetween ) {\r\n return spaceBetween;\r\n }\r\n};","var WPTB_Stringifier = function ( codeMain ) {\n if ( codeMain ) {\n let code = codeMain.cloneNode( true );\n code.classList.add( 'wptb-table-preview-static-indic' );\n code.dataset.tableColumns = codeMain.columns;\n code.dataset.reconstraction = 1;\n \n let tds = code.getElementsByTagName( 'td' );\n if ( tds.length > 0 ) {\n for ( let i = 0; i < tds.length; i++ ) {\n \n for( let i = 0; i < tds.length; i++ ) {\n if( code.dataset.reconstraction == 1 && tds[i].colSpan > 1 || tds[i].rowSpan > 1 ) {\n code.dataset.reconstraction = 0;\n break;\n }\n }\n \n if ( codeMain.querySelector( 'wptb-table-preview-head' ) ) {\n tds[i].removeAttribute( 'data-x-index' );\n }\n tds[i].removeAttribute( 'data-y-index' );\n tds[i].removeAttribute( 'draggable' );\n tds[i].classList.remove( 'wptb-droppable' );\n let innerElements = tds[i].getElementsByClassName( 'wptb-ph-element' );\n \n if ( innerElements.length > 0 ) {\n for ( let j = 0; j < innerElements.length; j++ ) {\n innerElements[j].classList.remove( 'wptb-directlyhovered' );\n \n let mceContentBodys = innerElements[j].querySelectorAll( '.mce-content-body' );\n if( mceContentBodys.length > 0 ) {\n for ( let k = 0; k < mceContentBodys.length; k++ ) {\n mceContentBodys[k].classList.remove( 'mce-content-body' );\n }\n }\n \n let dataMceStyle = innerElements[j].querySelectorAll( '[data-mce-style]' );\n if ( dataMceStyle.length > 0 ) {\n for ( let k = 0; k < dataMceStyle.length; k++ ) {\n dataMceStyle[k].removeAttribute( 'data-mce-style' );\n }\n }\n \n let contentEditable = innerElements[j].querySelectorAll( '[contenteditable]' );\n if ( contentEditable.length > 0 ) {\n for ( let k = 0; k < contentEditable.length; k++ ) {\n contentEditable[k].removeAttribute( 'contenteditable' );\n }\n }\n \n let spellCheck = innerElements[j].querySelectorAll( '[spellcheck]' );\n if ( spellCheck.length > 0 ) {\n for ( let k = 0; k < spellCheck.length; k++ ) {\n spellCheck[k].removeAttribute( 'spellcheck' );\n }\n }\n \n let mceIds = innerElements[j].querySelectorAll( '[id^=mce_]' );\n if ( mceIds.length > 0 ) {\n for ( let k = 0; k < mceIds.length; k++ ) {\n mceIds[k].removeAttribute( 'id' );\n }\n }\n \n let wptbActions = innerElements[j].querySelectorAll( '.wptb-actions' );\n let wptbActionsLength = wptbActions.length;\n while ( wptbActionsLength > 0 ) {\n wptbActions[0].parentNode.removeChild( wptbActions[0] );\n wptbActionsLength--;\n } \n }\n }\n \n if( tds[i].hasAttribute( 'data-title-column' ) ) {\n let columnNameDivContainer = document.createElement( 'div' ),\n columnNameDiv = document.createElement( 'div' );\n columnNameDivContainer.classList.add( 'wptb-column-title-mobile-container' );\n columnNameDiv.classList.add( 'wptb-column-title-mobile' );\n columnNameDiv.dataset.titleColumn = tds[i].dataset.titleColumn;\n columnNameDiv.setAttribute( 'style', 'font-size:' + tds[i].dataset.titleColumnFontSize + '; \\n\\\n color:' + tds[i].dataset.titleColumnColor + '; background-color:' + tds[i].dataset.titleBackgroundColor + '; text-align:' + tds[i].dataset.titleAlign + ';' );\n columnNameDiv.style.padding = tds[i].style.padding;\n if( tds[i].children.length == 0 ) {\n tds[i].classList.add( 'wptb-column-title-mobile-not-elements' );\n }\n columnNameDivContainer.appendChild( columnNameDiv );\n tds[i].insertBefore( columnNameDivContainer, tds[i].firstChild );\n }\n }\n }\n \n return code;\n }\n}","var WPTB_Stringifier2 = function ( node, start = false ) {\r\n\r\n\tif ( node == undefined ) {\r\n\t\treturn '';\r\n\t} else if ( node.tagName == undefined && node.nodeType == 3 ) {\r\n return node.nodeValue;\r\n }\r\n \r\n let code = [],\r\n children,\r\n int_elem_arr = false,\r\n attributes = [...node.attributes],\r\n attributes_list = [],\r\n internal_elements = [];\r\n if ( ( node.parentNode.classList.contains( 'wptb-list-item-content' ) || \r\n node.parentNode.classList.contains( 'mce-content-body' ) ) && \r\n node.tagName.toLowerCase() == 'p' ) {\r\n children = node.childNodes;\r\n int_elem_arr = true;\r\n } else if( node.children.length > 0 ) {\r\n children = node.children;\r\n } else {\r\n children = node.childNodes;\r\n }\r\n if ( attributes.length > 0 ) {\r\n for ( let i = 0; i < attributes.length; i++ ) {\r\n attributes_list[i] = [attributes[i].name, attributes[i].value];\r\n }\r\n } else {\r\n attributes_list = '';\r\n }\r\n \r\n if ( children.length > 0 ) {\r\n for ( let i = 0; i < children.length; i++) {\r\n let inter_elem = WPTB_Stringifier(children[i]);\r\n \r\n if ( Array.isArray( inter_elem ) || int_elem_arr ) {\r\n internal_elements[i] = inter_elem;\r\n } else if ( typeof inter_elem === 'string' && inter_elem ) {\r\n internal_elements = inter_elem;\r\n }\r\n }\r\n } else {\r\n internal_elements = '';\r\n }\r\n \r\n \r\n code.push(node.tagName.toLowerCase(), attributes_list , internal_elements);\r\n \r\n return code;\r\n}","var array = [], WPTB_Table = function (columns, rows) {\r\n\r\n /* The members of the class */\r\n var settings = document.getElementsByClassName('wptb-settings-items'),\r\n wptbTableSetup = document.getElementsByClassName(\"wptb-table-setup\")[0],\r\n table, row, cell,\r\n maxAmountOfCells,\r\n maxAmountOfRows;\r\n\r\n //HERE ARE THE PRIVATE FUNCTIONS\r\n /*\r\n * This function toggles buttons visibility in cell edit mode\r\n * (according to the amount of currently selected cells), and\r\n * highlights visually the clicked cell if it is not highlighted, or\r\n * removes highlight if clicked cell is already highlighted. \r\n * It too toggles the bits of our abstract representation.\r\n * @param Event this is the event instance of the click performed over a cell.\r\n */\r\n var mark = function (event) {\r\n var rs = this.rowSpan,\r\n cs = this.colSpan,\r\n markedCells,\r\n noCells = document.getElementsByClassName('wptb-no-cell-action'),\r\n singleCells = document.getElementsByClassName('wptb-single-action'),\r\n multipleCells = document.getElementsByClassName('wptb-multiple-select-action'),\r\n position = getCoords(this),\r\n row = position[0],\r\n column = position[1];\r\n if (!document.select.isActivated()) {\r\n return;\r\n }\r\n if (this.className.match(/wptb-highlighted/)) {\r\n this.classList.remove('wptb-highlighted');\r\n for (var i = 0; i < rs; i++) {\r\n for (var j = 0; j < cs; j++) {\r\n array[row + i][column + j] = 0;\r\n }\r\n }\r\n } else {\r\n this.classList.add('wptb-highlighted');\r\n for (var i = 0; i < rs; i++) {\r\n for (var j = 0; j < cs; j++) {\r\n array[row + i][column + j] = 1;\r\n }\r\n }\r\n }\r\n\r\n markedCells = document.getElementsByClassName('wptb-highlighted').length;\r\n if (markedCells === 0) {\r\n for (var i = 0; i < multipleCells.length; i++) {\r\n multipleCells[i].classList.remove('visible');\r\n multipleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n for (var i = 0; i < noCells.length; i++) {\r\n noCells[i].classList.add('visible');\r\n noCells[i].removeAttribute('disabled');\r\n }\r\n for (var i = 0; i < singleCells.length; i++) {\r\n singleCells[i].classList.remove('visible');\r\n singleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n } else if (markedCells === 1) {\r\n for (var i = 0; i < multipleCells.length; i++) {\r\n multipleCells[i].classList.remove('visible');\r\n multipleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n for (var i = 0; i < noCells.length; i++) {\r\n noCells[i].classList.remove('visible');\r\n noCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n for (var i = 0; i < singleCells.length; i++) {\r\n singleCells[i].classList.add('visible');\r\n singleCells[i].removeAttribute('disabled');\r\n }\r\n } else {\r\n for (var i = 0; i < multipleCells.length; i++) {\r\n if (table.isSquare(array)) {\r\n multipleCells[i].classList.add('visible');\r\n multipleCells[i].removeAttribute('disabled');\r\n } else {\r\n multipleCells[i].classList.remove('visible');\r\n multipleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n for (var i = 0; i < noCells.length; i++) {\r\n noCells[i].classList.remove('visible');\r\n noCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n for (var i = 0; i < singleCells.length; i++) {\r\n singleCells[i].classList.remove('visible');\r\n singleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n };\r\n\r\n /* \r\n * This function fills an array with 1's according to the actual design\r\n * of HTML table.\r\n * @returns an array of arrays containing an abstract representation\r\n * of HTML table.\r\n * @deprecated\r\n * */\r\n\r\n var realTimeArray = function () {\r\n var carried = [], tds, cols, matriz = [];\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n carried[i] = 0;\r\n }\r\n\r\n for (var i = 0; i < table.rows.length; i++) {\r\n cols = [];\r\n\r\n var tds = table.rows[i].getElementsByTagName('td');\r\n\r\n for (items = 0; items < tds.length; items++) {\r\n\r\n for (var k = 0; k < tds[items].colSpan; k++) {\r\n cols.push(1);\r\n }\r\n\r\n if (tds[items].rowSpan > 1) {\r\n for (var k = 0; k < tds[items].colSpan; k++) {\r\n carried[items + k] = {\r\n justAssigned: true,\r\n amount: tds[items].rowSpan\r\n };\r\n }\r\n }\r\n }\r\n\r\n for (var k = 0; k < maxAmountOfCells; k++) {\r\n if (typeof carried[k] == 'object' && carried[k].amount > 0) {\r\n carried[k].amount--;\r\n if (carried[k].justAssigned) {\r\n carried[k].justAssigned = false;\r\n } else {\r\n cols.push(1);\r\n }\r\n }\r\n }\r\n\r\n matriz.push(cols);\r\n\r\n }\r\n return matriz;\r\n };\r\n\r\n /*\r\n * This function gets the number and position of cell spaces in current row that are occuped \r\n * by upper rowspanned cells.\r\n * @param number the number of row where we wish to calculate the carried rowspans up to.\r\n * @return an array with the remaining rowspans in each column.\r\n */\r\n var carriedRowspans = function (row) {\r\n var carried = [], tds, cols;\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n carried[i] = 0;\r\n }\r\n\r\n if (row == -1) {\r\n return carried;\r\n }\r\n\r\n for (var i = 0; i <= row; i++) {\r\n cellsBuffer = table.rows[i].getElementsByTagName('td');\r\n cellPointer = 0;\r\n\r\n for (var xPosition = 0; xPosition < maxAmountOfCells; xPosition += stepsToMove) {\r\n stepsToMove = 1;\r\n\r\n if (carried[xPosition]) {\r\n carried[xPosition]--;\r\n } else {\r\n celda = cellsBuffer[cellPointer++];\r\n if (celda.rowSpan > 1) {\r\n for (k = 0; k < celda.colSpan; k++) {\r\n carried[xPosition + k] = celda.rowSpan - 1;\r\n }\r\n stepsToMove = celda.colSpan;\r\n } else if (celda.colSpan > 1) {\r\n stepsToMove = celda.colSpan;\r\n }\r\n }\r\n }\r\n\r\n }\r\n return carried;\r\n };\r\n\r\n /*\r\n * A helpful function for showing\r\n * the abstract table in console.\r\n * @param Array our abstract table.\r\n */\r\n var drawTable = function (a) {\r\n var string = 'DRAWING TABLE:\\n';\r\n for (var i = 0; i < a.length; i++) {\r\n\r\n for (var j = 0; j < a[i].length; j++) {\r\n string += ' ' + a[i][j];\r\n }\r\n string += '\\n';\r\n }\r\n table.isSquare(a);\r\n };\r\n\r\n /*\r\n * It resets all the bits of our abstract representation\r\n * to 0 and removes the highlighting class of all cells.\r\n */\r\n\r\n var undoSelect = function () {\r\n var noCells = document.getElementsByClassName('wptb-no-cell-action'),\r\n singleCells = document.getElementsByClassName('wptb-single-action'),\r\n multipleCells = document.getElementsByClassName('wptb-multiple-select-action'),\r\n tds = table.getElementsByClassName('wptb-highlighted');\r\n while (tds.length) {\r\n tds[0].classList.remove('wptb-highlighted');\r\n }\r\n for (var i = 0; i < array.length; i++) {\r\n for (var j = 0; j < array[i].length; j++) {\r\n array[i][j] = 0;\r\n }\r\n }\r\n for (var i = 0; i < multipleCells.length; i++) {\r\n multipleCells[i].classList.remove('visible');\r\n multipleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n for (var i = 0; i < noCells.length; i++) {\r\n noCells[i].classList.add('visible');\r\n noCells[i].removeAttribute('disabled');\r\n }\r\n for (var i = 0; i < singleCells.length; i++) {\r\n singleCells[i].classList.remove('visible');\r\n singleCells[i].setAttribute('disabled', 'disabled');\r\n }\r\n };\r\n\r\n /*\r\n * This fills the abstract representation of our table with \r\n * zeros, at the start. the max amount of cells is the greatest sum\r\n * of all colspans for row.\r\n */\r\n\r\n var fillTableArray = function () {\r\n var colspansSums = [], a = [];\r\n\r\n //calculate max amount of cells inside a row\r\n for (var i = 0; i < table.rows.length; i++) {\r\n var cells = table.rows[i].getElementsByTagName('td'),\r\n colspanSumInRow = 0;\r\n for (var j = 0; j < cells.length; j++) {\r\n colspanSumInRow += cells[j].colSpan;\r\n }\r\n colspansSums.push(colspanSumInRow);\r\n }\r\n\r\n maxAmountOfCells = Math.max.apply(null, colspansSums);\r\n //calculate max rows\r\n var maxAmountOfRows = table.rows.length;\r\n\r\n // fill with zeros from both values\r\n for (var i = 0; i < maxAmountOfRows; i++) {\r\n a[i] = [];\r\n for (var j = 0; j < maxAmountOfCells; j++) {\r\n a[i].push(0);\r\n }\r\n }\r\n drawTable(a);\r\n return a;\r\n };\r\n\r\n /*\r\n * This function gets the sum of all colspans in a row.\r\n * @param number the number of row to be used as reference.\r\n */\r\n var getActualPointsInRow = function (row) {\r\n var tds = table.rows[row].getElementsByTagName('td'),\r\n points = 0;\r\n for (var i = 0; i < tds.length; i++) {\r\n points += tds[i].colSpan;\r\n }\r\n return points;\r\n }\r\n\r\n /*\r\n * This function gets us the exact coordinates of\r\n * an exact cell, in a more reliable way than xIndex and yIndex,\r\n * these last ones were meant to be used for getting the cell trough them.\r\n * @param DOMElement the cell to get the coordinates.\r\n */\r\n var getCoords = function (search) {\r\n var skipInCols = [], cell;\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n skipInCols[i] = 0;\r\n }\r\n\r\n for (var i = 0; i < table.rows.length; i++) {\r\n var cellsBuffer = table.rows[i].getElementsByTagName('td');\r\n cellPointer = 0;\r\n for (var xPosition = 0; xPosition < maxAmountOfCells; xPosition += stepsToMove) {\r\n stepsToMove = 1;\r\n\r\n if (skipInCols[xPosition]) {\r\n skipInCols[xPosition]--;\r\n } else {\r\n var td = cellsBuffer[cellPointer++];\r\n if (td == search) {\r\n return [i, xPosition];\r\n }\r\n if (td.rowSpan > 1) {\r\n for ( let k = 0; k < td.colSpan; k++ ) {\r\n skipInCols[xPosition + k] = td.rowSpan - 1;\r\n }\r\n stepsToMove = td.colSpan;\r\n } else if (td.colSpan > 1) {\r\n stepsToMove = td.colSpan;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n jQuery('#wptb-table-header-bg').val('');\r\n jQuery('#wptb-even-row-bg').val('');\r\n jQuery('#wptb-odd-row-bg').val('');\r\n jQuery('#wptb-table-border-color').val('');\r\n jQuery('#wptb-table-inner-border-number,#wptb-table-inner-border-slider').val('0');\r\n jQuery('#wptb-table-border-number,#wptb-table-border-slider').val('0');\r\n jQuery('#wptb-table-padding-number,#wptb-table-padding-slider').val('15');\r\n\r\n if (columns || rows) {\r\n //END OF PRIVATE FUNCTIONS\r\n for (var i = 0; i < settings.length; i++) {\r\n if (settings[i].id !== 'wptb-apply-inner-border') {\r\n settings[i].classList.add('visible');\r\n }\r\n }\r\n\r\n //Create a HTML Table element.\r\n table = document.createElement('table');\r\n table.classList.add('wptb-preview-table');\r\n\r\n //Add the data rows.\r\n for (var i = 0; i < rows; i++) {\r\n\r\n row = table.insertRow(-1);\r\n row.classList.add( 'wptb-row' );\r\n\r\n for (var j = 0; j < columns; j++) {\r\n cell = new WPTB_Cell(mark);\r\n cell.setCoords(i, j);\r\n row.appendChild(cell.getDOMElement());\r\n }\r\n }\r\n } else {\r\n let wptb_preview_table = document.getElementsByClassName( 'wptb-preview-table' );\r\n\r\n if (wptb_preview_table.length > 0) {\r\n table = wptb_preview_table[0];\r\n\r\n let cells = table.getElementsByTagName('td');\r\n\r\n if (cells.length > 0) {\r\n for (let i = 0; i < cells.length; i++) {\r\n WPTB_Cell(mark, cells[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * This just toggles visibility of cell edit bar, and toggles \r\n * cell selecting mode.\r\n */\r\n\r\n table.toggleTableEditMode = function () {\r\n let bar = document.getElementsByClassName('wptb-edit-bar'),\r\n cellModeBackground = document.getElementById('wptb-cell_mode_background'),\r\n leftScrollPanelCurtain = document.getElementById('wptb-left-scroll-panel-curtain'),\r\n wptbPreviewTable = document.getElementsByClassName('wptb-preview-table');\r\n if (wptbPreviewTable.length > 0) {\r\n wptbPreviewTable = wptbPreviewTable[0];\r\n }\r\n\r\n if (bar.length > 0) {\r\n for (let i = 0; i < bar.length; i++) {\r\n if (bar[i].classList.contains('visible')) {\r\n document.select.deactivateMultipleSelectMode();\r\n bar[i].classList.remove('visible');\r\n cellModeBackground.classList.remove('visible');\r\n leftScrollPanelCurtain.classList.remove('visible');\r\n wptbPreviewTable.classList.remove('wptb-preview-table-manage-cells');\r\n let wptbPreviewTableTds = wptbPreviewTable.getElementsByTagName('td');\r\n if (wptbPreviewTableTds.length > 0) {\r\n for (let i = 0; i < wptbPreviewTableTds.length; i++) {\r\n wptbPreviewTableTds[i].classList.remove('wptb-highlighted');\r\n }\r\n }\r\n } else {\r\n document.select.activateMultipleSelectMode();\r\n bar[i].classList.add('visible');\r\n cellModeBackground.classList.add('visible');\r\n leftScrollPanelCurtain.classList.add('visible');\r\n wptbPreviewTable.classList.add('wptb-preview-table-manage-cells');\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n /*\r\n * For assigning to each cell xIndex and y Index attributes,\r\n * these are the column number and row number of cell in table. \r\n */\r\n\r\n table.recalculateIndexes = function ( start ) {\r\n let trs = this.getElementsByTagName('tr'), tds, maxCols = 0,\r\n tdsArr = [];\r\n let wptbTopRowAsHeader = document.getElementById( 'wptb-top-row-as-header' );\r\n \r\n for (var i = 0; i < trs.length; i++) {\r\n if ( i == 0 ) {\r\n if ( start == undefined ) {\r\n trs[i].style.backgroundColor = jQuery('#wptb-table-header-bg').val();\r\n }\r\n if( wptbTopRowAsHeader.checked ) {\r\n if( start == undefined ) {\r\n this.classList.add( 'wptb-table-preview-head' ); \r\n trs[i].classList.add( 'wptb-table-head' )\r\n } ;\r\n } else {\r\n if( start == undefined ) {\r\n this.classList.remove( 'wptb-table-preview-head' );\r\n trs[i].classList.remove( 'wptb-table-head' );\r\n }\r\n }\r\n } else {\r\n if (i % 2 == 0) {\r\n if ( start == undefined ) {\r\n trs[i].style.backgroundColor = jQuery('#wptb-odd-row-bg').val();\r\n }\r\n trs[i].classList.remove( 'wptb-table-head' );\r\n } else {\r\n if ( start == undefined ) {\r\n trs[i].style.backgroundColor = jQuery('#wptb-even-row-bg').val();\r\n }\r\n trs[i].classList.remove( 'wptb-table-head' );\r\n }\r\n }\r\n\r\n tdsArr[i];\r\n tds = trs[i].getElementsByTagName('td');\r\n\r\n if (tdsArr[i] == undefined) {\r\n tdsArr[i] = [];\r\n }\r\n\r\n let jMainIter = 0;\r\n for (var j = 0; j < tds.length; j++) {\r\n if (tdsArr[i][j] != undefined) {\r\n for (let y = 0; y < 100; y++) {\r\n if (tdsArr[i][jMainIter] != undefined) {\r\n jMainIter++;\r\n continue;\r\n }\r\n tdsArr[i][jMainIter] = tds[j];\r\n tds[j].dataset.xIndex = jMainIter;\r\n break;\r\n }\r\n } else {\r\n tdsArr[i][j] = tds[j];\r\n tds[j].dataset.xIndex = jMainIter;\r\n }\r\n tds[j].dataset.yIndex = i;\r\n\r\n if (tds[j].colSpan > 1) {\r\n for (let k = 1; k < tds[j].colSpan; k++) {\r\n jMainIter++;\r\n tdsArr[i][jMainIter] = 'tdDummy';\r\n }\r\n }\r\n\r\n if (tds[j].rowSpan > 1) {\r\n for (let x = 1; x < tds[j].rowSpan; x++) {\r\n if (tdsArr[i + x] == undefined) {\r\n tdsArr[i + x] = [];\r\n }\r\n for (let z = 0; z < tds[j].colSpan; z++) {\r\n tdsArr[i + x][jMainIter - tds[j].colSpan + 1 + z ] = 'tdDummy';\r\n }\r\n }\r\n }\r\n jMainIter++;\r\n }\r\n if (j > maxCols) {\r\n maxCols = j;\r\n }\r\n }\r\n this.columns = maxCols;\r\n }\r\n\r\n /*\r\n * As simple as it is: adds a column to the end of table.\r\n */\r\n table.addColumnEnd = function () {\r\n let td,\r\n currentTable = document.getElementsByClassName('wptb-preview-table'),\r\n currentTableTd,\r\n currentTdStyle;\r\n if (currentTable.length > 0) {\r\n currentTableTd = currentTable[0].querySelector('td');\r\n }\r\n\r\n if (currentTableTd) {\r\n currentTdStyle = currentTableTd.getAttribute('style');\r\n }\r\n for (var i = 0; i < table.rows.length; i++) {\r\n td = new WPTB_Cell(mark);\r\n if (currentTdStyle) {\r\n td.getDOMElement().setAttribute('style', currentTdStyle);\r\n }\r\n table.rows[i].appendChild(td.getDOMElement());\r\n array[i].push(0);\r\n }\r\n maxAmountOfCells++;\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * As simple as it looks: adds a column to the start of table.\r\n */\r\n\r\n table.addColumnStart = function () {\r\n let td,\r\n firstCell,\r\n currentTable = document.getElementsByClassName('wptb-preview-table'),\r\n currentTableTd,\r\n currentTdStyle;\r\n if (currentTable.length > 0) {\r\n currentTableTd = currentTable[0].querySelector('td');\r\n }\r\n\r\n if (currentTableTd) {\r\n currentTdStyle = currentTableTd.getAttribute('style');\r\n }\r\n for (var i = 0; i < table.rows.length; i++) {\r\n td = new WPTB_Cell(mark);\r\n if (currentTdStyle) {\r\n td.getDOMElement().setAttribute('style', currentTdStyle);\r\n }\r\n firstCell = table.rows[i].getElementsByTagName('td')[0];\r\n if (firstCell) {\r\n table.rows[i].insertBefore(td.getDOMElement(), firstCell);\r\n } else {\r\n table.rows[i].appendChild(td.getDOMElement());\r\n }\r\n array[i].push(0);\r\n }\r\n\r\n maxAmountOfCells++;\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * Well, not so simple as previous functions.\r\n * It adds a column after a certain column of reference.\r\n * @param integer the column number to be used as reference.\r\n *\tIf empty, then the first highlighted cell is used as reference.\r\n */\r\n\r\n table.addColumnAfter = function (c_pos) {\r\n let rows = table.rows,\r\n cellPointer,\r\n cellsBuffer,\r\n cell = document.querySelector('.wptb-highlighted'),\r\n cellStyle = cell.getAttribute('style'),\r\n pos = c_pos != undefined && typeof c_pos === 'number' ? c_pos : getCoords(cell)[1];\r\n \r\n \r\n \r\n if( maxAmountOfCells - pos - cell.colSpan + 1 == 1 ) {\r\n table.addColumnEnd();\r\n } else {\r\n let pendingInsertion = false,\r\n stepsToMove,\r\n td, bro,\r\n carriedRowspans = [],\r\n currentCell;\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n carriedRowspans.push(0);\r\n }\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n cellPointer = 0;\r\n cellsBuffer = rows[i].getElementsByTagName('td');\r\n pendingInsertion = false;\r\n for (var xPosition = 0;\r\n xPosition < maxAmountOfCells;\r\n xPosition += stepsToMove) {\r\n stepsToMove = 1;\r\n\r\n if (pendingInsertion) {\r\n td = new WPTB_Cell(mark);\r\n if (cellStyle) {\r\n td.getDOMElement().setAttribute('style', cellStyle);\r\n }\r\n if (currentCell && rows[i].contains(currentCell)) {\r\n bro = currentCell.nextSibling;\r\n if (bro) {\r\n rows[i].insertBefore(td.getDOMElement(), bro);\r\n } else {\r\n rows[i].appendChild(td.getDOMElement());\r\n }\r\n } else {\r\n rows[i].insertBefore(td.getDOMElement(), cellsBuffer[0]);\r\n }\r\n break;\r\n } else if (carriedRowspans[xPosition] > 0) {\r\n // If no pending insertion, let's check if no rowspan from upper cells is pending in current position\r\n if (pos == xPosition) {\r\n pendingInsertion = true;\r\n }\r\n } else {\r\n currentCell = cellsBuffer[cellPointer++];\r\n if (currentCell.rowSpan > 1) {\r\n stepsToMove = currentCell.colSpan;\r\n for (var k = 0; k < currentCell.colSpan; k++) {\r\n carriedRowspans[xPosition + k] = currentCell.rowSpan;\r\n if (xPosition + k == pos) {\r\n pendingInsertion = true;\r\n }\r\n }\r\n } else if (currentCell.colSpan > 1) {\r\n stepsToMove = currentCell.colSpan;\r\n for (var k = 0; k < currentCell.colSpan; k++) {\r\n if (xPosition + k == pos) {\r\n pendingInsertion = true;\r\n }\r\n }\r\n } else if (xPosition == pos) {\r\n pendingInsertion = true;\r\n }\r\n }\r\n }\r\n\r\n for (var l = 0; l < maxAmountOfCells; l++) {\r\n if (carriedRowspans[l] > 0)\r\n carriedRowspans[l]--;\r\n }\r\n\r\n }\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n array[i].push(0);\r\n }\r\n maxAmountOfCells++;\r\n drawTable(array);\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n }\r\n };\r\n\r\n /*\r\n * For preventing us to take a lot of time,\r\n * This is just calling the function addColumnAfter, but\r\n * using the previous column to current one as reference.\r\n * @see addColumnAfter\r\n */\r\n\r\n table.addColumnBefore = function () {\r\n var cell = document.querySelector('.wptb-highlighted'),\r\n pos = getCoords(cell)[1];\r\n\r\n if (pos === 0) {\r\n table.addColumnStart();\r\n } else {\r\n table.addColumnAfter(pos - 1);\r\n }\r\n };\r\n\r\n /*\r\n * Luckily, thisfunction is simple, \r\n * it just add a row to the end of table.\r\n */\r\n\r\n table.addRowToTheEnd = function () {\r\n let r = table.insertRow(-1),\r\n td,\r\n aux,\r\n currentTable = document.getElementsByClassName('wptb-preview-table'),\r\n currentTableTd,\r\n currentTdStyle;\r\n r.classList.add( 'wptb-row' );\r\n if (currentTable.length > 0) {\r\n currentTableTd = currentTable[0].querySelector('td');\r\n }\r\n\r\n if (currentTableTd) {\r\n currentTdStyle = currentTableTd.getAttribute('style');\r\n }\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n td = new WPTB_Cell(mark);\r\n if (currentTdStyle) {\r\n td.getDOMElement().setAttribute('style', currentTdStyle);\r\n }\r\n r.appendChild(td.getDOMElement());\r\n }\r\n aux = Array.from(array[0]);\r\n array.push(aux);\r\n drawTable(array);\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * Yet another simple function, \r\n * it just add a row to the start of table.\r\n */\r\n\r\n table.addRowToTheStart = function () {\r\n let r = table.insertRow(0),\r\n td,\r\n aux,\r\n currentTable = document.getElementsByClassName('wptb-preview-table'),\r\n currentTableTd,\r\n currentTdStyle;\r\n r.classList.add( 'wptb-row' );\r\n if (currentTable.length > 0) {\r\n currentTableTd = currentTable[0].querySelector('td');\r\n }\r\n\r\n if (currentTableTd) {\r\n currentTdStyle = currentTableTd.getAttribute('style');\r\n }\r\n\r\n for (var i = 0; i < maxAmountOfCells; i++) {\r\n td = new WPTB_Cell(mark);\r\n if (currentTdStyle) {\r\n td.getDOMElement().setAttribute('style', currentTdStyle);\r\n }\r\n r.appendChild(td.getDOMElement());\r\n }\r\n aux = Array.from(array[0]);\r\n array.push(aux);\r\n drawTable(array);\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /* \r\n * This function adds a row before the current one.\r\n * Since the biggest factor of problem is a not-started but ongoing rowspan,\r\n * the most of the troubles is not here.\r\n */\r\n\r\n table.addRowBefore = function () {\r\n let cell = document.querySelector('.wptb-highlighted'),\r\n cellStyle = cell.getAttribute('style'),\r\n row = getCoords(cell)[0],\r\n cellNew;\r\n for( let i = row - 1; i >= 0; i-- ) {\r\n let rowChildren = table.rows[i].children;\r\n let rowChildrenLength = rowChildren.length;\r\n if( rowChildrenLength > 0 ) {\r\n for( let j = 0; j < rowChildrenLength; j++ ) {\r\n if( rowChildren[j].rowSpan == 1 ) {\r\n row = i;\r\n cellNew = true;\r\n break;\r\n }\r\n }\r\n }\r\n if ( cellNew ) {\r\n break;\r\n }\r\n }\r\n\r\n if (row === 0) {\r\n table.addRowToTheStart();\r\n } else {\r\n table.addRowAfter( row, cellStyle );\r\n }\r\n };\r\n\r\n /*\r\n * Well... by the name convention of the previous 3 functions,\r\n * it's pretty obvious that this functions attaches a new\r\n * row after highlighted cell row. The greatest obstacle it was\r\n * the possibility of a TR not having the exact amount of columns\r\n * occuped by actual node but rowspanned upper cells. For that purpose\r\n * it was created the function realTimeArray.\r\n * @see realTimeArray\r\n */\r\n\r\n table.addRowAfter = function ( row, cellStyle ) {\r\n let cellRowSpan,\r\n rowAfter,\r\n aux;\r\n \r\n if ( ( row == undefined || typeof row !== 'number' ) && cellStyle == undefined ) {\r\n let cell = document.querySelector('.wptb-highlighted');\r\n cellStyle = cell.getAttribute('style'),\r\n row = getCoords(cell)[0],\r\n cellRowSpan = cell.rowSpan,\r\n rowAfter = row + cellRowSpan - 1;\r\n } else {\r\n rowAfter = row;\r\n }\r\n \r\n \r\n let cellsColSpan = 0;\r\n if ( rowAfter < table.rows.length -1 ) {\r\n for( let i = 0; i <= rowAfter ; i++ ) {\r\n let tableRowsIChildren = table.rows[i].children,\r\n tableRIChildrenLength = tableRowsIChildren.length;\r\n if( tableRIChildrenLength > 0 ) {\r\n for( let j = 0; j < tableRIChildrenLength; j++ ) {\r\n let rowIRowSpan = tableRowsIChildren[j].rowSpan;\r\n\r\n if ( rowIRowSpan - 1 + i > rowAfter ) {\r\n tableRowsIChildren[j].rowSpan++;\r\n }\r\n }\r\n }\r\n }\r\n \r\n let rNext = table.rows[rowAfter + 1],\r\n rNextChildren = rNext.children,\r\n rNextChildrenLength = rNextChildren.length;\r\n \r\n if( rNextChildrenLength > 0 ) {\r\n for ( let i = 0; i < rNextChildrenLength; i++ ) {\r\n cellsColSpan += rNextChildren[i].colSpan;\r\n }\r\n }\r\n } else {\r\n cellsColSpan = array[0].length;\r\n }\r\n \r\n let r = table.insertRow( rowAfter + 1 );\r\n r.classList.add( 'wptb-row' );\r\n \r\n for ( j = 0; j < cellsColSpan; j++ ) {\r\n let td = new WPTB_Cell( mark );\r\n td.getDOMElement().setAttribute( 'style', cellStyle );\r\n r.appendChild( td.getDOMElement() );\r\n }\r\n\r\n aux = Array.from(array[0]);\r\n array.push(aux);\r\n drawTable(array);\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * This function checks the current selected cells\r\n * make a rectangular shape.\r\n * @param Array the abstract table.\r\n * @return false, if not making a rectangle, or\r\n *\tArray an array containing number of rows and columns, if selection makes a rectangle.\r\n */\r\n\r\n table.isSquare = function (a) {\r\n var rowStart = -1,\r\n columnStart = -1,\r\n rowEnd = -1,\r\n columnEnd = -1,\r\n height,\r\n width,\r\n itemsEstimate = 0,\r\n items = 0;\r\n\r\n for (var i = 0; i < a.length; i++) {\r\n for (var j = 0; j < a[i].length; j++) {\r\n if (a[i][j] == 1) {\r\n if ( j < columnStart || columnStart == -1 ) {\r\n columnStart = j;\r\n }\r\n if ( i < rowStart || rowStart == -1 ) {\r\n rowStart = i;\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n for (var i = a.length - 1; i > -1; i--) {\r\n for (var j = a[i].length - 1; j > -1; j--) {\r\n if (a[i][j] == 1) {\r\n if ( j > columnEnd ) {\r\n columnEnd = j;\r\n }\r\n if ( i > rowEnd ) {\r\n rowEnd = i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i = rowStart; i < rowEnd; i++) {\r\n for (var j = columnStart; j < columnEnd; j++) {\r\n if (a[i][j] == 0 || a[i][j] == undefined) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < a.length; i++) {\r\n for (var j = 0; j < a[i].length; j++) {\r\n if (a[i][j] == 1) {\r\n items++;\r\n }\r\n }\r\n }\r\n\r\n height = rowEnd - rowStart + 1;\r\n width = columnEnd - columnStart + 1;\r\n itemsEstimate = height * width;\r\n\r\n if (itemsEstimate !== items) {\r\n return false;\r\n }\r\n return [height, width];\r\n };\r\n\r\n /*\r\n * This function merges all selected cells.\r\n * Well, actually sets the colspan and rowspan of first \r\n * upper left cell in selection and deletes the another selected cells.\r\n */\r\n\r\n table.mergeCells = function () {\r\n var dimensions = table.isSquare(array),\r\n rowspan = dimensions[0],\r\n colspan = dimensions[1],\r\n first = document.querySelector('.wptb-highlighted'),\r\n tds = [].slice.call(document.getElementsByClassName('wptb-highlighted'), 1),\r\n tdsChildrenNew = [];\r\n\r\n for (let i = 0; i < tds.length; i++) {\r\n let tdsInternalElements = tds[i].getElementsByClassName('wptb-ph-element');\r\n if (tdsInternalElements.length > 0) {\r\n let tdsIntElemLength = tdsInternalElements.length;\r\n for (let j = 0; j < tdsIntElemLength; j++) {\r\n tdsChildrenNew.push(tdsInternalElements[j]);\r\n }\r\n }\r\n let p = tds[i].parentNode;\r\n p.removeChild(tds[i]);\r\n }\r\n if (tdsChildrenNew.length > 0) {\r\n for (let i = 0; i < tdsChildrenNew.length; i++) {\r\n first.appendChild(tdsChildrenNew[i]);\r\n }\r\n }\r\n\r\n first.colSpan = colspan;\r\n first.rowSpan = rowspan;\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * This functions makes the exact inverse as above.\r\n * It resets colspan and rowspan and appends \r\n * the same amount in cells to the table.\r\n * @bug\r\n */\r\n\r\n table.splitCell = function () {\r\n var cell = document.getElementsByClassName('wptb-highlighted')[0],\r\n rowspan = cell.rowSpan,\r\n colspan = cell.colSpan,\r\n cellStyles = cell.getAttribute('style'),\r\n row = getCoords(cell)[0],\r\n thisRow = table.rows[row],\r\n cellXIndex =cell.dataset.xIndex;\r\n \r\n cell.rowSpan = 1;\r\n cell.colSpan = 1;\r\n \r\n for (let i = 1; i < colspan; i++) {\r\n let td = new WPTB_Cell(mark);\r\n td.getDOMElement().setAttribute('style', cellStyles);\r\n if ( cell.nextSibling ) {\r\n thisRow.insertBefore( td.getDOMElement(), cell.nextSibling );\r\n } else {\r\n thisRow.appendChild( td.getDOMElement() );\r\n }\r\n \r\n }\r\n\r\n if (rowspan > 1) {\r\n for (let i = 1; i < rowspan; i++) {\r\n let rowChildInsertBefore = undefined,\r\n rowNext = table.rows[row + i],\r\n rowChildren = rowNext.children,\r\n rowChildrenLength = rowChildren.length;\r\n \r\n if ( rowChildrenLength > 0 ) {\r\n for ( let k = 0; k < rowChildrenLength; k++ ) {\r\n if ( Number( rowChildren[k].dataset.xIndex ) > Number( cellXIndex ) ) {\r\n rowChildInsertBefore = rowChildren[k];\r\n break;\r\n } \r\n }\r\n }\r\n for ( let j = 0; j < colspan; j++ ) {\r\n let td = new WPTB_Cell( mark );\r\n td.getDOMElement().setAttribute( 'style', cellStyles );\r\n if ( rowChildInsertBefore != undefined ) {\r\n rowNext.insertBefore( td.getDOMElement(), rowChildInsertBefore );\r\n } else {\r\n rowNext.appendChild( td.getDOMElement() );\r\n }\r\n }\r\n }\r\n }\r\n\r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n undoSelect();\r\n };\r\n\r\n /*\r\n * Searches for rowspanned cells up to row number meeting it.\r\n * @param number the number of row where the function\r\n * must search up to.\r\n */\r\n\r\n table.findRowspannedCells = function (row) {\r\n var array = [],\r\n difference;\r\n actualPoints = getActualPointsInRow(row);\r\n if (actualPoints === maxAmountOfCells) {\r\n return [];\r\n }\r\n difference = maxAmountOfCells - actualPoints;\r\n\r\n for (var i = row - 1; i >= 0 && difference; i--) {\r\n var tds = table.rows[i].getElementsByTagName('td');\r\n for (var i = 0; i < tds.length; i++) {\r\n if (tds[i].rowSpan > 1) {\r\n array.push(tds[i]);\r\n difference -= tds[i].colSpan;\r\n }\r\n }\r\n }\r\n return array;\r\n\r\n }\r\n\r\n /*\r\n * This function explores the table and adds \r\n * a cell for each lacking one for each row\r\n * to meet an even amount of cells.\r\n */\r\n\r\n table.addLackingCells = function () {\r\n var sumRows = [];\r\n for (var i = 0; i < table.rows.length; i++) {\r\n sumRows.push(0);\r\n }\r\n\r\n for (var i = 0; i < table.rows.length; i++) {\r\n var tds = table.rows[i].getElementsByTagName('td');\r\n for (var j = 0; j < tds.length; j++) {\r\n if (tds[j].rowSpan > 1) {\r\n for (var k = 1; k < tds[j].rowSpan; k++) {\r\n sumRows[i + k]++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < table.rows.length; i++) {\r\n var tds = table.rows[i].getElementsByTagName('td'),\r\n totalColspan = 0;\r\n for (var j = 0; j < tds.length; j++) {\r\n totalColspan += tds[j].colSpan;\r\n }\r\n totalColspan += sumRows[i];\r\n difference = maxAmountOfCells - totalColspan;\r\n for (var j = 0; j < difference; j++) {\r\n var td = new WPTB_Cell(mark);\r\n table.rows[i].appendChild(td.getDOMElement());\r\n //table.rows[i].insertBefore( td.getDOMElement(), rows[i].nextSibling );\r\n }\r\n }\r\n };\r\n\r\n /*\r\n * This function deletes the row of currently\r\n * selected cell. \r\n */\r\n\r\n table.deleteRow = function () {\r\n let cell = document.querySelector('.wptb-highlighted'),\r\n cellStyles = cell.getAttribute('style'),\r\n rowspan = cell.rowSpan,\r\n row = getCoords(cell)[0],\r\n thisRow,\r\n aux;\r\n \r\n if ( rowspan == undefined ) rowspan = 1;\r\n \r\n for ( let i = 0; i < rowspan; i++ ) {\r\n thisRow = table.rows[row];\r\n let thisRowChildren = thisRow.children,\r\n nextRow = table.rows[row + 1],\r\n nextRowChildren,\r\n nextRowChildrenLength,\r\n tdArr = [];\r\n\r\n if( nextRow != undefined ) {\r\n nextRowChildren = nextRow.children;\r\n nextRowChildrenLength = nextRowChildren.length;\r\n for (let j = 0; j < thisRowChildren.length; j++) {\r\n if ( thisRowChildren[j].rowSpan > 1 ) {\r\n let td = new WPTB_Cell(mark);\r\n td.getDOMElement().setAttribute('style', cellStyles);\r\n td.getDOMElement().colSpan = thisRowChildren[j].colSpan;\r\n td.getDOMElement().rowSpan = thisRowChildren[j].rowSpan - 1;\r\n\r\n let nextRowChildrenK = undefined;\r\n for ( let k = 0; k < nextRowChildrenLength; k++ ) {\r\n if ( Number( nextRowChildren[k].dataset.xIndex ) > Number( thisRowChildren[j].dataset.xIndex ) ) {\r\n nextRowChildrenK = nextRowChildren[k];\r\n break;\r\n } \r\n }\r\n\r\n if ( nextRowChildrenK ) {\r\n tdArr.push( [td, nextRowChildrenK] );\r\n } else {\r\n tdArr.push( [td] );\r\n }\r\n }\r\n }\r\n\r\n if ( tdArr.length > 0 ) {\r\n for ( let k = 0; k < tdArr.length; k++ ) {\r\n if ( tdArr[k][1] != undefined ) {\r\n nextRow.insertBefore( tdArr[k][0].getDOMElement(), tdArr[k][1] );\r\n } else {\r\n nextRow.appendChild( tdArr[k][0].getDOMElement() );\r\n }\r\n }\r\n }\r\n }\r\n \r\n let tableRows = table.rows;\r\n if ( tableRows.length > 0 ) {\r\n for ( let j = 0; j < row; j++ ) {\r\n let jRowChildren = tableRows[j].children;\r\n if ( jRowChildren.length > 0 ) {\r\n for ( let x = 0; x < jRowChildren.length; x++ ) {\r\n if ( jRowChildren[x].rowSpan - 1 >= row - j ) {\r\n jRowChildren[x].rowSpan--;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n aux = Array.from(array[0]);\r\n array.pop(aux);\r\n drawTable(array);\r\n table.getElementsByTagName('tbody')[0].removeChild(table.rows[row]);\r\n \r\n if( table.rows.length == 0 ) {\r\n table.toggleTableEditMode();\r\n wptbTableSetup.innerHTML = '';\r\n WPTB_Helper.settingsPanelClear();\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\r\n }\r\n \r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n undoSelect();\r\n }\r\n\r\n /*\r\n * This function deletes the column of currently\r\n * selected cell. Again, this is way more complicated than\r\n * delete row case.\r\n */\r\n\r\n table.deleteColumn = function () {\r\n let cell = document.querySelector('.wptb-highlighted'),\r\n cellXIndex = cell.dataset.xIndex,\r\n colspan = cell.colSpan;\r\n \r\n for ( let i = 0; i < colspan; i++ ) {\r\n for ( let j = 0; j < table.rows.length; j++ ) {\r\n let rowChildren = table.rows[j].children;\r\n let rowChildrenLength = rowChildren.length;\r\n if( rowChildrenLength > 0 ) {\r\n for ( let k = rowChildrenLength - 1; k >= 0; k-- ) {\r\n if ( Number( rowChildren[k].dataset.xIndex ) == Number( cellXIndex ) ) {\r\n if ( rowChildren[k].colSpan > 1 ) {\r\n rowChildren[k].colSpan--;\r\n } else {\r\n table.rows[j].removeChild( rowChildren[k] );\r\n }\r\n break;\r\n } else if( Number( rowChildren[k].dataset.xIndex ) < Number( cellXIndex ) && \r\n Number( rowChildren[k].dataset.xIndex ) + \r\n Number( rowChildren[k].colSpan -1 ) >= cellXIndex ) {\r\n if ( rowChildren[k].colSpan > 1 ) {\r\n rowChildren[k].colSpan--;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n \r\n for ( let j = 0; j < table.rows.length; j++ ) {\r\n if (array[j] != undefined)\r\n array[j].pop();\r\n }\r\n \r\n maxAmountOfCells--;\r\n \r\n if( table.querySelectorAll( 'td' ).length == 0 ) {\r\n table.toggleTableEditMode();\r\n wptbTableSetup.innerHTML = '';\r\n WPTB_Helper.settingsPanelClear();\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\r\n }\r\n \r\n table.recalculateIndexes();\r\n WPTB_Helper.dataTitleColumnSet( table );\r\n }\r\n undoSelect();\r\n };\r\n\r\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'none';\r\n\r\n array = fillTableArray();\r\n\r\n undoSelect();\r\n drawTable(array);\r\n\r\n wptbTableSetup.appendChild(table);\r\n //if (columns || rows) {\r\n table.recalculateIndexes( true );\r\n //}\r\n\r\n WPTB_LeftPanel();\r\n \r\n // this code gets the ID of the active element in the toolbar \r\n // and stores it in the data attribute of the common container element \"wpcd_fixed_toolbar\"\r\n// let wptbPhElement = document.getElementsByClassName( 'wptb-ph-element' );\r\n// let wpcdFixedToolbar = document.getElementById( 'wpcd_fixed_toolbar' );\r\n// for ( let i = 0; i < wptbPhElement.length; i++ ) {\r\n// wptbPhElement[i].addEventListener( 'click', function( e ) {\r\n// let wptbToolbar = document.getElementById( 'wpcd_fixed_toolbar' ).children;\r\n// for ( let j = 0; j < wptbToolbar.length; j++ ) {\r\n// let elementStyles = window.getComputedStyle( wptbToolbar[j], 'null' );\r\n// if( elementStyles.getPropertyValue( 'display' ) == 'block' ) {\r\n// wpcdFixedToolbar.dataset.toolbarActiveId = wptbToolbar[j].getAttribute( 'id' );\r\n// }\r\n// }\r\n// }, false );\r\n// }\r\n \r\n// let wptbPanelLeft = document.getElementsByClassName( 'wptb-panel-left' );\r\n// if( wptbPanelLeft.length > 0 ) {\r\n// wptbPanelLeft[0].addEventListener( 'click', function( e ) {\r\n// let toolbarActiveElementId = wpcdFixedToolbar.dataset.toolbarActiveId;\r\n// document.getElementById( toolbarActiveElementId ).style.display = '';\r\n// }, false );\r\n// }\r\n \r\n// let body = document.getElementsByTagName( 'body' );\r\n// if( body.length > 0 ) {\r\n// body[0].addEventListener( 'click', function( e ) {\r\n// if ( e.target.classList.contains( 'wptb-panel-left' ) || WPTB_Helper.findAncestor( e.target, 'wptb-panel-left' ) ) {\r\n// let toolbarActiveElementId = wpcdFixedToolbar.dataset.toolbarActiveId;\r\n// document.getElementById( toolbarActiveElementId ).style.display = '';\r\n// }\r\n// }, false );\r\n// }\r\n};","var WPTB_Text = function ( text , DOMElementProt ) {\r\n let DOMElement = document.createElement('div'),\r\n elText2 = document.createElement('div'),\r\n elP = document.createElement('p'),\r\n kindIndexProt = undefined,\r\n copy = false;\r\n \r\n DOMElement.classList.add( 'wptb-text-container' );\r\n\r\n elP.innerHTML = text != undefined ? text : 'Text';\r\n elText2.appendChild(elP);\r\n DOMElement.appendChild(elText2);\r\n if ( DOMElementProt ) {\r\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\r\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\r\n kindIndexProt = wptbElementMutch[1];\r\n copy = true;\r\n };\r\n\r\n let attributes = [...DOMElementProt.attributes];\r\n for( let i = 0; i < attributes.length; i++ ) {\r\n DOMElement.setAttribute(attributes[i].name, attributes[i].value);\r\n }\r\n } \r\n\r\n this.kind = 'text';\r\n this.getDOMElement = function () {\r\n return DOMElement;\r\n };\r\n applyGenericItemSettings( this, kindIndexProt, copy );\r\n\r\n return this;\r\n};"]}
1
+ {"version":3,"sources":["WPTB_Builder.js","WPTB_Button.js","WPTB_Cell.js","WPTB_DropHandle.js","WPTB_ElementCounters.js","WPTB_ElementOptions.js","WPTB_Helper.js","WPTB_Image.js","WPTB_Initializer.js","WPTB_LeftPanel.js","WPTB_List.js","WPTB_ListItem.js","WPTB_MultipleSelect.js","WPTB_Parser.js","WPTB_Parser2.js","WPTB_Settings.js","WPTB_Space.js","WPTB_Stringifier.js","WPTB_Stringifier2.js","WPTB_Table.js","WPTB_Text.js","WPTB_innerElementSet.js","applyGenericItemSettings.js","wptb-builder.js"],"names":["WPTB_Builder","table_id","WPTB_Helper","detectMode","http","XMLHttpRequest","urlSet","ajaxurl","open","setRequestHeader","onreadystatechange","d","readyState","status","ans","JSON","parse","responseText","document","getElementById","value","getElementsByClassName","style","display","wptbTableSetupEl","appendChild","WPTB_Parser","WPTB_Table","WPTB_LeftPanel","WPTB_Settings","send","counter","ElementCounters","select","MultipleSelect","initializer","WPTB_Initializer","settings","addEventListener","WPTB_Button","text","DOMElementProt","DOMElement","createElement","elButton","el_B","el_BDiv","kindIndexProt","undefined","copy","classList","add","innerHTML","wptbElementMutch","className","match","Array","isArray","attributesContainer","attributes","length","i","setAttribute","name","wptbButtonWrapper","querySelector","wptbButtonWrapAttributes","wptbButton","wptbButtonAttributes","kind","getDOMElement","applyGenericItemSettings","WPTB_Cell","callback","highlightRow","td","parentRow","parentNode","columnCount","parseInt","tds","getElementsByTagName","remove","classToAdd","ttd","highlightColumn","index","rowCount","table","tr","padding","jQuery","val","innerBorderWidth","border","draggable","onclick","WPTB_innerElementSet","wptbPhElement","wptbSpaceBetween","j","WPTB_Space","wptbElementTypeClass","wptbTypeElementArr","split","wptbListItems","WPTB_ListItem","setCoords","y","x","el","dataset","yIndex","xIndex","getCoords","coords","appendElement","node","getCellDimensions","tdStyleObj","window","getComputedStyle","tdPaddingLeft","getPropertyValue","tdPaddingRight","tdBorderLeftWidth","tdBorderRightWidth","tdPaddingTop","tdPaddingBottom","tdBorderTopWidth","tdBorderBottomWidth","width","parseFloat","offsetWidth","height","offsetHeight","WPTB_DropHandle","thisElem","e","newElementProxy","includes","WPTB_List","WPTB_Image","WPTB_Text","wptbDropHandle","wptbDropBorderMarker","wptbDropBorderMarkerTop","wptbDropBorderMarkerRight","wptbDropBorderMarkerBottom","wptbDropBorderMarkerLeft","body","ondragenter","ondragover","preventDefault","ondragleave","ondrop","element","dataTransfer","getData","getDOMParentElement","nodeName","toLowerCase","innerElement","insertBefore","innerElementNext","nextSibling","thisRow","contains","findAncestor","dataTitleColumnSet","wptbContainer","onscroll","localName","indics","types","notDragEnter","infArr","coordinatesElement","getBoundingClientRect","left","Number","top","indexOf","elementDrag","offsetY","layerY","bottom","priv","increment","key","nextIndex","WPTB_ElementOptions","elemIdClass","prop","cloneNode","properties","affectedEl","wptbButtonA","wptbSize","b","buttonAlignment","justifyContent","buttonAlignmentSelect","selectOption","selectOptionVal","selected","buttonHref","getAttribute","buttonLinkTarget","buttonId","buttonHrefInput","buttonLinkTargetInput","buttonLinkTargetInputId","buttonLinkTargetInputLabel","buttotIdInput","checked","buttonTextColor","color","buttonColor","backgroundColor","buttonTextColorInput","buttonBackgroundColorInput","rgbToHex","elementsA","a","aTextAlign","textAlign","imageAlignmentSelect","imageLinkHref","inputImageLink","imageLinkTarget","imageLinkTargetInput","imageLinkTargetInputId","imageLinkTargetInputLabel","img","imgWidth","imageWidthInputRange","imageWidthInputNumber","imgAlternativeText","imageAlternativeTextInput","elementFontSize","fontSize","elementTextColor","textFontSizeInputRange","textFontSizeInputNumber","textColorInput","elementList","elementListColor","listColorInput","elementListItem","querySelectorAll","listItemP","listItemPClasses","elementListClassSelect","listIconSelectLabel","nodeType","listIconSelectLabelId","elementListStyleTypeSelect","elementListItemContent","listItemPTextAlignArr","p","push","listItemPTextAlignLeftCount","listItemPTextAlignCenterCount","listItemPTextAlignRightCount","elementListAlignmentSelect","maxListItemTAlLeftC","Math","max","optionsClass","children","childNodes","buttons","size","n_Class","type","num","optionControls","wpColorPicker","change","event","ui","parent","target","classe","ps","number","toString","slider","oninput","onchange","src","alt","href","linkHttpCheckChange","rel","removeAttribute","jc","id","listItems","parentNodeSettingItem","listItem","hexToRgb","hex","result","exec","rgb","slice","getDragImageCustom","hostName","location","protocol","hostname","dragImagesArr","image","button","list","listItemsRecalculateIndex","ulElem","par","listStyleTypeIndex","listItemsTinyMceInit","tinyMCE","init","inline","plugins","dialog_type","theme","menubar","fixed_toolbar_container","paste_as_text","toolbar","setup","ed","on","article","keyCode","duplicate","firstChild","innerText","pText","replace","trim","selectedText","getSelectionText","init_instance_callback","editor","currentEditor","totalWidth","scrollTop","bodyElement","position","right","buttonsTinyMceInit","link","linkArr","linkClean","rows","rowHead","computedStyleRowHead","rowHeadChildren","contentsForHeader","tdElements","textContent","thisRowChildren","wptbTitleColumn","wptbTitleColumnFontSize","wptbTitleColumnColor","wptbTitleBackgroundColor","wptbTitleAlign","cls","parentElement","txt","getSelection","selection","createRange","settingsPanelClear","wpColorPickerClear","inputId","input","wpPickerContainer","removeChild","newInput","url","regex","RegExp","results","decodeURIComponent","getColumnWidth","cell","xIndexes","cellWidth","getRowHeight","yIndexes","cellHeight","elImage","anchor","file_frame","wp","media","frames","title","multiple","attachment","state","get","first","toJSON","MIN_COLUMNS","MIN_ROWS","MAX_COLUMNS","MAX_ROWS","tableGenerator","columnsDecrementButton","columnsIncrementButton","rowsDecrementButton","rowsIncrementButton","columnsInput","rowsInput","columns","wptbElementButtons","wptbTdBgColorSavedSet","trNumber","tableRows","trBackgroundColor","wptbEvenRowBg","clear","tableHeader","tableTopRowAsHeadSavedSet","wptbTopRowAsHeader","tableBorderColorWidthSavedSet","tableBorderColor","borderColor","tableBorderColorInput","tableBorderWidth","borderWidth","wptbTableBorderWidthSlider","wptbTableBorderWidthNumber","tableTd","applyInnerBorder","innerBorderCheckInput","wptbApplyInnerBorder","wptbTableInnerBorderSlider","wptbTableInnerBorderNumber","tableCells","tableInnerborderNumber","addInnerBorderSize","borderStyle","addCellPadding","addInnerBorder","styles","wptbPreviewTable","marginBottom","addBorderSize","cellPaddingSavedSet","wptbTableCellSlider","wptbTableCellNumber","numberImputSize","wptbNumberInputs","maxCount","maxValue","onkeydown","thisValue","String","substring","onkeyup","wptbTableBorderNumber","wptbTextfontSizeNumber","wptbImageWidthNumber","wptbTableColumnWidthNumber","wptbTableRowHeightNumber","tdDefaultWidth","wptbInnerBorderCheck","tableBorderColorSetArea","addColumnWidth","highlighted","addRowHeight","createMobileHeadForTable","thisEvent","ondragstart","setData","wptbElement","toggleTableEditMode","addRowToTheEnd","addRowToTheStart","addRowBefore","addRowAfter","addColumnEnd","addColumnStart","addColumnBefore","addColumnAfter","deleteColumn","deleteRow","mergeCells","splitCell","wptbBuilderPanel","wpcdFixedToolbar","hasAttribute","innerElements","el_L","item","wptbListItemReturn","divcontent","styleDot","listItemKeyListener","onmouseenter","btnDelete","btnCopy","actions","previous","action","content","html","setTimeout","append","onmouseleave","iter","selectedCells","multipleCellMode","activateMultipleSelectMode","deactivateMultipleSelectMode","isActivated","pushSelectedCell","flushSelectedCells","getFirst","minXIndex","minYIndex","getLast","maxXIndex","maxYIndex","last","removeAllButFirst","code","div","columnTitleMobile","WPTB_Parser2","elementHtml","createTextNode","tagName","elems","effectAllowed","ondragend","shortcodePopupWindow","bar","wptb_admin_object","t","messagingArea","WPTB_Stringifier","outerHTML","messagingAreaText","params","security_code","rs","wptbId","stringify","data","elSpaceBetween","spaceBetween","stopPropagation","t_space","spaceParent","alert","codeMain","tableColumns","minWidth","maxWidth","mceContentBodys","k","dataMceStyle","contentEditable","spellCheck","mceIds","wptbActions","wptbActionsLength","columnNameDivContainer","columnNameDiv","WPTB_Stringifier2","start","nodeValue","int_elem_arr","attributes_list","internal_elements","inter_elem","array","wptbTableSetup","row","maxAmountOfCells","maxAmountOfRows","mark","rowSpan","cs","colSpan","markedCells","noCells","singleCells","multipleCells","cellSettings","column","cellHighlighted","wptbTableColumnWidthSlider","tableColumnWidthAutoFixedCheckbox","wptbFixedWidth","wptbTableRowHeightSlider","tableRowHeightAutoFixedCheckbox","wptbFixedHeight","isSquare","realTimeArray","carried","cols","matriz","items","justAssigned","amount","carriedRowspans","cellsBuffer","cellPointer","xPosition","stepsToMove","celda","drawTable","string","undoSelect","fillTableArray","colspansSums","cells","colspanSumInRow","apply","getActualPointsInRow","points","search","skipInCols","reconstraction","insertRow","wptb_preview_table","cellModeBackground","leftScrollPanelCurtain","leftScrollPanelCellSettings","wptbPreviewTableTds","recalculateIndexes","trs","maxCols","maxColsFull","tdsArr","jMainIter","z","cleaner","dataXIndex","tableTdsFor","colspan","widthIsSet","arrayTdsFromPreviousRow","tableTdsSumMaxWidth","tableTdsSumMaxWidthFixed","tableTdsSumMaxWidthAuto","wptbTableSetupWidth","arrayCellsWidthFixedHelper","arrayCellsWidthAutoHelper","tdPaddingCommon","tableTdBorderCommonWidth","cssForTdsWidthAuto","wptbCssTdAutoWidth","tableTdBorderLeftWidth","tableTdBorderRightWidth","CellsWidthAutoCount","tableFullStyleObj","borderLeftWidth","borderRightWidth","tableBorderCommon","wptbTableTdsSumMaxWidth","wptbCellsWidthAutoCount","mergingСellsHorizontally","wptbFixedWidthSize","styleElementCreate","tableTdWidthAuto","tableTdsWidthAutoCommon","head","cssForTdsWidthAutoOld","dataYIndex","rowspan","heightIsSet","arrayTdsPrevious","tableColumnHeightAutoFixedCheckbox","mergingCellsVertically","forBreak","currentTable","currentTableTd","currentTdStyle","firstCell","c_pos","cellStyle","pos","pendingInsertion","bro","currentCell","l","r","aux","from","cellNew","rowChildren","rowChildrenLength","cellRowSpan","rowAfter","cellsColSpan","tableRowsIChildren","tableRIChildrenLength","rowIRowSpan","rNext","rNextChildren","rNextChildrenLength","rowStart","columnStart","rowEnd","columnEnd","itemsEstimate","dimensions","call","tdsChildrenNew","tdsInternalElements","tdsIntElemLength","firstWidth","firstDataFixedWidth","firstHeight","firstDataFixedHeight","cellStyles","cellXIndex","rowChildInsertBefore","rowNext","findRowspannedCells","difference","actualPoints","addLackingCells","sumRows","totalColspan","nextRow","nextRowChildren","nextRowChildrenLength","tdArr","nextRowChildrenK","jRowChildren","pop","onresize","elText2","elP","classId","onmouseover","wptbElements","elementIndexesArr","elementIndexMax","btnMove","act","temp","srcList","opacity","setDragImage","observer","MutationObserver","mutations","config","attributeFilter","observe","node_wptb_element_kind_num"],"mappings":"AAAA,CAAC,YAAY;AACT,QAAIA,eAAe,SAAfA,YAAe,GAAY;AAC3B,YAAIC,WAAWC,YAAYC,UAAZ,EAAf;AACA,YAAKF,QAAL,EAAgB;AACZ,gBAAIG,OAAO,IAAIC,cAAJ,EAAX;AAAA,gBACIC,SAASC,UAAU,mBAAV,GAAgC,MAAhC,GAAyCN,QADtD;AAEAG,iBAAKI,IAAL,CAAU,KAAV,EAAiBF,MAAjB,EAAyB,IAAzB;AACAF,iBAAKK,gBAAL,CAAsB,cAAtB,EAAsC,mCAAtC;AACAL,iBAAKM,kBAAL,GAA0B,UAAUC,CAAV,EAAa;AACnC,oBAAI,KAAKC,UAAL,IAAmB,CAAnB,IAAwB,KAAKC,MAAL,IAAe,GAA3C,EAAgD;AAC5C,wBAAIC,MAAMC,KAAKC,KAAL,CAAWZ,KAAKa,YAAhB,CAAV;AACAC,6BAASC,cAAT,CAAwB,iBAAxB,EAA2CC,KAA3C,GAAmDN,IAAI,CAAJ,CAAnD;;AAEA,wBAAIA,IAAI,CAAJ,CAAJ,EAAa;AACTI,iCAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,MAA3E;AACA,4BAAIC,mBAAmBN,SAASG,sBAAT,CAAgC,kBAAhC,EAAoD,CAApD,CAAvB;AACAG,yCAAiBC,WAAjB,CAA8BC,YAAaZ,IAAI,CAAJ,CAAb,CAA9B;AACAa;AACAC;AACAC;AACH,qBAPD,MAOO;AACHX,iCAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,OAA3E;AACH;;AAED;AACH;AACJ,aAlBD;AAmBAnB,iBAAK0B,IAAL,CAAU,IAAV;AACH,SAzBD,MAyBO;AACHZ,qBAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,OAA3E;AACH;AACDL,iBAASa,OAAT,GAAmB,IAAIC,eAAJ,EAAnB;AACAd,iBAASe,MAAT,GAAkB,IAAIC,cAAJ,EAAlB;;AAEA,YAAIC,cAAcC,kBAAlB;AACAC,mBAAWR,eAAX;AACH,KAnCD;;AAqCAX,aAASoB,gBAAT,CAA0B,kBAA1B,EAA8CtC,YAA9C;AACH,CAvCD;;;ACAA,IAAIuC,cAAc,SAAdA,WAAc,CAAUC,IAAV,EAAgBC,cAAhB,EAAiC;;AAE/C,QAAIC,aAAaxB,SAASyB,aAAT,CAAuB,KAAvB,CAAjB;AAAA,QACIC,WAAW1B,SAASyB,aAAT,CAAuB,KAAvB,CADf;AAAA,QAEIE,OAAO3B,SAASyB,aAAT,CAAuB,GAAvB,CAFX;AAAA,QAGIG,UAAU5B,SAASyB,aAAT,CAAwB,KAAxB,CAHd;AAAA,QAIII,gBAAgBC,SAJpB;AAAA,QAKIC,OAAO,KALX;;AAOAP,eAAWQ,SAAX,CAAqBC,GAArB,CAAyB,uBAAzB,EAAkD,aAAlD,EAAiE,OAAjE;AACAP,aAASM,SAAT,CAAmBC,GAAnB,CAAuB,qBAAvB;AACAL,YAAQI,SAAR,CAAkBC,GAAlB,CAAsB,aAAtB;AACAL,YAAQM,SAAR,GAAoBZ,QAAQQ,SAAR,GAAoBR,IAApB,GAA2B,aAA/C;;AAEA;AACA,QAAKC,cAAL,EAAsB;AAClB,YAAIY,mBAAmBZ,eAAea,SAAf,CAAyBC,KAAzB,CAAgC,0BAAhC,CAAvB;AACA,YAAKF,oBAAoBG,MAAMC,OAAN,CAAeJ,gBAAf,CAAzB,EAA6D;AACzDN,4BAAgBM,iBAAiB,CAAjB,CAAhB;AACAJ,mBAAO,IAAP;AACH;AACD,YAAIS,mDAA0BjB,eAAekB,UAAzC,EAAJ;AACA,YAAKD,oBAAoBE,MAApB,GAA6B,CAAlC,EAAsC;AAClC,iBAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIH,oBAAoBE,MAAxC,EAAgDC,GAAhD,EAAsD;AAClDnB,2BAAWoB,YAAX,CAAwBJ,oBAAoBG,CAApB,EAAuBE,IAA/C,EAAqDL,oBAAoBG,CAApB,EAAuBzC,KAA5E;AACH;AACJ;;AAED,YAAI4C,oBAAoBvB,eAAewB,aAAf,CAA8B,sBAA9B,CAAxB;AACA,YAAKD,iBAAL,EAAyB;AACrB,gBAAIE,wDAA+BF,kBAAkBL,UAAjD,EAAJ;AACA,gBAAKO,yBAAyBN,MAAzB,GAAkC,CAAvC,EAA2C;AACvC,qBAAK,IAAIC,KAAI,CAAb,EAAgBA,KAAIK,yBAAyBN,MAA7C,EAAqDC,IAArD,EAA2D;AACvD,wBAAKK,yBAAyBL,EAAzB,EAA4BE,IAA5B,IAAoC,OAAzC,EAAkD;AAC9CnB,iCAASkB,YAAT,CAAuBI,yBAAyBL,EAAzB,EAA4BE,IAAnD,EAAyDG,yBAAyBL,EAAzB,EAA4BzC,KAArF;AACH;AACJ;AACJ;AACJ;;AAED,YAAI+C,aAAa1B,eAAewB,aAAf,CAA8B,GAA9B,CAAjB;AACA,YAAKE,UAAL,EAAkB;AACd,gBAAIC,oDAA2BD,WAAWR,UAAtC,EAAJ;AACA,gBAAKS,qBAAqBR,MAArB,GAA8B,CAAnC,EAAuC;AACnC,qBAAK,IAAIC,MAAI,CAAb,EAAgBA,MAAIO,qBAAqBR,MAAzC,EAAiDC,KAAjD,EAAuD;AACnD,wBAAKO,qBAAqBP,GAArB,EAAwBE,IAAxB,IAAgC,OAAhC,IACGK,qBAAqBP,GAArB,EAAwBE,IAAxB,IAAgC,MADnC,IAEGK,qBAAqBP,GAArB,EAAwBE,IAAxB,IAAgC,QAFxC,EAEmD;AAC/ClB,6BAAKiB,YAAL,CAAmBM,qBAAqBP,GAArB,EAAwBE,IAA3C,EAAiDK,qBAAqBP,GAArB,EAAwBzC,KAAzE;AACH;AACJ;AACJ;AACJ;AACJ;;AAEDwB,aAASnB,WAAT,CAAqBoB,IAArB;AACAA,SAAKpB,WAAL,CAAkBqB,OAAlB;AACAJ,eAAWjB,WAAX,CAAuBmB,QAAvB;;AAIA,SAAKyB,IAAL,GAAY,QAAZ;;AAEA,SAAKC,aAAL,GAAqB,YAAY;AACzB,eAAO5B,UAAP;AACP,KAFD;;AAIA6B,6BAA0B,IAA1B,EAAgCxB,aAAhC,EAA+CE,IAA/C;;AAEA,WAAO,IAAP;AACH,CAtED;ACAA,IAAIuB,YAAY,SAAZA,SAAY,CAAUC,QAAV,EAAoB/B,UAApB,EAAgC;;AAE5C,aAASgC,YAAT,CAAsBC,EAAtB,EAA0B;AACtB,YAAIC,YAAYD,GAAGE,UAAnB;AAAA,YACIC,cAAcC,SAAS7D,SAASC,cAAT,CAAwB,qBAAxB,EAA+CC,KAAxD,CADlB;AAAA,YAEI4D,MAAM9D,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,EAAyD4D,oBAAzD,CAA8E,IAA9E,CAFV;AAGA,aAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAImB,IAAIpB,MAAxB,EAAgCC,GAAhC,EAAqC;AACjCmB,gBAAInB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAwB,4BAAxB,EAAsD,2BAAtD,EAAmF,4BAAnF,EAAiH,+BAAjH,EAAkJ,8BAAlJ,EAAkL,+BAAlL;AACH;AACD,aAAK,IAAIrB,IAAI,CAAb,EAAgBA,IAAIiB,WAApB,EAAiCjB,GAAjC,EAAsC;;AAElC,gBAAIsB,aAAatB,KAAK,CAAL,GAAS,4BAAT,GAAwCA,KAAKiB,cAAc,CAAnB,GAAuB,2BAAvB,GAAqD,4BAA9G;AACA,gBAAIM,MAAMR,UAAUK,oBAAV,CAA+B,IAA/B,EAAqCpB,CAArC,CAAV;AACA,gBAAIuB,QAAQT,EAAZ,EAAgB;AACZS,oBAAIlC,SAAJ,CAAcC,GAAd,CAAkBgC,UAAlB;AACH;AACJ;AACJ;;AAED,aAASE,eAAT,CAAyBV,EAAzB,EAA6B;;AAEzB,YAAIW,KAAJ;AAAA,YACIV,YAAYD,GAAGE,UADnB;AAEAC,sBAAcC,SAAS7D,SAASC,cAAT,CAAwB,qBAAxB,EAA+CC,KAAxD,CAAd,EAA8EmE,WAAWR,SAAS7D,SAASC,cAAT,CAAwB,kBAAxB,EAA4CC,KAArD,CAAzF,EAAsJoE,QAAQtE,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,CAA9J;AACA,aAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAIiB,WAApB,EAAiCjB,GAAjC,EAAsC;AAClC,gBAAIe,UAAUK,oBAAV,CAA+B,IAA/B,EAAqCpB,CAArC,MAA4Cc,EAAhD,EAAoD;AAChDW,wBAAQzB,CAAR;AACA;AACH;AACJ;;AAED,aAAK,IAAIA,IAAI,CAAb,EAAgBA,IAAI0B,QAApB,EAA8B1B,GAA9B,EAAmC;AAC/B,gBAAIsB,aAAatB,KAAK,CAAL,GAAS,+BAAT,GAA2CA,KAAK0B,WAAW,CAAhB,GAAoB,8BAApB,GAAqD,+BAAjH;AACA,gBAAIE,KAAKD,MAAMP,oBAAN,CAA2B,IAA3B,EAAiCpB,CAAjC,CAAT;AACA,gBAAI4B,GAAGR,oBAAH,CAAwB,IAAxB,EAA8BK,KAA9B,MAAyCX,EAA7C,EAAiD;AAC7Cc,mBAAGR,oBAAH,CAAwB,IAAxB,EAA8BK,KAA9B,EAAqCpC,SAArC,CAA+CC,GAA/C,CAAmDgC,UAAnD;AACH;AACJ;AACJ;;AAED,QAAI,CAAEzC,UAAN,EAAmB;AACfA,qBAAaxB,SAASyB,aAAT,CAAuB,IAAvB,CAAb;;AAEAD,mBAAWpB,KAAX,CAAiBoE,OAAjB,GAA2BC,OAAO,4BAAP,EAAqCC,GAArC,KAA6C,IAAxE;;AAEA,YAAIC,mBAAmBF,OAAO,iCAAP,EAA0CC,GAA1C,EAAvB;;AAEA,YAAIC,oBAAoB,EAApB,IAA0Bd,SAASc,gBAAT,KAA8B,CAA5D,EAA+D;AAC3DnD,uBAAWpB,KAAX,CAAiBwE,MAAjB,GAA0BD,mBAAmB,WAAnB,GAAiCF,OAAO,0BAAP,EAAmCC,GAAnC,EAA3D;AACH;;AAEDlD,mBAAWQ,SAAX,CAAqBC,GAArB,CAAyB,gBAAzB,EAA2C,WAA3C;AACH;;AAEDT,eAAWqD,SAAX,GAAuB,KAAvB;AACA,QAAKtB,QAAL,EAAgB;AACZ/B,mBAAWsD,OAAX,GAAqBvB,QAArB;AACH;;AAEDwB,yBAAsBvD,UAAtB;;AAEA,QAAIwD,gBAAgBxD,WAAWrB,sBAAX,CAAmC,iBAAnC,CAApB;;AAEA,QAAK6E,cAActC,MAAd,GAAuB,CAA5B,EAAgC;AAAA,mCACnBC,CADmB;;AAGxB,gBAAIsC,mBAAmBzD,WAAWrB,sBAAX,CAAmC,oBAAnC,CAAvB;;AAEA,gBAAK8E,iBAAiBvC,MAAjB,GAA0B,CAA/B,EAAmC;AAC/B,qBAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAID,iBAAiBvC,MAArC,EAA6CwC,GAA7C,EAAmD;AAC/CC,+BAAYF,iBAAiBC,CAAjB,CAAZ;AACH;AACJ;;AAEDF,0BAAcrC,CAAd,EAAiBS,aAAjB,GAAiC,YAAW;AACxC,uBAAO4B,cAAcrC,CAAd,CAAP;AACH,aAFD;;AAIAoC,iCAAsBC,cAAcrC,CAAd,CAAtB;;AAEA,gBAAIyC,uBAAuBJ,cAAcrC,CAAd,EAAiBP,SAAjB,CAA2BC,KAA3B,CAAkC,0BAAlC,CAA3B;AACA,gBAAI+C,wBAAwB9C,MAAMC,OAAN,CAAe6C,oBAAf,CAA5B,EAAoE;AAChE,oBAAIC,qBAAqBD,qBAAqB,CAArB,EAAwBE,KAAxB,CAA+B,GAA/B,CAAzB;AACAN,8BAAcrC,CAAd,EAAiBQ,IAAjB,GAAwBkC,mBAAmB,CAAnB,CAAxB;AACAhC,yCAA0B2B,cAAcrC,CAAd,CAA1B,EAA4CyC,qBAAqB,CAArB,CAA5C;AACA,oBAAKJ,cAAcrC,CAAd,EAAiBQ,IAAjB,IAAyB,MAA9B,EAAuC;AACnC,wBAAIoC,gBAAgBP,cAAcrC,CAAd,EAAiBoB,oBAAjB,CAAuC,IAAvC,CAApB;AACA,wBAAIwB,cAAc7C,MAAd,GAAuB,CAA3B,EAA+B;AAC3B,6BAAM,IAAIC,KAAI,CAAd,EAAiBA,KAAI4C,cAAc7C,MAAnC,EAA2CC,IAA3C,EAAiD;AAC7C6C,0CAAe1D,SAAf,EAA0ByD,cAAc5C,EAAd,CAA1B;AACH;AACJ;AACJ;AACJ;AA9BuB;;AAC5B,aAAK,IAAIA,IAAI,CAAb,EAAgBA,IAAIqC,cAActC,MAAlC,EAA0CC,GAA1C,EAAgD;AAAA,kBAAvCA,CAAuC;AA8B/C;AACJ;;AAED,SAAKS,aAAL,GAAqB,YAAY;AAC7B,eAAO5B,UAAP;AACH,KAFD;;AAIA,SAAKiE,SAAL,GAAiB,UAAUC,CAAV,EAAaC,CAAb,EAAgB;AAC7B,YAAIC,KAAK,KAAKxC,aAAL,EAAT;AACAwC,WAAGC,OAAH,CAAWC,MAAX,GAAoBJ,CAApB;AACAE,WAAGC,OAAH,CAAWE,MAAX,GAAoBJ,CAApB;AACH,KAJD;;AAMA,SAAKK,SAAL,GAAiB,YAAY;AACzB,YAAIC,MAAJ;AAAA,YACIL,KAAK,KAAKxC,aAAL,EADT;AAEA6C,eAAON,CAAP,GAAWC,GAAGC,OAAH,CAAWE,MAAtB;AACAE,eAAOP,CAAP,GAAWE,GAAGC,OAAH,CAAWC,MAAtB;AACA,eAAOG,MAAP;AACH,KAND;;AAQA,SAAKC,aAAL,GAAqB,UAAUC,IAAV,EAAgB;AACjC/C,wBAAgB7C,WAAhB,CAA4B4F,IAA5B;AACH,KAFD;;AAIA3E,eAAW4E,iBAAX,GAA+B,YAAW;AACtC,YAAIC,aAAaC,OAAOC,gBAAP,CAAyB,IAAzB,EAA+B,IAA/B,CAAjB;;AAEA,YAAIC,gBAAgBH,WAAWI,gBAAX,CAA6B,cAA7B,CAApB;AACA,YAAIC,iBAAiBL,WAAWI,gBAAX,CAA6B,eAA7B,CAArB;;AAEA,YAAIE,oBAAoBN,WAAWI,gBAAX,CAA6B,mBAA7B,CAAxB;AACA,YAAIG,qBAAqBP,WAAWI,gBAAX,CAA6B,oBAA7B,CAAzB;;AAEA,YAAII,eAAeR,WAAWI,gBAAX,CAA6B,aAA7B,CAAnB;AACA,YAAIK,kBAAkBT,WAAWI,gBAAX,CAA6B,gBAA7B,CAAtB;;AAEA,YAAIM,mBAAmBV,WAAWI,gBAAX,CAA6B,kBAA7B,CAAvB;AACA,YAAIO,sBAAsBX,WAAWI,gBAAX,CAA6B,qBAA7B,CAA1B;;AAEA,YAAIQ,QAAQC,WAAY,KAAKC,WAAjB,EAA8B,EAA9B,IACAD,WAAYV,aAAZ,EAA2B,EAA3B,CADA,GAEAU,WAAYR,cAAZ,EAA4B,EAA5B,CAFA,GAGAQ,WAAYP,iBAAZ,EAA+B,EAA/B,CAHA,GAIAO,WAAYN,kBAAZ,EAAgC,EAAhC,CAJZ;;AAMA,YAAIQ,SAASF,WAAY,KAAKG,YAAjB,EAA+B,EAA/B,IACDH,WAAYL,YAAZ,EAA0B,EAA1B,CADC,GAEDK,WAAYJ,eAAZ,EAA6B,EAA7B,CAFC,GAGDI,WAAYH,gBAAZ,EAA8B,EAA9B,CAHC,GAIDG,WAAYF,mBAAZ,EAAiC,EAAjC,CAJZ;;AAMA,eAAO;AACHC,mBAAOA,KADJ;AAEHG,oBAAQA;AAFL,SAAP;AAIH,KA/BD;;AAiCA,WAAO,IAAP;AACH,CAzJD;ACAA,IAAIE,kBAAkB,SAAlBA,eAAkB,CAAUC,QAAV,EAAoBC,CAApB,EAAuB;;AAEzC,aAASC,eAAT,CAAyB7B,EAAzB,EAA6B;AACzB,YAAIA,GAAG8B,QAAH,CAAY,MAAZ,CAAJ,EAAyB;AACrB,mBAAO,IAAIC,SAAJ,EAAP;AACH,SAFD,MAEO,IAAI/B,GAAG8B,QAAH,CAAY,OAAZ,CAAJ,EAA0B;AAC7B,mBAAO,IAAIE,UAAJ,EAAP;AACH,SAFM,MAEA,IAAIhC,GAAG8B,QAAH,CAAY,MAAZ,CAAJ,EAAyB;AAC5B,mBAAO,IAAIG,SAAJ,EAAP;AACH,SAFM,MAEA,IAAIjC,GAAG8B,QAAH,CAAY,QAAZ,CAAJ,EAA2B;AAC9B,mBAAO,IAAIrG,WAAJ,EAAP;AACH;AACJ;;AAED,QAAIyG,uBAAJ;AAAA,QACIC,6BADJ;AAEA,QAAK/H,SAASG,sBAAT,CAAiC,kBAAjC,EAAsDuC,MAAtD,IAAgE,CAArE,EAAyE;AACrEoF,yBAAiB9H,SAASyB,aAAT,CAAwB,KAAxB,CAAjB;AACAqG,uBAAe9F,SAAf,CAAyBC,GAAzB,CAA8B,kBAA9B;;AAEA8F,+BAAuB/H,SAASyB,aAAT,CAAwB,KAAxB,CAAvB;AACAsG,6BAAqB/F,SAArB,CAA+BC,GAA/B,CAAoC,yBAApC;;AAEA,YAAI+F,2BAA0BhI,SAASyB,aAAT,CAAwB,KAAxB,CAA9B;AAAA,YACIwG,6BAA4BjI,SAASyB,aAAT,CAAwB,KAAxB,CADhC;AAAA,YAEIyG,8BAA6BlI,SAASyB,aAAT,CAAwB,KAAxB,CAFjC;AAAA,YAGI0G,4BAA2BnI,SAASyB,aAAT,CAAwB,KAAxB,CAH/B;;AAKAuG,iCAAwBhG,SAAxB,CAAkCC,GAAlC,CAAuC,6BAAvC;AACAgG,mCAA0BjG,SAA1B,CAAoCC,GAApC,CAAyC,+BAAzC;AACAiG,oCAA2BlG,SAA3B,CAAqCC,GAArC,CAA0C,gCAA1C;AACAkG,kCAAyBnG,SAAzB,CAAmCC,GAAnC,CAAwC,8BAAxC;;AAEA8F,6BAAqBxH,WAArB,CAAkCyH,wBAAlC;AACAD,6BAAqBxH,WAArB,CAAkC0H,0BAAlC;AACAF,6BAAqBxH,WAArB,CAAkC2H,2BAAlC;AACAH,6BAAqBxH,WAArB,CAAkC4H,yBAAlC;;AAEA,YAAIC,OAAOpI,SAAS+D,oBAAT,CAA+B,MAA/B,CAAX;AACA,YAAKqE,KAAK1F,MAAL,GAAc,CAAnB,EAAuB;AACnB0F,iBAAK,CAAL,EAAQ7H,WAAR,CAAqBuH,cAArB;AACAM,iBAAK,CAAL,EAAQ7H,WAAR,CAAqBwH,oBAArB;AACH;;AAEDD,uBAAeO,WAAf,GAA6B,YAAY,CAExC,CAFD;;AAIAP,uBAAeQ,UAAf,GAA4B,UAAUd,CAAV,EAAa;AACrCA,cAAEe,cAAF;AACH,SAFD;;AAIAT,uBAAeU,WAAf,GAA6B,YAAY,CAExC,CAFD;AAGAV,uBAAeW,MAAf,GAAwB,UAAUjB,CAAV,EAAa;AACjCA,cAAEe,cAAF;AACA,gBAAIG,gBAAJ;;AAEA,gBAAKlB,EAAEmB,YAAF,CAAeC,OAAf,CAAuB,aAAvB,CAAL,EAA6C;AACzCF,0BAAUjB,gBAAiBD,EAAEmB,YAAF,CAAeC,OAAf,CAAuB,aAAvB,CAAjB,CAAV;AACAF,0BAAUA,QAAQtF,aAAR,EAAV;AACH,aAHD,MAGO;AACHsF,0BAAU1I,SAASG,sBAAT,CAAiCqH,EAAEmB,YAAF,CAAeC,OAAf,CAAuB,MAAvB,CAAjC,EAAkE,CAAlE,CAAV;AACAF,wBAAQ1G,SAAR,CAAkBgC,MAAlB,CAA0B,kBAA1B;AACA0E,wBAAQ1G,SAAR,CAAkBgC,MAAlB,CAA0B,4BAA1B;AACH;;AAED,gBAAIP,WAAJ;AACA,gBAAIqE,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,WAAnC,EAAiD;AAC7CiG,2BAAWO,eAAee,mBAAf,EAAX;AACA,oBAAKtB,SAASuB,QAAT,CAAkBC,WAAlB,MAAmC,IAAxC,EAA+C;AAC3CtF,yBAAKqE,eAAee,mBAAf,EAAL;AACApF,uBAAGlD,WAAH,CAAgBmI,OAAhB;AACH;AACJ,aAND,MAMO;AACH,oBAAIM,eAAelB,eAAee,mBAAf,EAAnB;AACApF,qBAAKuF,aAAarF,UAAlB;;AAEA,oBAAImE,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,eAAnC,EAAqD;AACjDmC,uBAAGwF,YAAH,CAAiBP,OAAjB,EAA0BM,YAA1B;AACH,iBAFD,MAEO,IAAIlB,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,eAAnC,EAAqD;AACxD,wBAAI4H,mBAAmBF,aAAaG,WAApC;AACA1F,uBAAGwF,YAAH,CAAiBP,OAAjB,EAA0BQ,gBAA1B;AACH;AACJ;;AAED,gBAAIE,UAAU3F,GAAGE,UAAjB;AACA,gBAAIyF,QAAQpH,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,oBAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0BF,OAA1B,EAAmC,oBAAnC,CAAZ;AACApK,4BAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;;AAEDwD,2BAAe1H,KAAf,CAAqBC,OAArB,GAA+B,MAA/B;AACA0H,iCAAqB3H,KAArB,CAA2BC,OAA3B,GAAqC,MAArC;;AAEA0E,iCAAqB2D,OAArB;AACH,SA1CD;AA2CA,YAAIc,gBAAgBxJ,SAAS+C,aAAT,CAAwB,iBAAxB,CAApB;AACAyG,sBAAcC,QAAd,GAAyB,YAAW;AAChC3B,2BAAe1H,KAAf,CAAqBC,OAArB,GAA+B,MAA/B;AACA0H,iCAAqB3H,KAArB,CAA2BC,OAA3B,GAAqC,MAArC;AACH,SAHD;AAIH,KAvFD,MAuFO;AACHyH,yBAAiB9H,SAASG,sBAAT,CAAiC,kBAAjC,EAAsD,CAAtD,CAAjB;AACA4H,+BAAuB/H,SAASG,sBAAT,CAAiC,yBAAjC,EAA6D,CAA7D,CAAvB;AACH;AACD,QAAIoH,YAAYA,SAASuB,QAAT,CAAkBC,WAAlB,MAAmC,IAA/C,IACIxB,SAASpH,sBAAT,CAAiC,iBAAjC,EAAqDuC,MAArD,IAA+D,CADvE,EAC2E;AACvE;AACH;;AAED,QAAI0G,gBAAJ;AACA,QAAK7B,SAASmC,SAAT,IAAsB,IAA3B,EAAkC;AAC9BN,kBAAU7B,SAAS5D,UAAnB;AACH,KAFD,MAEO,IAAK4D,SAASmC,SAAT,IAAsB,KAAtB,IAA+BnC,SAASvF,SAAT,CAAmBqH,QAAnB,CAA6B,iBAA7B,CAApC,EAAuF;AAC1FD,kBAAU7B,SAAS5D,UAAT,CAAoBA,UAA9B;AACH;AACD,QAAIyF,QAAQpH,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,YAAIM,SAASnC,EAAEmB,YAAF,CAAeiB,KAA5B;AACA,YAAIC,eAAe,KAAnB;AACA,aAAM,IAAIlH,IAAI,CAAd,EAAiBA,IAAIgH,OAAOjH,MAA5B,EAAoCC,GAApC,EAA0C;AACtC,gBAAImH,SAASH,OAAOhH,CAAP,EAAUN,KAAV,CAAiB,uBAAjB,CAAb;AACA,gBAAKyH,UAAUA,OAAO,CAAP,KAAa,MAA5B,EAAqC;AACjCD,+BAAe,IAAf;AACA;AACH;AACJ;AACD,YAAIA,YAAJ,EAAmB;AACf;AACH;AACJ;;AAED/B,mBAAe1H,KAAf,CAAqB6G,KAArB,GAA6BM,SAASJ,WAAT,GAAuB,IAApD;AACA,QAAIC,SAASG,SAASF,YAAtB;AAAA,QACI0C,qBAAqBxC,SAASyC,qBAAT,EADzB;AAAA,QAEIC,OAAOC,OAAQH,mBAAmBE,IAA3B,CAFX;AAAA,QAGIE,YAHJ;AAIArC,mBAAe1H,KAAf,CAAqB6J,IAArB,GAA4BA,OAAO,IAAnC;;AAEA,QAAIzC,EAAEmB,YAAF,CAAeiB,KAAf,CAAqBQ,OAArB,CAA8B,kBAA9B,KAAsD,CAAC,CAA3D,EAA+D;AAC3D,YAAIC,cAAcrK,SAASG,sBAAT,CAAiC,kBAAjC,EAAsD,CAAtD,CAAlB;AACA,YAAIoH,YAAY8C,WAAhB,EAA8B;AAC1BvC,2BAAe9F,SAAf,CAAyBC,GAAzB,CAA6B,4BAA7B;AACA8F,iCAAqB/F,SAArB,CAA+BC,GAA/B,CAAmC,4BAAnC;AACH,SAHD,MAGO;AACH6F,2BAAe9F,SAAf,CAAyBgC,MAAzB,CAAgC,4BAAhC;AACA+D,iCAAqB/F,SAArB,CAA+BgC,MAA/B,CAAsC,4BAAtC;AACH;AACJ;;AAED8D,mBAAee,mBAAf,GAAqC,YAAW;AAC5C,eAAOtB,QAAP;AACH,KAFD;;AAIAO,mBAAe1H,KAAf,CAAqBC,OAArB,GAA+B,OAA/B;AACA0H,yBAAqB3H,KAArB,CAA2BC,OAA3B,GAAqC,OAArC;AACA,QAAIkH,SAASuB,QAAT,CAAkBC,WAAlB,MAAmC,IAAvC,EAA8C;AAC1C,YAAIrD,IAAI8B,EAAE8C,OAAF,IAAWxI,SAAX,GAAqB0F,EAAE+C,MAAvB,GAA8B/C,EAAE8C,OAAxC;AACAH,cAAMD,OAAQH,mBAAmBI,GAA3B,IAAmCD,OAAQ,EAAR,CAAzC;AACApC,uBAAejC,OAAf,CAAuBvE,IAAvB,GAA8B,eAA9B;AACA,YAAKoE,IAAI0B,SAAO,CAAhB,EAAoB;AAChB+C,kBAAMD,OAAQH,mBAAmBI,GAA3B,IAAmC/C,MAAnC,GAA4C,CAAlD;AACAU,2BAAejC,OAAf,CAAuBvE,IAAvB,GAA8B,eAA9B;AACH;AACJ,KARD,MAQO;AACHwG,uBAAejC,OAAf,CAAuBvE,IAAvB,GAA8B,WAA9B;AACA6I,cAAMD,OAAQH,mBAAmBI,GAA3B,IAAmC/C,SAAO,CAA1C,GAA8C,CAApD;AACH;AACDU,mBAAe1H,KAAf,CAAqB+J,GAArB,GAA2BA,MAAM,IAAjC;;AAEApC,yBAAqB3H,KAArB,CAA2B+J,GAA3B,GAAiCJ,mBAAmBI,GAAnB,GAAyB,IAA1D;AACApC,yBAAqB3H,KAArB,CAA2B6J,IAA3B,GAAkCF,mBAAmBE,IAAnB,GAA0B,IAA5D;;AAEAjC,8BAA0BD,qBAAqBhF,aAArB,CAAoC,8BAApC,CAA1B;AACAiF,4BAAwB5H,KAAxB,CAA8B6G,KAA9B,GAAwCiD,OAAQ3C,SAASJ,WAAjB,IAAiC+C,OAAQ,CAAR,CAAnC,GAAmD,IAAzF;;AAEAjC,gCAA4BF,qBAAqBhF,aAArB,CAAoC,gCAApC,CAA5B;AACAkF,8BAA0B7H,KAA1B,CAAgCgH,MAAhC,GAA2C8C,OAAQH,mBAAmBS,MAA3B,IAAsCN,OAAQH,mBAAmBI,GAA3B,CAAtC,GAAyE,CAA3E,GAAiF,IAA1H;AACAlC,8BAA0B7H,KAA1B,CAAgC6J,IAAhC,GAAuCjC,wBAAwB5H,KAAxB,CAA8B6G,KAArE;;AAEAiB,iCAA6BH,qBAAqBhF,aAArB,CAAoC,iCAApC,CAA7B;AACAmF,+BAA2B9H,KAA3B,CAAiC6G,KAAjC,GAAyCe,wBAAwB5H,KAAxB,CAA8B6G,KAAvE;AACAiB,+BAA2B9H,KAA3B,CAAiC+J,GAAjC,GAAuClC,0BAA0B7H,KAA1B,CAAgCgH,MAAvE;;AAEAe,+BAA2BJ,qBAAqBhF,aAArB,CAAoC,+BAApC,CAA3B;AACAoF,6BAAyB/H,KAAzB,CAA+BgH,MAA/B,GAAwCa,0BAA0B7H,KAA1B,CAAgCgH,MAAxE;AACH,CA3LD;ACAA,IAAItG,kBAAkB,SAAlBA,eAAkB,GAAY;;AAEjC,KAAI2J,OAAO,EAAX;AACAA,MAAK,MAAL,IAAe,CAAf;AACAA,MAAK,OAAL,IAAgB,CAAhB;AACAA,MAAK,MAAL,IAAe,CAAf;AACAA,MAAK,QAAL,IAAiB,CAAjB;;AAEA,MAAKC,SAAL,GAAiB,UAAUC,GAAV,EAAe;AAC/B,MAAI,EAAEA,OAAOF,IAAT,CAAJ,EAAoB;AACnB;AACA;AACDA,OAAKE,GAAL;AACA,EALD;;AAOA,MAAKC,SAAL,GAAiB,UAAUD,GAAV,EAAe;AAC/B,MAAI,EAAEA,OAAOF,IAAT,CAAJ,EAAoB;AACnB,UAAO3I,SAAP;AACA;AACD,SAAO2I,KAAKE,GAAL,IAAY,CAAnB;AACA,EALD;;AAOA,QAAO,IAAP;AAEA,CAxBD;ACAA,IAAIE,sBAAsB,SAAtBA,mBAAsB,CAAWnC,OAAX,EAAoBtE,KAApB,EAA2BvC,aAA3B,EAA2C;;AAEjE,QAAIsE,OAAOuC,QAAQtF,aAAR,EAAX;AAAA,QAAoC0H,WAApC;;AAEAC,WAAO/K,SAAS+C,aAAT,CAAuB,WAAW2F,QAAQvF,IAAnB,GAA0B,oBAAjD,EAAuE6H,SAAvE,CAAiF,IAAjF,CAAP;AACAD,SAAK/I,SAAL,CAAegC,MAAf,CAAsB,UAAU0E,QAAQvF,IAAlB,GAAyB,oBAA/C,EALiE,CAKK;AACtE2H,kBAAc,kBAAkBpC,QAAQvF,IAA1B,GAAiC,GAAjC,GAAuCiB,KAArD;;AAEA,QAAI6G,aAAaF,KAAK5K,sBAAL,CAA4B,uBAA5B,CAAjB;;AAEA,SAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAIsI,WAAWvI,MAA/B,EAAuCC,GAAvC,EAA4C;AACxCsI,mBAAWtI,CAAX,EAAckD,OAAd,CAAsB6C,OAAtB,GAAgCoC,WAAhC;AACH;;AAEDC,SAAK/I,SAAL,CAAeC,GAAf,CAAmB6I,WAAnB;AACA9K,aAASC,cAAT,CAAwB,uBAAxB,EAAiDM,WAAjD,CAA6DwK,IAA7D;;AAEA,QAAKlJ,aAAL,EAAqB;AACjB,YAAK6G,QAAQvF,IAAR,IAAgB,QAArB,EAAgC;AAC5B,gBAAI+H,cAAalL,SAASG,sBAAT,CAAiC,kBAAkB0B,aAAnD,EAAmE,CAAnE,CAAjB;AAAA,gBACIiB,0BADJ;AAAA,gBAEIqI,oBAFJ;AAAA,gBAGIlI,mBAHJ;AAAA,gBAIImI,iBAJJ;;AAMA,gBAAKF,WAAL,EAAkB;AACdE,2BAAWF,YAAW9I,SAAX,CAAqBC,KAArB,CAA2B,qBAA3B,CAAX;AACH;;AAED,gBAAI+I,YAAY9I,MAAMC,OAAN,CAAe6I,QAAf,CAAhB,EAA4C;AACxC,oBAAIC,IAAIN,KAAK5K,sBAAL,CAA4B,mBAA5B,CAAR;;AAEA,qBAAM,IAAIwC,IAAI,CAAd,EAAiBA,IAAI0I,EAAE3I,MAAvB,EAA+BC,GAA/B,EAAqC;AACjC0I,sBAAE1I,CAAF,EAAKX,SAAL,CAAegC,MAAf,CAAuB,UAAvB;;AAEA,wBAAKqH,EAAE1I,CAAF,EAAKT,SAAL,IAAkBkJ,SAAS,CAAT,CAAvB,EAAqC;AACjCC,0BAAE1I,CAAF,EAAKX,SAAL,CAAeC,GAAf,CAAoB,UAApB;AACH;AACJ;AACJ;;AAED,gBAAIiJ,WAAJ,EAAiB;AACbpI,oCAAoBoI,YAAW/K,sBAAX,CAAmC,qBAAnC,CAApB;;AAEAgL,8BAAcD,YAAWnH,oBAAX,CAAiC,GAAjC,CAAd;;AAEAd,6BAAaiI,YAAW/K,sBAAX,CAAmC,aAAnC,CAAb;AACH;;AAED,gBAAK2C,iBAAL,EAAyB;AACrB,oBAAIwI,kBAAkBxI,kBAAkB,CAAlB,EAAqB1C,KAArB,CAA2BmL,cAAjD;AAAA,oBACAC,wBAAwBT,KAAKhI,aAAL,CAAoB,sCAApB,CADxB;AAAA,oBAEI0I,eAAeD,sBAAsBzH,oBAAtB,CAA4C,QAA5C,CAFnB;AAAA,oBAGI2H,wBAHJ;;AAKA,oBAAKJ,mBAAmB,YAAxB,EAAuC;AACnCI,sCAAkB,MAAlB;AACH,iBAFD,MAEO,IAAKJ,mBAAmB,QAAnB,IAA+B,CAAEA,eAAtC,EAAwD;AAC3DI,sCAAkB,QAAlB;AACH,iBAFM,MAEA,IAAKJ,mBAAmB,UAAxB,EAAqC;AACxCI,sCAAkB,OAAlB;AACH;;AAED,qBAAM,IAAI/I,KAAI,CAAd,EAAiBA,KAAI8I,aAAa/I,MAAlC,EAA0CC,IAA1C,EAAgD;AAC5C,wBAAK8I,aAAa9I,EAAb,EAAgBzC,KAAhB,IAAyBwL,eAA9B,EAAgD;AAC5CD,qCAAa9I,EAAb,EAAgBgJ,QAAhB,GAA2B,IAA3B;AACH;AACJ;AACJ;;AAED,gBAAKR,YAAYzI,MAAZ,GAAqB,CAA1B,EAA8B;AAC1B,oBAAIkJ,aAAaT,YAAY,CAAZ,EAAeU,YAAf,CAA6B,MAA7B,CAAjB;AAAA,oBACIC,mBAAmBX,YAAY,CAAZ,EAAeU,YAAf,CAA6B,QAA7B,CADvB;AAAA,oBAEIE,WAAWZ,YAAY,CAAZ,EAAeU,YAAf,CAA6B,IAA7B,CAFf;AAAA,oBAKIG,kBAAkBjB,KAAKhI,aAAL,CAAoB,gCAApB,CALtB;AAAA,oBAMIkJ,wBAAwBlB,KAAKhI,aAAL,CAAoB,uCAApB,CAN5B;AAAA,oBAOImJ,0BAA0BD,sBAAsBJ,YAAtB,CAAoC,IAApC,CAP9B;AAAA,oBAQIM,6BAA6BF,sBAAsBtI,UAAtB,CAAiCI,oBAAjC,CAAuD,OAAvD,EAAiE,CAAjE,CARjC;AAAA,oBAUIqI,gBAAgBrB,KAAKhI,aAAL,CAAoB,8BAApB,CAVpB;;AAYAmJ,0CAA0BA,0BAA0B,GAA1B,GAAgCrK,cAAcyD,KAAd,CAAqB,GAArB,EAA2B,CAA3B,CAA1D;AACA2G,sCAAsBrJ,YAAtB,CAAoC,IAApC,EAA0CsJ,uBAA1C;AACAC,2CAA2BvJ,YAA3B,CAAyC,KAAzC,EAAgDsJ,uBAAhD;;AAEAF,gCAAgB9L,KAAhB,GAAwB0L,UAAxB;;AAEA,oBAAIE,oBAAoBA,oBAAoB,QAA5C,EAAsD;AAClDG,0CAAsBI,OAAtB,GAAgC,IAAhC;AACH;;AAEDD,8BAAclM,KAAd,GAAsB6L,QAAtB;AACH;;AAED,gBAAI9I,UAAJ,EAAiB;AACb,oBAAIqJ,kBAAkBrJ,WAAW,CAAX,EAAc7C,KAAd,CAAoBmM,KAA1C;AAAA,oBACIC,cAAcvJ,WAAW,CAAX,EAAc7C,KAAd,CAAoBqM,eADtC;AAAA,oBAEIC,uBAAuB3B,KAAKhI,aAAL,CAAoB,sCAApB,CAF3B;AAAA,oBAGI4J,6BAA6B5B,KAAKhI,aAAL,CAAoB,iCAApB,CAHjC;;AAMA2J,qCAAqBxM,KAArB,GAA6BlB,YAAY4N,QAAZ,CAAsBN,eAAtB,CAA7B;;AAEAK,2CAA2BzM,KAA3B,GAAmClB,YAAY4N,QAAZ,CAAsBJ,WAAtB,CAAnC;AAEH;AACJ,SA1FD,MA0FO,IAAK9D,QAAQvF,IAAR,IAAgB,OAArB,EAA+B;AAClC,gBAAI+H,eAAalL,SAASG,sBAAT,CAAiC,kBAAkB0B,aAAnD,CAAjB;AACA,gBAAKqJ,aAAWxI,MAAX,GAAoB,CAAzB,EAA6B;AACzB,oBAAImK,YAAY3B,aAAW,CAAX,EAAcnH,oBAAd,CAAoC,GAApC,CAAhB;AACA,oBAAK8I,UAAUnK,MAAV,GAAmB,CAAxB,EAA4B;AACxB,wBAAIoK,IAAID,UAAU,CAAV,CAAR;;AAEA,wBAAKC,CAAL,EAAS;AACLA,0BAAEhI,OAAF,GAAY,UAAU0C,CAAV,EAAc;AACtBA,8BAAEe,cAAF;AACH,yBAFD;AAGA;AACA,4BAAIwE,aAAaD,EAAE1M,KAAF,CAAQ4M,SAAzB;AAAA,4BACAC,uBAAuBlC,KAAKhI,aAAL,CAAoB,qCAApB,CADvB;AAAA,4BAEA0I,gBAAewB,qBAAqBlJ,oBAArB,CAA2C,QAA3C,CAFf;;AAIA,6BAAM,IAAIpB,MAAI,CAAd,EAAiBA,MAAI8I,cAAa/I,MAAlC,EAA0CC,KAA1C,EAAgD;AAC5C,gCAAK8I,cAAa9I,GAAb,EAAgBzC,KAAhB,IAAyB6M,UAA9B,EAA2C;AACvCtB,8CAAa9I,GAAb,EAAgBgJ,QAAhB,GAA2B,IAA3B;AACH;AACJ;;AAED;AACA,4BAAIuB,gBAAgBJ,EAAEjB,YAAF,CAAgB,MAAhB,CAApB;AAAA,4BACIsB,iBAAiBpC,KAAKhI,aAAL,CAAoB,+BAApB,CADrB;AAEA,4BAAKmK,aAAL,EAAqB;AACjBC,2CAAejN,KAAf,GAAuBgN,aAAvB;AACH;;AAED;AACA,4BAAIE,kBAAkBN,EAAEjB,YAAF,CAAgB,QAAhB,CAAtB;AAAA,4BACIwB,uBAAuBtC,KAAKhI,aAAL,CAAoB,sCAApB,CAD3B;AAAA,4BAEIuK,yBAAyBD,qBAAqBxB,YAArB,CAAmC,IAAnC,CAF7B;AAAA,4BAGI0B,4BAA4BF,qBAAqB1J,UAArB,CAAgCI,oBAAhC,CAAsD,OAAtD,EAAgE,CAAhE,CAHhC;;AAKAuJ,iDAAyBA,yBAAyB,GAAzB,GAA+BzL,cAAcyD,KAAd,CAAqB,GAArB,EAA2B,CAA3B,CAAxD;;AAEA+H,6CAAqBzK,YAArB,CAAmC,IAAnC,EAAyC0K,sBAAzC;AACAC,kDAA0B3K,YAA1B,CAAwC,KAAxC,EAA+C0K,sBAA/C;;AAEA,4BAAKF,mBAAmBA,mBAAmB,QAA3C,EAAsD;AAClDC,iDAAqBhB,OAArB,GAA+B,IAA/B;AACH;;AAED,4BAAImB,MAAMV,EAAE/I,oBAAF,CAAwB,KAAxB,CAAV;AACA,4BAAKyJ,IAAI9K,MAAJ,GAAa,CAAlB,EAAsB;AAClB;AACA,gCAAI+K,WAAWD,IAAI,CAAJ,EAAOpN,KAAP,CAAa6G,KAA5B;AACA,gCAAKwG,QAAL,EAAgB;AACZ,oCAAIC,uBAAuB3C,KAAKhI,aAAL,CAAoB,6CAApB,CAA3B;AAAA,oCACI4K,wBAAwB5C,KAAKhI,aAAL,CAAoB,8CAApB,CAD5B;;AAGA2K,qDAAqBxN,KAArB,GAA6B2D,SAAU4J,QAAV,CAA7B;AACAE,sDAAsBzN,KAAtB,GAA8B2D,SAAU4J,QAAV,CAA9B;AACH;;AAED;AACA,gCAAIG,qBAAqBJ,IAAI,CAAJ,EAAO3B,YAAP,CAAoB,KAApB,CAAzB;AAAA,gCACIgC,4BAA4B9C,KAAKhI,aAAL,CAAoB,kDAApB,CADhC;;AAGA8K,sDAA0B3N,KAA1B,GAAkC0N,kBAAlC;AACH;AACJ;AACJ;AACJ;AACJ,SAjEM,MAiEA,IAAKlF,QAAQvF,IAAR,IAAgB,MAArB,EAA8B;AACjC,gBAAI+H,eAAalL,SAASG,sBAAT,CAAiC,kBAAkB0B,aAAnD,CAAjB;AACA,gBAAKqJ,aAAWxI,MAAX,GAAoB,CAAzB,EAA6B;AACzB,oBAAIoL,kBAAkB5C,aAAW,CAAX,EAAc9K,KAAd,CAAoB2N,QAA1C;AAAA,oBACIC,mBAAmB9C,aAAW,CAAX,EAAc9K,KAAd,CAAoBmM,KAD3C;AAEA,oBAAI0B,yBAAyBlD,KAAKhI,aAAL,CAAoB,4CAApB,CAA7B;AAAA,oBACImL,0BAA0BnD,KAAKhI,aAAL,CAAoB,6CAApB,CAD9B;AAAA,oBAEIoL,iBAAiBpD,KAAKhI,aAAL,CAAoB,uCAApB,CAFrB;;AAIAkL,uCAAuB/N,KAAvB,GAA+B2D,SAAUiK,eAAV,CAA/B;AACAI,wCAAwBhO,KAAxB,GAAgC2D,SAAUiK,eAAV,CAAhC;AACAK,+BAAejO,KAAf,GAAuBlB,YAAY4N,QAAZ,CAAsBoB,gBAAtB,CAAvB;AACH;AACJ,SAbM,MAaA,IAAKtF,QAAQvF,IAAR,IAAgB,MAArB,EAA8B;AACjC,gBAAIiL,cAAcpO,SAASG,sBAAT,CAAiC,kBAAkB0B,aAAnD,CAAlB;AACA,gBAAKuM,YAAY1L,MAAZ,GAAqB,CAA1B,EAA8B;AAC1B,oBAAI2L,mBAAmBD,YAAY,CAAZ,EAAerL,aAAf,CAA8B,GAA9B,EAAoC3C,KAApC,CAA0CmM,KAAjE;AACA,oBAAI+B,iBAAiBvD,KAAKhI,aAAL,CAAoB,iDAApB,CAArB;AACAuL,+BAAepO,KAAf,GAAuBlB,YAAY4N,QAAZ,CAAsByB,gBAAtB,CAAvB;;AAEA,oBAAIE,kBAAkBH,YAAY,CAAZ,EAAeI,gBAAf,CAAiC,IAAjC,CAAtB;AACA,oBAAKD,gBAAgB7L,MAAhB,GAAyB,CAA9B,EAAkC;AAC9B,wBAAI+L,YAAYF,gBAAgB,CAAhB,EAAmBxL,aAAnB,CAAkC,GAAlC,CAAhB;AACA,wBAAI2L,mBAAmBD,UAAUzM,SAAjC;AACA;AACA,wBAAK0M,iBAAiBhM,MAAjB,GAA0B,CAA/B,EAAmC;AAC/B,4BAAIiM,yBAAyB5D,KAAKhI,aAAL,CAAoB,gCAApB,CAA7B;AACA,4BAAK4L,sBAAL,EAA8B;AAC1BA,mDAAuBzO,KAAvB,GAA+B,WAA/B;;AAEA,gCAAI0O,sBAAsBD,uBAAuBhL,UAAvB,CAAkCwF,WAA5D;AACA,iCAAM,IAAIxG,MAAI,CAAd,EAAiBA,MAAI,EAArB,EAAyBA,KAAzB,EAA+B;AAC3B,oCAAKiM,oBAAoBC,QAApB,IAAgC,GAArC,EAA2C;AACvC;AACH,iCAFD,MAEO;AACHD,0DAAsBA,oBAAoBzF,WAA1C;AACH;AACJ;AACD,gCAAKyF,mBAAL,EAA2B;AACvB,oCAAIE,wBAAwBF,oBAAoB/C,YAApB,CAAkC,IAAlC,CAA5B;AACA+C,oDAAoBhM,YAApB,CAAkC,IAAlC,EAAwCkM,wBAAwB,GAAxB,GAA8BjN,aAAtE;AACA+M,oDAAoBxO,KAApB,CAA0BC,OAA1B,GAAoC,MAApC;AACH;;AAED,gCAAI0O,6BAA6BhE,KAAKhI,aAAL,CAAoB,qCAApB,CAAjC;AACA,gCAAKgM,0BAAL,EAAkC;AAC9BA,2DAA2BpL,UAA3B,CAAsCvD,KAAtC,CAA4CC,OAA5C,GAAsD,MAAtD;;AAEA,oCAAIqO,iBAAiBrF,QAAjB,CAA2B,2BAA3B,CAAJ,EAA+D;AAC3D0F,+DAA2B7O,KAA3B,GAAmC,MAAnC;AACH,iCAFD,MAEO,IAAIwO,iBAAiBrF,QAAjB,CAA2B,6BAA3B,CAAJ,EAAiE;AACpE0F,+DAA2B7O,KAA3B,GAAmC,QAAnC;AACH,iCAFM,MAEA,IAAIwO,iBAAiBrF,QAAjB,CAA2B,6BAA3B,CAAJ,EAAiE;AACpE0F,+DAA2B7O,KAA3B,GAAmC,QAAnC;AACH,iCAFM,MAEA,IAAKwO,iBAAiBrF,QAAjB,CAA2B,2BAA3B,CAAL,EAAgE;AACnE0F,+DAA2B7O,KAA3B,GAAmC,MAAnC;AACH;AACJ;AACJ;AACJ;AACJ;;AAED,oBAAI8O,yBAAyBZ,YAAY,CAAZ,EAAejO,sBAAf,CAAuC,wBAAvC,CAA7B;AACA,oBAAK6O,uBAAuBtM,MAAvB,GAAgC,CAArC,EAAyC;AACrC,wBAAIuM,wBAAwB,EAA5B;AACA,yBAAM,IAAItM,MAAI,CAAd,EAAiBA,MAAIqM,uBAAuBtM,MAA5C,EAAoDC,KAApD,EAA0D;AACtD,4BAAIuM,IAAIF,uBAAuBrM,GAAvB,EAA0BI,aAA1B,CAAyC,GAAzC,CAAR;AACA,4BAAKmM,CAAL,EAAS;AACL,gCAAKA,EAAE9O,KAAF,CAAQ4M,SAAb,EAAyB;AACrBiC,sDAAsBE,IAAtB,CAA4BD,EAAE9O,KAAF,CAAQ4M,SAApC;AACH,6BAFD,MAEO;AACHiC,sDAAsBE,IAAtB,CAA4B,MAA5B;AACH;AACJ;AAEJ;;AAED,wBAAIC,8BAA8B,CAAlC;AAAA,wBACIC,gCAAgC,CADpC;AAAA,wBAEIC,+BAA+B,CAFnC;;AAIA,wBAAKL,sBAAsBvM,MAAtB,GAA+B,CAApC,EAAwC;AACpC,6BAAM,IAAIC,MAAI,CAAd,EAAiBA,MAAIsM,sBAAsBvM,MAA3C,EAAmDC,KAAnD,EAAyD;AACrD,gCAAKsM,sBAAsBtM,GAAtB,CAAL,EAAgC;AAC5B,oCAAKsM,sBAAsBtM,GAAtB,KAA4B,MAAjC,EAA0C;AACtCyM;AACH,iCAFD,MAEO,IAAKH,sBAAsBtM,GAAtB,KAA4B,QAAjC,EAA4C;AAC/C0M;AACH,iCAFM,MAEA,IAAKJ,sBAAsBtM,GAAtB,KAA4B,OAAjC,EAA2C;AAC9C2M;AACH;AACJ;AACJ;AACJ;;AAED,wBAAIC,6BAA6BxE,KAAKhI,aAAL,CAAoB,oCAApB,CAAjC;AAAA,wBACIyM,sBAAsBC,KAAKC,GAAL,CAAUN,2BAAV,EAAuCC,6BAAvC,EAAsEC,4BAAtE,CAD1B;;AAGA,wBAAKF,+BAA+BI,mBAApC,EAA0D;AACtDD,mDAA2BrP,KAA3B,GAAmC,MAAnC;AACH,qBAFD,MAEO,IAAKmP,iCAAiCG,mBAAtC,EAA4D;AAC/DD,mDAA2BrP,KAA3B,GAAmC,QAAnC;AACH,qBAFM,MAEA,IAAKoP,gCAAgCE,mBAArC,EAA2D;AAC9DD,mDAA2BrP,KAA3B,GAAmC,OAAnC;AACH;AACJ;AACJ;AACJ;AACJ;;AAEDiG,SAAKrB,OAAL,GAAe,YAAY;AACvB,YAAIgF,SAAS,KAAK1H,SAAL,CAAeC,KAAf,CAAqB,0BAArB,CAAb;AAAA,YACIsN,eAAe,WAAW7F,OAAO,CAAP,CAAX,GAAuB,SAAvB,GACX,gBADW,GACQA,OAAO,CAAP,CAF3B;;AAIA9J,iBAASG,sBAAT,CAAgC,yBAAhC,EAA2D,CAA3D,EAA8DC,KAA9D,CAAoEC,OAApE,GAA8E,MAA9E;AACAL,iBAASG,sBAAT,CAAgC,uBAAhC,EAAyD,CAAzD,EAA4DC,KAA5D,CAAkEC,OAAlE,GAA4E,MAA5E;AACAL,iBAASC,cAAT,CAAwB,uBAAxB,EAAiDG,KAAjD,CAAuDC,OAAvD,GAAiE,OAAjE;;AAEA,YAAIuP,WAAW5P,SAASC,cAAT,CAAwB,uBAAxB,EAAiD4P,UAAhE;AACA,aAAK,IAAIlN,IAAI,CAAb,EAAgBA,IAAIiN,SAASlN,MAA7B,EAAqCC,GAArC,EAA0C;AACtC,gBAAIiN,SAASjN,CAAT,EAAYvC,KAAhB,EACIwP,SAASjN,CAAT,EAAYvC,KAAZ,CAAkBC,OAAlB,GAA4B,MAA5B;AACP;;AAEDL,iBAAS+C,aAAT,CAAuB4M,YAAvB,EAAqCvP,KAArC,CAA2CC,OAA3C,GAAqD,OAArD;;AAEQ;;AAEhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACK,KAnDD;;AAqDA,QAAIqI,QAAQvF,IAAR,IAAgB,QAApB,EAA8B;AAC1B;AACA,YAAI2M,UAAU/E,KAAK5K,sBAAL,CAA4B,mBAA5B,CAAd;;AAEA,aAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAImN,QAAQpN,MAA5B,EAAoCC,GAApC,EAAyC;AACrCmN,oBAAQnN,CAAR,EAAWmC,OAAX,GAAqB,YAAY;AAC7B,oBAAIiL,OAAO,KAAK7N,SAAhB;AAAA,oBACI8N,UAAU,KAAKnK,OAAL,CAAa6C,OAD3B;AAAA,oBAEIoB,SAASkG,QAAQ3N,KAAR,CAAc,0BAAd,CAFb;AAAA,oBAGI4N,OAAOnG,OAAO,CAAP,CAHX;AAAA,oBAIIoG,MAAMpG,OAAO,CAAP,CAJV;AAAA,oBAKIoB,aAAalL,SAASG,sBAAT,CAAgC,kBAAkB8P,IAAlB,GAAyB,GAAzB,GAA+BC,GAA/D,EAAoE,CAApE,CALjB;AAMAhF,2BAAWlJ,SAAX,CAAqBgC,MAArB,CAA4B,aAA5B;AACAkH,2BAAWlJ,SAAX,CAAqBgC,MAArB,CAA4B,aAA5B;AACAkH,2BAAWlJ,SAAX,CAAqBgC,MAArB,CAA4B,aAA5B;AACAkH,2BAAWlJ,SAAX,CAAqBgC,MAArB,CAA4B,cAA5B;AACAkH,2BAAWlJ,SAAX,CAAqBC,GAArB,CAAyB,eAAe8N,IAAxC;AACA,oBAAI1E,IAAI,KAAK1H,UAAL,CAAgBxD,sBAAhB,CAAuC,mBAAvC,CAAR;AACA,qBAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAI0I,EAAE3I,MAAtB,EAA8BC,GAA9B,EAAmC;AAC/B0I,sBAAE1I,CAAF,EAAKX,SAAL,CAAegC,MAAf,CAAsB,UAAtB;AACH;AACD,qBAAKhC,SAAL,CAAeC,GAAf,CAAmB,UAAnB;AACH,aAjBD;AAkBH;AACJ;;AAED,QAAIkO,iBAAiBpF,KAAK5K,sBAAL,CAA4B,uBAA5B,CAArB;;AAEA,SAAK,IAAIwC,IAAI,CAAb,EAAgBA,IAAIwN,eAAezN,MAAnC,EAA2CC,GAA3C,EAAgD;AAC5C,YAAIwN,eAAexN,CAAf,EAAkBX,SAAlB,CAA4BqH,QAA5B,CAAqC,mBAArC,CAAJ,EAA+D;AAC3D5E,mBAAO0L,eAAexN,CAAf,CAAP,EAA0ByN,aAA1B,CAAwC;AACpCC,wBAAQ,gBAAUC,KAAV,EAAiBC,EAAjB,EAAqB;AACzB,wBAAIC,SAASF,MAAMG,MAAnB;AAAA,wBAA2BC,MAA3B;AAAA,wBAAmCT,IAAnC;AAAA,wBAAyCU,EAAzC;AAAA,wBAA6CC,MAA7C;AACAF,6BAASF,OAAO3K,OAAP,CAAe6C,OAAf,CAAuBrG,KAAvB,CAA6B,0BAA7B,CAAT;AACA4N,2BAAOS,OAAO,CAAP,CAAP;AACAE,6BAASF,OAAO,CAAP,CAAT;AACAxF,iCAAalL,SAASG,sBAAT,CAAgC,kBAAkB8P,IAAlB,GAAyB,GAAzB,GAA+BW,MAA/D,EAAuE,CAAvE,CAAb;AACA,wBAAKX,QAAQ,QAAb,EAAwB;AACpB,4BAAIO,OAAO3K,OAAP,CAAeoK,IAAf,IAAuB,mBAA3B,EAAgD;AAC5C/E,uCAAW/K,sBAAX,CAAkC,aAAlC,EAAiD,CAAjD,EAAoDC,KAApD,CAA0DmM,KAA1D,GAAkEgE,GAAGhE,KAAH,CAASsE,QAAT,EAAlE;AACH,yBAFD,MAEO;AACH3F,uCAAW/K,sBAAX,CAAkC,aAAlC,EAAiD,CAAjD,EAAoDC,KAApD,CAA0DqM,eAA1D,GAA4E8D,GAAGhE,KAAH,CAASsE,QAAT,EAA5E;AACH;AACJ,qBAND,MAMO,IAAIZ,QAAQ,MAAZ,EAAqB;AACxB,4BAAIU,MAAKzF,WAAWsD,gBAAX,CAA6B,GAA7B,CAAT;AACA,4BAAImC,IAAGjO,MAAH,GAAY,CAAhB,EAAoB;AAChB,iCAAM,IAAIC,MAAI,CAAd,EAAiBA,MAAIgO,IAAGjO,MAAxB,EAAgCC,KAAhC,EAAsC;AAClCgO,oCAAGhO,GAAH,EAAMvC,KAAN,CAAYmM,KAAZ,GAAoBgE,GAAGhE,KAAH,CAASsE,QAAT,EAApB;AACH;AACJ;AACJ,qBAPM,MAOA;AACH3F,mCAAW9K,KAAX,CAAiBmM,KAAjB,GAAyBgE,GAAGhE,KAAH,CAASsE,QAAT,EAAzB;AACH;AACJ;AAvBmC,aAAxC;AAyBH;;AAED,YAAIV,eAAexN,CAAf,EAAkBkD,OAAlB,CAA0BoK,IAA1B,KAAmC,WAAvC,EAAoD;AAChD,gBAAIa,SAASX,eAAexN,CAAf,EAAkBgB,UAAlB,CAA6BA,UAA7B,CAAwCxD,sBAAxC,CAA+D,4BAA/D,EAA6F,CAA7F,CAAb;AACA2Q,mBAAOC,OAAP,GAAiB,YAAY;AACzB,qBAAKpN,UAAL,CAAgBA,UAAhB,CAA2BxD,sBAA3B,CAAkD,4BAAlD,EAAgF,CAAhF,EAAmFD,KAAnF,GAA2F,KAAKA,KAAhG;AACA,qBAAKyD,UAAL,CAAgBA,UAAhB,CAA2BxD,sBAA3B,CAAkD,4BAAlD,EAAgF,CAAhF,EAAmF6Q,QAAnF;AACH,aAHD;AAIH;;AAED,YAAIb,eAAexN,CAAf,EAAkBkD,OAAlB,CAA0BoK,IAA1B,KAAmC,YAAvC,EAAqD;AACjD,gBAAIa,SAASX,eAAexN,CAAf,EAAkBgB,UAAlB,CAA6BA,UAA7B,CAAwCxD,sBAAxC,CAA+D,wBAA/D,EAAyF,CAAzF,CAAb;AACA2Q,mBAAOC,OAAP,GAAiB,YAAY;AACzB,qBAAKpN,UAAL,CAAgBA,UAAhB,CAA2BxD,sBAA3B,CAAkD,yBAAlD,EAA6E,CAA7E,EAAgFD,KAAhF,GAAwF,KAAKA,KAA7F;AACA,qBAAKyD,UAAL,CAAgBA,UAAhB,CAA2BxD,sBAA3B,CAAkD,yBAAlD,EAA6E,CAA7E,EAAgF6Q,QAAhF;AACH,aAHD;AAIH;;AAEDb,uBAAexN,CAAf,EAAkBqO,QAAlB,GAA6B,UAAUV,KAAV,EAAiB;;AAE1C,gBAAIN,UAAU,KAAKnK,OAAL,CAAa6C,OAA3B;AAAA,gBACIoB,SAASkG,QAAQ3N,KAAR,CAAc,0BAAd,CADb;AAAA,gBAEI4N,OAAOnG,OAAO,CAAP,CAFX;AAAA,gBAGIoG,MAAMpG,OAAO,CAAP,CAHV;AAAA,gBAIIoB,aAAalL,SAASG,sBAAT,CAAgC,kBAAkB8P,IAAlB,GAAyB,GAAzB,GAA+BC,GAA/D,EAAoE,CAApE,CAJjB;AAAA,gBAKIxL,MAAM,KAAKxE,KALf;;AAOA,oBAAQ,KAAK2F,OAAL,CAAaoK,IAArB;AACI,qBAAK,KAAL;AACI,wBAAIzC,MAAMtC,WAAWnH,oBAAX,CAAgC,KAAhC,EAAuC,CAAvC,CAAV;AACAyJ,wBAAIyD,GAAJ,GAAU,KAAK/Q,KAAf;AACA;AACJ,qBAAK,kBAAL;AACI,wBAAIsN,MAAMtC,WAAWnH,oBAAX,CAAgC,KAAhC,EAAuC,CAAvC,CAAV;AACAyJ,wBAAI0D,GAAJ,GAAU,KAAKhR,KAAf;AACA;AACJ,qBAAK,YAAL;AACIgL,+BAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwCoN,IAAxC,GAA+CnS,YAAYoS,mBAAZ,CAAiC,KAAKlR,KAAtC,CAA/C;AACA;AACJ,qBAAK,mBAAL;AACI,wBAAI,KAAKmM,OAAL,IAAgB,IAApB,EAA0B;AACtBnB,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC0M,MAAxC,GAAiD,QAAjD;AACH,qBAFD,MAEO;AACHvF,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC0M,MAAxC,GAAiD,OAAjD;AACH;AACD;AACJ,qBAAK,qBAAL;AACI,wBAAI,KAAKpE,OAAL,IAAgB,IAApB,EAA0B;AACtBnB,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwCsN,GAAxC,GAA8C,UAA9C;AACH,qBAFD,MAEO;AACHnG,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwCuN,eAAxC,CAAwD,KAAxD;AACH;AACD;AACJ,qBAAK,YAAL;AACIpG,+BAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC3D,KAAxC,CAA8C6G,KAA9C,GAAsD,KAAK/G,KAAL,GAAa,GAAnE;AACAgL,+BAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC3D,KAAxC,CAA8CgH,MAA9C,GAAuD,MAAvD;AACA,yBAAKzD,UAAL,CAAgBA,UAAhB,CAA2BxD,sBAA3B,CAAkD,wBAAlD,EAA4E,CAA5E,EAA+ED,KAA/E,GAAuF,KAAKA,KAA5F;AACA;AACJ,qBAAK,iBAAL;AACIgL,+BAAW/K,sBAAX,CAAmC,oBAAnC,EAA0D,CAA1D,EAA6DC,KAA7D,CAAmE4M,SAAnE,GAA+E,KAAK9M,KAApF;AACA;AACJ,qBAAK,WAAL;AACIgL,+BAAW9K,KAAX,CAAiB2N,QAAjB,GAA4BrJ,MAAM,IAAlC;AACA;AACJ,qBAAK,kBAAL;AACI,wBAAI6M,KAAK,EAAT;AACA,wBAAI,KAAKrR,KAAL,IAAc,MAAlB,EAA0B;AACtBqR,6BAAK,OAAL;AACH,qBAFD,MAEO,IAAI,KAAKrR,KAAL,IAAc,OAAlB,EAA2B;AAC9BqR,6BAAK,UAAL;AACH,qBAFM,MAEA;AACHA,6BAAK,QAAL;AACH;AACDrG,+BAAW/K,sBAAX,CAAkC,qBAAlC,EAAyD,CAAzD,EAA4DC,KAA5D,CAAkEmL,cAAlE,GAAmFgG,EAAnF;AACA;AACJ,qBAAK,aAAL;AACI,wBAAK,KAAKrR,KAAV,EAAkB;AACdgL,mCAAWnH,oBAAX,CAAiC,GAAjC,EAAuC,CAAvC,EAA0CoN,IAA1C,GAAiDnS,YAAYoS,mBAAZ,CAAiC,KAAKlR,KAAtC,CAAjD;AACH,qBAFD,MAEO;AACHgL,mCAAWnH,oBAAX,CAAiC,GAAjC,EAAuC,CAAvC,EAA0CuN,eAA1C,CAA2D,MAA3D;AACH;AACD;AACJ,qBAAK,oBAAL;AACI,wBAAI,KAAKjF,OAAL,IAAgB,IAApB,EAA0B;AACtBnB,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC0M,MAAxC,GAAiD,QAAjD;AACH,qBAFD,MAEO;AACHvF,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwC0M,MAAxC,GAAiD,OAAjD;AACH;AACD;AACJ,qBAAK,sBAAL;AACI,wBAAI,KAAKpE,OAAL,IAAgB,IAApB,EAA0B;AACtBnB,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwCsN,GAAxC,GAA8C,UAA9C;AACH,qBAFD,MAEO;AACHnG,mCAAWnH,oBAAX,CAAgC,GAAhC,EAAqC,CAArC,EAAwCuN,eAAxC,CAAyD,KAAzD;AACH;AACD;AACJ,qBAAK,WAAL;AACI,wBAAI,KAAKpR,KAAT,EAAiB;AACbgL,mCAAWnH,oBAAX,CAAiC,GAAjC,EAAuC,CAAvC,EAA0CyN,EAA1C,GAA+C,KAAKtR,KAApD;AACH,qBAFD,MAEO;AACHgL,mCAAWnH,oBAAX,CAAiC,GAAjC,EAAuC,CAAvC,EAA0CuN,eAA1C,CAA2D,IAA3D;AACH;AACL,qBAAK,cAAL;AACI;AACJ,qBAAK,gBAAL;AACI,wBAAIG,YAAYvG,WAAWsD,gBAAX,CAA4B,IAA5B,CAAhB;AACA,yBAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAI8O,UAAU/O,MAA9B,EAAsCC,GAAtC,EAA2C;AACvC,4BAAIuM,KAAIuC,UAAU9O,CAAV,EAAaI,aAAb,CAA4B,GAA5B,CAAR;AACA,4BAAKmM,EAAL,EAAS;AACLA,+BAAE9O,KAAF,CAAQ4M,SAAR,GAAoB,KAAK9M,KAAzB;AACH;AACJ;AACD;AACJ,qBAAK,YAAL;AACI,wBAAIyD,aAAa2M,MAAMG,MAAN,CACR9M,UADQ,CAERA,UAFQ,CAGRZ,aAHQ,CAGM,6BAHN,EAIRY,UAJT;AAAA,wBAKI+N,wBAAwB/N,WAAWA,UALvC;AAMA,wBAAIe,OAAO,WAAX,EAAwB;AACpBf,mCAAWvD,KAAX,CAAiBC,OAAjB,GAA2B,MAA3B;;AAEAqR,8CAAsB3O,aAAtB,CAAqC,8BAArC,EAAsE3C,KAAtE,CAA4EC,OAA5E,GAAsF,MAAtF;AACA,4BAAIsR,YAAWzG,WAAWsD,gBAAX,CAA4B,IAA5B,CAAf;AACA,6BAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAIgP,UAASjP,MAA7B,EAAqCC,GAArC,EAA0C;AACtC,gCAAIuM,MAAIyC,UAAShP,CAAT,EAAYI,aAAZ,CAA2B,GAA3B,CAAR;AACAmM,gCAAEoC,eAAF,CAAoB,OAApB;AACApC,gCAAElN,SAAF,CAAYC,GAAZ,CAAiB,2BAAjB;AACH;AACDyP,8CAAsB3O,aAAtB,CAAoC,6BAApC,EAAmE7C,KAAnE,GAA2E,MAA3E;AACH,qBAXD,MAWO;AACHyD,mCAAWvD,KAAX,CAAiBC,OAAjB,GAA2B,MAA3B;AACAqR,8CAAsB3O,aAAtB,CAAqC,8BAArC,EAAsE3C,KAAtE,CAA4EC,OAA5E,GAAsF,MAAtF;AACA,4BAAIsR,WAAWzG,WAAWsD,gBAAX,CAA4B,IAA5B,CAAf;AACA,6BAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAIgP,SAASjP,MAA7B,EAAqCC,GAArC,EAA0C;AACtC,gCAAIuM,MAAIyC,SAAShP,CAAT,EAAYI,aAAZ,CAA2B,GAA3B,CAAR;AACAmM,gCAAEoC,eAAF,CAAoB,OAApB;AACH;AACJ;AACD;AACJ,qBAAK,iBAAL;AACI,wBAAIK,WAAWzG,WAAWsD,gBAAX,CAA4B,IAA5B,CAAf;AACA,yBAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAIgP,SAASjP,MAA7B,EAAqCC,GAArC,EAA0C;AACtC,4BAAIuM,MAAIyC,SAAShP,CAAT,EAAYI,aAAZ,CAA2B,GAA3B,CAAR;AACAmM,4BAAEoC,eAAF,CAAoB,OAApB;AACApC,4BAAElN,SAAF,CAAYC,GAAZ,CAAiB,0BAA0ByC,IAAIqE,WAAJ,EAA3C;AACH;AACD;AAzHR;AA2HH,SApID;AAqIH;AACJ,CA/hBD;ACAA,IAAI/J,cAAc;AACd4S,cAAU,kBAAUC,GAAV,EAAgB;AACtB,YAAIC,SAAS,4CAA4CC,IAA5C,CAAkDF,GAAlD,CAAb;AACA,eAAOC,SAAS,SAASjO,SAAUiO,OAAO,CAAP,CAAV,EAAqB,EAArB,CAAT,GAAqC,GAArC,GAA2CjO,SAAUiO,OAAO,CAAP,CAAV,EAAqB,EAArB,CAA3C,GAAuE,GAAvE,GAA6EjO,SAAUiO,OAAO,CAAP,CAAV,EAAqB,EAArB,CAA7E,GAAyG,GAAlH,GAAwH,IAA/H;AACH,KAJa;AAKdlF,cAAU,kBAAWoF,GAAX,EAAiB;AACvB,YAAIA,MAAMA,IAAI3P,KAAJ,CAAW,sEAAX,CAAV;;AAEA,eAAS2P,OAAOA,IAAItP,MAAJ,KAAe,CAAxB,GAA8B,MACjC,CAAE,MAAMmB,SAAUmO,IAAI,CAAJ,CAAV,EAAiB,EAAjB,EAAsBnB,QAAtB,CAAgC,EAAhC,CAAR,EAA8CoB,KAA9C,CAAqD,CAAC,CAAtD,CADiC,GAEjC,CAAE,MAAMpO,SAAUmO,IAAI,CAAJ,CAAV,EAAiB,EAAjB,EAAsBnB,QAAtB,CAAgC,EAAhC,CAAR,EAA8CoB,KAA9C,CAAqD,CAAC,CAAtD,CAFiC,GAGjC,CAAE,MAAMpO,SAAUmO,IAAI,CAAJ,CAAV,EAAiB,EAAjB,EAAsBnB,QAAtB,CAAgC,EAAhC,CAAR,EAA8CoB,KAA9C,CAAqD,CAAC,CAAtD,CAHG,GAGyD,EAHhE;AAIH,KAZa;AAadC,wBAAoB,4BAAWjC,IAAX,EAAkB;AAClC,YAAIkC,WAAWC,SAASC,QAAT,GAAoB,IAApB,GAA2BD,SAASE,QAAnD;AACA,YAAI9E,MAAMxN,SAASyB,aAAT,CAAwB,KAAxB,CAAV;AACA+L,YAAIyD,GAAJ,GAAUkB,WAAW,qEAAX,GAAmFlC,IAAnF,GAA0F,MAApG;AACA,eAAOzC,GAAP;AACH,KAlBa;AAmBd+E,mBAAe,yBAAW;AACtB,eAAO;AACHjR,kBAAMtC,YAAYkT,kBAAZ,CAAgC,MAAhC,CADH;AAEHM,mBAAOxT,YAAYkT,kBAAZ,CAAgC,OAAhC,CAFJ;AAGHO,oBAAQzT,YAAYkT,kBAAZ,CAAgC,QAAhC,CAHL;AAIHQ,kBAAM1T,YAAYkT,kBAAZ,CAAgC,MAAhC;AAJH,SAAP;AAMH,KA1Ba;AA2BdS,+BAA2B,mCAAUC,MAAV,EAAmB;AAC1C,YAAIC,MAAMD,OAAOpE,gBAAP,CAAyB,GAAzB,CAAV;AACA,YAAKqE,IAAInQ,MAAJ,GAAa,CAAlB,EAAsB;AAClB,iBAAM,IAAIC,IAAI,CAAd,EAAiBA,IAAIkQ,IAAInQ,MAAzB,EAAiCC,GAAjC,EAAuC;AACnCkQ,oBAAIlQ,CAAJ,EAAOkD,OAAP,CAAeiN,kBAAf,GAAoC5I,OAAQvH,CAAR,IAAc,CAAd,GAAkB,GAAtD;AACH;AACJ;AACJ,KAlCa;AAmCdoQ,0BAAsB,8BAAUpB,QAAV,EAAqB;AACvCqB,gBAAQC,IAAR,CAAa;AACTxC,oBAAQkB,QADC;AAETuB,oBAAQ,IAFC;AAGTC,qBAAS,aAHA;AAITC,yBAAa,OAJJ;AAKTC,mBAAO,QALE;AAMTC,qBAAS,KANA;AAOTC,qCAAyB,qBAPhB;AAQTC,2BAAe,IARN;AASTC,qBAAS,uFATA;AAUTC,mBAAO,eAASC,EAAT,EAAa;AAChBA,mBAAGC,EAAH,CAAM,SAAN,EAAiB,UAASpM,CAAT,EAAY;AACzB,wBAAIqM,UAAUrM,EAAEiJ,MAAF,CAAS9M,UAAvB;AACA,wBAAK6D,EAAEsM,OAAF,IAAa,EAAlB,EAAuB;AACnBtM,0BAAEe,cAAF;AACA,4BAAIjH,OAAOkG,EAAEiJ,MAAF,CAASvO,SAApB;AACA,4BAAI6R,YAAY,IAAIvO,aAAJ,CAAmBlE,IAAnB,EAAyBuS,OAAzB,EAAkC,IAAlC,CAAhB;;AAEAA,gCAAQlQ,UAAR,CAAmBsF,YAAnB,CAAiC8K,UAAU3Q,aAAV,EAAjC,EAA4DyQ,OAA5D;AACA7U,oCAAY+T,oBAAZ,CAAkCgB,UAAU3Q,aAAV,GAA0B4Q,UAA5D;AACAxM,0BAAEiJ,MAAF,CAAS1N,aAAT,CAAwB,GAAxB,EAA8BkR,SAA9B,GAA0C,eAA1C;AACA;AACAjV,oCAAY2T,yBAAZ,CAAuCkB,QAAQlQ,UAA/C;AAEH,qBAXD,MAWO,IAAK6D,EAAEsM,OAAF,IAAa,GAAb,IAAoBtM,EAAEsM,OAAF,IAAa,IAAtC,EAA6C;AAChD,4BAAI5E,IAAI1H,EAAEiJ,MAAF,CAAS1N,aAAT,CAAwB,GAAxB,CAAR;AACA,4BAAImR,QAAQhF,EAAEhN,SAAF,CAAYiS,OAAZ,CAAoB,UAApB,EAAgC,EAAhC,CAAZ;AACAD,gCAAQA,MAAMC,OAAN,CAAe,MAAf,EAAuB,GAAvB,EAA6BC,IAA7B,EAAR;AACAF,gCAAQA,MAAMC,OAAN,CAAe,SAAf,EAA0B,EAA1B,EAA8BC,IAA9B,EAAR;;AAEA,4BAAIF,SAAS,EAAb,EAAkB;AACd1M,8BAAEe,cAAF;AACAf,8BAAEiJ,MAAF,CAAS1N,aAAT,CAAwB,GAAxB,EAA8BkR,SAA9B,GAA0C,IAA1C;AACH,yBAHD,MAGO;AACH,gCAAII,eAAerV,YAAYsV,gBAAZ,EAAnB;AACAD,2CAAeA,aAAaF,OAAb,CAAsB,MAAtB,EAA8B,GAA9B,EAAoCC,IAApC,EAAf;AACAC,2CAAeA,aAAaF,OAAb,CAAsB,SAAtB,EAAiC,EAAjC,EAAsCC,IAAtC,EAAf;AACA,gCAAIC,gBAAgBH,KAApB,EAA4B;AACxB1M,kCAAEe,cAAF;AACAf,kCAAEiJ,MAAF,CAAS1N,aAAT,CAAwB,GAAxB,EAA8BkR,SAA9B,GAA0C,IAA1C;AACH;AACJ;AACJ;AACJ,iBAhCD;;AAkCAN,mBAAGC,EAAH,CAAO,OAAP,EAAgB,UAAUpM,CAAV,EAAc,CAE7B,CAFD;AAGH,aAhDQ;AAiDT+M,oCAAwB,gCAAUC,MAAV,EAAkB;AACtClO,uBAAOmO,aAAP,GAAuBD,MAAvB;AACAA,uBAAOZ,EAAP,CAAU,OAAV,EAAmB,UAAUpM,CAAV,EAAa;AAC5B,wBAAIkN,aAAa1U,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,EAAyDgH,WAA1E;AACA,wBAAIb,OAAOmO,aAAP,IACAzU,SAASC,cAAT,CAAwB,cAAxB,EAAwC0U,SAAxC,IAAqD,EADrD,IAEArO,OAAOmO,aAAP,CAAqBG,WAArB,CAAiCxU,KAAjC,CAAuCC,OAAvC,IAAkD,MAFtD,EAE8D;AAC1DL,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,OAA/D;AACA7U,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAApD,GAA6DJ,aAAa,CAAb,GAAiB1U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CkH,WAA9C,GAA4D,CAA9E,GAAmF,IAA/I;AACAnH,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAApD,GAA0D,OAA1D;AACH,qBAND,MAMO;AACHnK,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,QAA/D;AACA,+BAAO7U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAA3D;AACA,+BAAO9U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAA3D;AACH;AACJ,iBAbD;AAcH;AAjEQ,SAAb;AAmEH,KAvGa;AAwGd4K,wBAAoB,4BAAUtE,MAAV,EAAmB;AACnCuC,gBAAQC,IAAR,CAAa;AACTxC,oBAAQA,MADC;AAETyC,oBAAQ,IAFC;AAGTC,qBAAS,MAHA;AAITC,yBAAa,OAJJ;AAKTC,mBAAO,QALE;AAMTC,qBAAS,KANA;AAOTC,qCAAyB,qBAPhB;AAQTE,qBAAS,2BARA;AASTC,mBAAQ,eAASC,EAAT,EAAa;AACjBA,mBAAGC,EAAH,CAAM,SAAN,EAAiB,UAASpM,CAAT,EAAY;AACzB,wBAAIA,EAAEsM,OAAF,IAAa,EAAjB,EAAqB;AACjBtM,0BAAEe,cAAF;AACH;AACJ,iBAJD;AAKH,aAfQ;AAgBTgM,oCAAwB,gCAAUC,MAAV,EAAkB;AACtClO,uBAAOmO,aAAP,GAAuBD,MAAvB;AACAA,uBAAOZ,EAAP,CAAU,OAAV,EAAmB,UAAUpM,CAAV,EAAa;AAC5B,wBAAIkN,aAAa1U,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,EAAyDgH,WAA1E;AACA,wBAAIb,OAAOmO,aAAP,IACAzU,SAASC,cAAT,CAAwB,cAAxB,EAAwC0U,SAAxC,IAAqD,EADrD,IAEArO,OAAOmO,aAAP,CAAqBG,WAArB,CAAiCxU,KAAjC,CAAuCC,OAAvC,IAAkD,MAFtD,EAE8D;AAC1DL,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,OAA/D;AACA7U,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAApD,GAA6DJ,aAAa,CAAb,GAAiB1U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CkH,WAA9C,GAA4D,CAA9E,GAAmF,IAA/I;AACAnH,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAApD,GAA0D,OAA1D;AACH,qBAND,MAMO;AACHnK,iCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,QAA/D;AACA,+BAAO7U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAA3D;AACA,+BAAO9U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAA3D;AACH;AACJ,iBAbD;AAcH;AAhCQ,SAAb;AAkCH,KA3Ia;AA4IdiH,yBAAqB,6BAAU4D,IAAV,EAAiB;AAClC,YAAKA,IAAL,EAAY;AACR,gBAAKA,KAAK5K,OAAL,CAAc,SAAd,KAA6B,CAAC,CAA9B,IAAmC4K,KAAK5K,OAAL,CAAc,UAAd,KAA8B,CAAC,CAAvE,EAA2E;AACvE,oBAAI6K,UAAUD,KAAK1P,KAAL,CAAY,GAAZ,CAAd;AAAA,oBACI4P,kBADJ;AAEA,oBAAK5S,MAAMC,OAAN,CAAe0S,OAAf,KAA4BA,QAAQvS,MAAR,GAAiB,CAAlD,EAAsD;AAClDwS,gCAAYD,QAAQA,QAAQvS,MAAR,GAAiB,CAAzB,CAAZ;AACH;AACD,uBAAO1C,SAASoS,QAAT,CAAkBC,QAAlB,GAA6B,IAA7B,GAAoC6C,SAA3C;AACH,aAPD,MAOO;AACH,uBAAOF,IAAP;AACH;AACJ,SAXD,MAWO;AACH,mBAAO,EAAP;AACH;AACJ,KA3Ja;AA4JdzL,wBAAoB,4BAAUjF,KAAV,EAAkB;AAClC,YAAI6Q,OAAO7Q,MAAM6Q,IAAjB;AAAA,YACIC,UAAUD,KAAK,CAAL,CADd;AAEA,YAAIE,uBAAuB9O,iBAAiB6O,OAAjB,CAA3B;;AAEA,YAAIE,kBAAkBF,QAAQxF,QAA9B;AACA,YAAI2F,oBAAoB,EAAxB;AACA,aAAK,IAAI5S,IAAI,CAAb,EAAgBA,IAAI2S,gBAAgB5S,MAApC,EAA4CC,GAA5C,EAAkD;AAC9C,gBAAI6S,aAAaF,gBAAgB3S,CAAhB,EAAmBiN,QAApC;AACA,iBAAK,IAAI1K,IAAI,CAAb,EAAgBA,IAAIsQ,WAAW9S,MAA/B,EAAuCwC,GAAvC,EAA6C;AACzC,oBAAIwD,UAAU8M,WAAWtQ,CAAX,CAAd;AACA,oBAAIwD,QAAQ1G,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,wBAAIS,SAASpB,QAAQtG,SAAR,CAAkBC,KAAlB,CAAyB,0BAAzB,CAAb;AACA,wBAAIyH,OAAO,CAAP,KAAa,MAAjB,EAA0B;AACtB,4BAAIoF,IAAIxG,QAAQ3F,aAAR,CAAuB,GAAvB,CAAR;AAAA,4BACI0S,cAAcvG,EAAEuG,WADpB;AAAA,4BAEIzI,YAAYkC,EAAE9O,KAAF,CAAQ4M,SAFxB;AAGIuI,0CAAkBD,gBAAgB3S,CAAhB,EAAmBkD,OAAnB,CAA2BE,MAA7C,IAAuD,CAAC0P,WAAD,EAAc/M,QAAQtI,KAAR,CAAc2N,QAA5B,EACnDrF,QAAQtI,KAAR,CAAcmM,KADqC,EAC9B8I,qBAAqB5I,eADS,EACQO,SADR,CAAvD;AAEJ;AACH;AACJ;AACJ;AACD,gBAAI,CAAEuI,kBAAkBD,gBAAgB3S,CAAhB,EAAmBkD,OAAnB,CAA2BE,MAA7C,CAAN,EAA6D;AACzDwP,kCAAkBD,gBAAgB3S,CAAhB,EAAmBkD,OAAnB,CAA2BE,MAA7C,IAAuD,CAAC,EAAD,EAAK,EAAL,EAC3C,EAD2C,EACvCsP,qBAAqB5I,eADkB,EACD,EADC,CAAvD;AAEH;AACJ;AACD,aAAM,IAAI9J,KAAI,CAAd,EAAiBA,KAAIwS,KAAKzS,MAA1B,EAAkCC,IAAlC,EAAwC;AACpC,gBAAIyG,UAAU+L,KAAKxS,EAAL,CAAd;AAAA,gBACI+S,kBAAkBtM,QAAQwG,QAD9B;AAEA,iBAAK,IAAI1K,KAAI,CAAb,EAAgBA,KAAIwQ,gBAAgBhT,MAApC,EAA4CwC,IAA5C,EAAkD;AAC9C,oBAAKqQ,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,CAAL,EAA4D;AACxD2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2B8P,eAA3B,GAA6CJ,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,EAAqD,CAArD,CAA7C;AACA2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2B+P,uBAA3B,GAAqDL,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,EAAqD,CAArD,CAArD;AACA2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BgQ,oBAA3B,GAAkDN,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,EAAqD,CAArD,CAAlD;AACA2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BiQ,wBAA3B,GAAsDP,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,EAAqD,CAArD,CAAtD;AACA2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BkQ,cAA3B,GAA4CR,kBAAkBG,gBAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BE,MAA7C,EAAqD,CAArD,CAA5C;AACH,iBAND,MAMO;AACH2P,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2B8P,eAA3B,GAA6C,EAA7C;AACAD,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2B+P,uBAA3B,GAAqD,EAArD;AACAF,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BgQ,oBAA3B,GAAkD,EAAlD;AACAH,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BiQ,wBAA3B,GAAsD,EAAtD;AACAJ,oCAAgBxQ,EAAhB,EAAmBW,OAAnB,CAA2BkQ,cAA3B,GAA4C,EAA5C;AACH;AACJ;AACJ;AACJ,KA3Ma;AA4MdzM,kBAAc,sBAAS1D,EAAT,EAAaoQ,GAAb,EAAkB;AAC5B,eAAO,CAACpQ,KAAKA,GAAGqQ,aAAT,KAA2B,CAACrQ,GAAG5D,SAAH,CAAaqH,QAAb,CAAsB2M,GAAtB,CAAnC;AACA,eAAOpQ,EAAP;AACH,KA/Ma;AAgNd0O,sBAAkB,4BAAW;AACzB,YAAI4B,MAAM,EAAV;AACA,YAAIA,MAAM5P,OAAO6P,YAAjB,EAA+B;AAC3BD,kBAAM5P,OAAO6P,YAAP,GAAsBtF,QAAtB,EAAN;AACH,SAFD,MAEO;AACHqF,kBAAMlW,SAASoW,SAAT,CAAmBC,WAAnB,GAAiC/U,IAAvC;AACH;AACD,eAAO4U,GAAP;AACH,KAxNa;AAyNdI,wBAAoB,8BAAW;AAC3BtW,iBAASC,cAAT,CAAyB,wBAAzB,EAAoDoM,OAApD,GAA8D,KAA9D;AACArM,iBAASC,cAAT,CAAyB,0BAAzB,EAAsDC,KAAtD,GAA8D,CAA9D;AACAF,iBAASC,cAAT,CAAyB,0BAAzB,EAAsDC,KAAtD,GAA8D,CAA9D;AACAF,iBAASC,cAAT,CAAyB,yBAAzB,EAAqDoM,OAArD,GAA+D,KAA/D;AACArM,iBAASC,cAAT,CAAyB,yBAAzB,EAAqD+B,SAArD,CAA+DgC,MAA/D,CAAuE,SAAvE;AACAhE,iBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE,CAApE;AACAF,iBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE,CAApE;;AAEAlB,oBAAYuX,kBAAZ,CAAgC,yBAAhC;;AAEAvX,oBAAYuX,kBAAZ,CAAgC,sBAAhC;;AAEAvX,oBAAYuX,kBAAZ,CAAgC,kBAAhC;;AAEAvX,oBAAYuX,kBAAZ,CAAgC,iBAAhC;;AAEAvW,iBAASC,cAAT,CAAyB,wBAAzB,EAAoDC,KAApD,GAA4D,EAA5D;AACAF,iBAASC,cAAT,CAAyB,wBAAzB,EAAoDC,KAApD,GAA4D,EAA5D;AACH,KA5Oa;AA6OdqW,wBAAoB,4BAAUC,OAAV,EAAoB;AACpC,YAAIC,QAAQzW,SAASC,cAAT,CAAyBuW,OAAzB,CAAZ;AACA,YAAIE,oBAAoB1X,YAAYsK,YAAZ,CAA0BmN,KAA1B,EAAiC,qBAAjC,CAAxB;AACA,YAAIjG,SAASkG,kBAAkB/S,UAA/B;AACA6M,eAAOmG,WAAP,CAAoBD,iBAApB;AACA,YAAIE,WAAW5W,SAASyB,aAAT,CAAwB,OAAxB,CAAf;AACAmV,iBAAShU,YAAT,CAAuB,IAAvB,EAA6B4T,OAA7B;AACAI,iBAAS1W,KAAT,GAAiB,EAAjB;AACAsQ,eAAOjQ,WAAP,CAAoBqW,QAApB;AACH,KAtPa;AAuPd3X,gBAAY,sBAAW;AACnB,YAAI4X,MAAMvQ,OAAO8L,QAAP,CAAgBjB,IAA1B;AAAA,YACI2F,QAAQ,IAAIC,MAAJ,CAAW,4BAAX,CADZ;AAAA,YAEIC,UAAUF,MAAM/E,IAAN,CAAW8E,GAAX,CAFd;AAGA,YAAI,CAACG,OAAL,EAAc,OAAO,KAAP;AACd,YAAI,CAACA,QAAQ,CAAR,CAAL,EAAiB,OAAO,EAAP;AACjB,eAAOC,mBAAmBD,QAAQ,CAAR,EAAW7C,OAAX,CAAmB,KAAnB,EAA0B,GAA1B,CAAnB,CAAP;AACH,KA9Pa;AA+Pd+C,oBAAgB,wBAAU5S,KAAV,EAAiB6S,IAAjB,EAAwB;AACpC,YAAIpR,SAASoR,KAAKtR,OAAL,CAAaE,MAA1B;AACA,YAAIqR,WAAW9S,MAAMkK,gBAAN,CAAwB,oBAAoBzI,MAApB,GAA6B,IAArD,CAAf;AACA,YAAIsR,YAAYF,KAAK/Q,iBAAL,GAAyBa,KAAzC;AACA,aAAK,IAAItE,IAAI,CAAb,EAAgBA,IAAIyU,SAAS1U,MAA7B,EAAqCC,GAArC,EAA2C;AACvC,gBAAI0U,YAAYD,SAASzU,CAAT,EAAYyD,iBAAZ,GAAgCa,KAAhD,EAAwD;AACpDoQ,4BAAYD,SAASzU,CAAT,EAAYyD,iBAAZ,GAAgCa,KAA5C;AACH;AACJ;AACD,eAAOoQ,SAAP;AACH,KAzQa;AA0QdC,kBAAc,sBAAUhT,KAAV,EAAiB6S,IAAjB,EAAwB;AAClC,YAAIrR,SAASqR,KAAKtR,OAAL,CAAaC,MAA1B;AACA,YAAIyR,WAAWjT,MAAMkK,gBAAN,CAAwB,oBAAoB1I,MAApB,GAA6B,IAArD,CAAf;AACA,YAAI0R,aAAaL,KAAK/Q,iBAAL,GAAyBgB,MAA1C;AACA,aAAK,IAAIzE,IAAI,CAAb,EAAgBA,IAAI4U,SAAS7U,MAA7B,EAAqCC,GAArC,EAA2C;AACvC,gBAAI6U,aAAaD,SAAS5U,CAAT,EAAYyD,iBAAZ,GAAgCgB,MAAjD,EAA0D;AACtDoQ,6BAAaD,SAAS5U,CAAT,EAAYyD,iBAAZ,GAAgCgB,MAA7C;AACH;AACJ;AACD,eAAOoQ,UAAP;AACH;AApRa,CAAlB;ACAA,IAAI5P,aAAa,SAAbA,UAAa,CAAWqJ,GAAX,EAAgB1P,cAAhB,EAAiC;AAC1C,QAAIC,mBAAJ;AAAA,QACQiW,gBADR;AAAA,QAEI5V,gBAAgBC,SAFpB;AAAA,QAGIC,OAAO,KAHX;AAIA,QAAKR,kBAAkBO,SAAvB,EAAmC;AAC/BN,qBAAaxB,SAASyB,aAAT,CAAwB,KAAxB,CAAb;AACAgW,kBAAUzX,SAASyB,aAAT,CAAwB,KAAxB,CAAV;AACP,YAAIiW,SAAS1X,SAASyB,aAAT,CAAwB,GAAxB,CAAb;AAAA,YACA+L,MAAMxN,SAASyB,aAAT,CAAwB,KAAxB,CADN;AAEOiW,eAAOtX,KAAP,CAAaC,OAAb,GAAuB,cAAvB;AACAqX,eAAOnX,WAAP,CAAoBiN,GAApB;AACAhM,mBAAWQ,SAAX,CAAqBC,GAArB,CAA0B,sBAA1B;AACAwV,gBAAQzV,SAAR,CAAkBC,GAAlB,CAAuB,oBAAvB;AACAwV,gBAAQlX,WAAR,CAAqBmX,MAArB;AACAlW,mBAAWjB,WAAX,CAAwBkX,OAAxB;;AAEAC,eAAO5S,OAAP,GAAiB,UAAU0C,CAAV,EAAc;AAC3BA,cAAEe,cAAF;AACH,SAFD;;AAIAoP,qBAAaC,GAAGC,KAAH,CAASC,MAAT,CAAgBH,UAAhB,GAA6BC,GAAGC,KAAH,CAAS;AAC7DE,mBAAO,0BADsD;AAE7DtF,oBAAQ;AACPnR,sBAAM;AADC,aAFqD;AAK7D0W,sBAAU;AALmD,SAAT,CAA1C;AAOA;AACAL,mBAAW/D,EAAX,CAAc,QAAd,EAAwB,YAAY;AAC5BqE,yBAAaN,WAAWO,KAAX,GAAmBC,GAAnB,CAAuB,WAAvB,EAAoCC,KAApC,GAA4CC,MAA5C,EAAb;AACA7K,gBAAIyD,GAAJ,GAAUgH,WAAWpB,GAArB;AACP,SAHD;AAIA;AACA,YAAI5F,OAAOnP,SAAX,EAAsB;AACd6V,uBAAWrY,IAAX;AACP,SAFD,MAEO;AACCkO,gBAAIyD,GAAJ,GAAUA,GAAV;AACP;AACJ,KAlCD,MAkCO;AACHzP,qBAAaD,eAAeyJ,SAAf,CAA0B,IAA1B,CAAb;;AAEAxJ,mBAAWuC,oBAAX,CAAiC,GAAjC,EAAuC,CAAvC,EAA0Ce,OAA1C,GAAoD,UAAS0C,CAAT,EAAY;AAC5DA,cAAEe,cAAF;AACH,SAFD;;AAIA,YAAIpG,mBAAmBZ,eAAea,SAAf,CAAyBC,KAAzB,CAAgC,0BAAhC,CAAvB;AACA,YAAKF,oBAAoBG,MAAMC,OAAN,CAAeJ,gBAAf,CAAzB,EAA6D;AACzDN,4BAAgBM,iBAAiB,CAAjB,CAAhB;AACAJ,mBAAO,IAAP;AACH;AACJ;;AAED,SAAKoB,IAAL,GAAY,OAAZ;AACA,SAAKC,aAAL,GAAqB,YAAY;AAC7B,eAAO5B,UAAP;AACH,KAFD;AAGP6B,6BAA0B,IAA1B,EAAgCxB,aAAhC,EAA+CE,IAA/C;;AAEA,WAAO,IAAP;AACA,CA5DD;ACAA,IAAIb,mBAAmB,SAAnBA,gBAAmB,GAAY;;AAE/B,YAAMoX,cAAc,CAApB;AAAA,YACIC,WAAW,CADf;AAAA,YAEIC,cAAc,EAFlB;AAAA,YAGIC,WAAW,EAHf;;AAKA,YAAIC,iBAAiB1Y,SAASoI,IAA9B;AACAuQ,iCAAyBD,eAAevY,sBAAf,CAAsC,6BAAtC,EAAqE,CAArE,CAAzB,EACQyY,yBAAyBF,eAAevY,sBAAf,CAAsC,6BAAtC,EAAqE,CAArE,CADjC,EAEQ0Y,sBAAsBH,eAAevY,sBAAf,CAAsC,6BAAtC,EAAqE,CAArE,CAF9B,EAGQ2Y,sBAAsBJ,eAAevY,sBAAf,CAAsC,6BAAtC,EAAqE,CAArE,CAH9B,EAIQ4Y,eAAe/Y,SAASC,cAAT,CAAwB,qBAAxB,CAJvB,EAKQ+Y,YAAYhZ,SAASC,cAAT,CAAwB,kBAAxB,CALpB;;AAOA0Y,+BAAuB7T,OAAvB,GAAiC,YAAY;AACrC,oBAAIiU,aAAa7Y,KAAb,GAAqBoY,WAAzB,EAAsC;AAC9BS,qCAAa7Y,KAAb;AACP;AACR,SAJD;;AAMA0Y,+BAAuB9T,OAAvB,GAAiC,YAAY;AACrC,oBAAIiU,aAAa7Y,KAAb,GAAqBsY,WAAzB,EAAsC;AAC9BO,qCAAa7Y,KAAb;AACP;AACR,SAJD;;AAMA2Y,4BAAoB/T,OAApB,GAA8B,YAAY;AAClC,oBAAIkU,UAAU9Y,KAAV,GAAkBqY,QAAtB,EAAgC;AACxBS,kCAAU9Y,KAAV;AACP;AACR,SAJD;;AAMA4Y,4BAAoBhU,OAApB,GAA8B,YAAY;AAClC,oBAAIkU,UAAU9Y,KAAV,GAAkBuY,QAAtB,EAAgC;AACxBO,kCAAU9Y,KAAV;AACP;AACR,SAJD;;AAMAF,iBAASC,cAAT,CAAwB,qBAAxB,EAA+C6E,OAA/C,GAAyD,YAAY;AAC7D,oBAAImU,UAAUjZ,SAASC,cAAT,CAAwB,qBAAxB,EAA+CC,KAA7D;AAAA,oBACIiV,OAAOnV,SAASC,cAAT,CAAwB,kBAAxB,EAA4CC,KADvD;;AAGAO,2BAAWwY,OAAX,EAAoB9D,IAApB;AACP,SALD;;AAOJ;AACA;AACA;AAEC,CAlDD;ACAA,IAAIzU,iBAAiB,SAAjBA,cAAiB,GAAY;;AAE7B,QAAI4D,QAAQtE,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,CAAZ;AAAA,QACI+Y,qBAAqBlZ,SAASG,sBAAT,CAAgC,cAAhC,CADzB;;AAGA,aAASgZ,qBAAT,CAAgC3C,OAAhC,EAAyC4C,QAAzC,EAAoD;AAChD,YAAKA,WAAW,CAAhB,EAAoB;AACpB,YAAI9U,KAAJ,EAAY;AACR,gBAAI+U,YAAY/U,MAAMP,oBAAN,CAA2B,IAA3B,CAAhB;AACA,gBAAKsV,UAAU3W,MAAV,GAAmB0W,QAAxB,EAAmC;AAC/B,oBAAIE,oBAAoBD,UAAUD,QAAV,EAAoBhZ,KAApB,CAA0BqM,eAAlD;AACA,oBAAI8M,gBAAgBvZ,SAASC,cAAT,CAAwBuW,OAAxB,CAApB;AACA,oBAAK+C,iBAAiBD,iBAAtB,EAA0C;AACtCC,kCAAcrZ,KAAd,GAAsBlB,YAAY4N,QAAZ,CAAsB0M,iBAAtB,CAAtB;AACH;AACJ;AACJ;AAEJ;;AAEDH,0BAAuB,kBAAvB,EAA2C,CAA3C;AACA1U,WAAO,mBAAP,EAA4B2L,aAA5B,CAA0C;AACtCC,gBAAQ,gBAAWC,KAAX,EAAkBC,EAAlB,EAAuB;AAC3B,gBAAI8I,YAAY/U,MAAMP,oBAAN,CAA2B,IAA3B,CAAhB;AACA,iBAAM,IAAIpB,KAAI,CAAd,EAAiBA,KAAI0W,UAAU3W,MAA/B,EAAuCC,MAAK,CAA5C,EAAgD;AAC5C0W,0BAAU1W,EAAV,EAAavC,KAAb,CAAmBqM,eAAnB,GAAqC8D,GAAGhE,KAAH,CAASsE,QAAT,EAArC;AACH;AACJ,SANqC;AAOtC2I,eAAO,iBAAU;AACb,gBAAIH,YAAY/U,MAAMP,oBAAN,CAA2B,IAA3B,CAAhB;AACA,iBAAM,IAAIpB,MAAI,CAAd,EAAiBA,MAAI0W,UAAU3W,MAA/B,EAAuCC,OAAK,CAA5C,EAAgD;AAC5C0W,0BAAU1W,GAAV,EAAavC,KAAb,CAAmBqM,eAAnB,GAAqC,EAArC;AACA,oBAAI3I,MAAMuV,UAAU1W,GAAV,EAAaoB,oBAAb,CAAkC,IAAlC,CAAV;AACA,qBAAM,IAAImB,IAAI,CAAd,EAAiBA,IAAIpB,IAAIpB,MAAzB,EAAiCwC,GAAjC,EAAuC;AACnCpB,wBAAIoB,CAAJ,EAAO9E,KAAP,CAAaqM,eAAb,GAA+B,EAA/B;AACH;AACJ;AACJ;;AAhBqC,KAA1C;;AAoBA0M,0BAAuB,iBAAvB,EAA0C,CAA1C;AACA1U,WAAO,kBAAP,EAA2B2L,aAA3B,CAAyC;AACrCC,gBAAQ,gBAAWC,KAAX,EAAkBC,EAAlB,EAAuB;AAC3B,gBAAI8I,YAAY/U,MAAMP,oBAAN,CAA2B,IAA3B,CAAhB;AACA,iBAAM,IAAIpB,MAAI,CAAd,EAAiBA,MAAI0W,UAAU3W,MAA/B,EAAuCC,OAAK,CAA5C,EAAgD;AAC5C0W,0BAAU1W,GAAV,EAAavC,KAAb,CAAmBqM,eAAnB,GAAqC8D,GAAGhE,KAAH,CAASsE,QAAT,EAArC;AACH;AACJ,SANoC;AAOrC2I,eAAO,iBAAU;AACb,gBAAIH,YAAY/U,MAAMP,oBAAN,CAA2B,IAA3B,CAAhB;AACA,iBAAM,IAAIpB,MAAI,CAAd,EAAiBA,MAAI0W,UAAU3W,MAA/B,EAAuCC,OAAK,CAA5C,EAAgD;AAC5C0W,0BAAU1W,GAAV,EAAavC,KAAb,CAAmBqM,eAAnB,GAAqC,EAArC;AACA,oBAAI3I,MAAMuV,UAAU1W,GAAV,EAAaoB,oBAAb,CAAmC,IAAnC,CAAV;AACA,qBAAM,IAAImB,IAAI,CAAd,EAAiBA,IAAIpB,IAAIpB,MAAzB,EAAiCwC,GAAjC,EAAuC;AACnCpB,wBAAIoB,CAAJ,EAAO9E,KAAP,CAAaqM,eAAb,GAA+B,EAA/B;AACH;AACJ;AACJ;AAhBoC,KAAzC;;AAmBA0M,0BAAuB,sBAAvB,EAA+C,CAA/C;AACA1U,WAAO,uBAAP,EAAgC2L,aAAhC,CAA8C;AAC1CC,gBAAQ,gBAAUC,KAAV,EAAiBC,EAAjB,EAAqB;AACzB,gBAAIkJ,cAAcnV,MAAMP,oBAAN,CAA2B,IAA3B,EAAiC,CAAjC,CAAlB;AACA0V,wBAAYrZ,KAAZ,CAAkBqM,eAAlB,GAAoC8D,GAAGhE,KAAH,CAASsE,QAAT,EAApC;AACH,SAJyC;AAK1C2I,eAAO,iBAAU;AACb,gBAAIC,cAAcnV,MAAMP,oBAAN,CAA2B,IAA3B,EAAiC,CAAjC,CAAlB;AACA0V,wBAAYrZ,KAAZ,CAAkBqM,eAAlB,GAAoC,EAApC;AACA,gBAAI3I,MAAM2V,YAAY1V,oBAAZ,CAAiC,IAAjC,CAAV;AACA,iBAAK,IAAImB,IAAI,CAAb,EAAgBA,IAAIpB,IAAIpB,MAAxB,EAAgCwC,GAAhC,EAAqC;AACjCpB,oBAAIoB,CAAJ,EAAO9E,KAAP,CAAaqM,eAAb,GAA+B,EAA/B;AACH;AACJ;AAZyC,KAA9C;;AAeA,aAASiN,yBAAT,CAAoCpV,KAApC,EAA4C;AACxC,YAAIqV,qBAAqB3Z,SAASC,cAAT,CAAyB,wBAAzB,CAAzB;;AAEA,YAAIqE,SAASA,MAAMtC,SAAN,CAAgBqH,QAAhB,CAA0B,yBAA1B,CAAb,EAAqE;AACjEsQ,+BAAmBtN,OAAnB,GAA6B,IAA7B;AACH,SAFD,MAEO;AACHsN,+BAAmBtN,OAAnB,GAA6B,KAA7B;AACH;AACJ;AACDqN,8BAA2BpV,KAA3B;;AAEA,aAASsV,6BAAT,GAAyC;AACrC,YAAItV,QAAQtE,SAASG,sBAAT,CAAgC,oBAAhC,CAAZ;AACA,YAAKmE,MAAM5B,MAAN,GAAe,CAApB,EAAwB;AACpB,gBAAImX,mBAAmBvV,MAAM,CAAN,EAASlE,KAAT,CAAe0Z,WAAtC;AACA,gBAAKD,gBAAL,EAAwB;AACpB,oBAAIE,wBAAwB/Z,SAASC,cAAT,CAAyB,yBAAzB,CAA5B;AACA,oBAAK8Z,qBAAL,EAA6B;AACzBA,0CAAsB7Z,KAAtB,GAA8BlB,YAAY4N,QAAZ,CAAsBiN,gBAAtB,CAA9B;AACH;AACJ;;AAED,gBAAIG,mBAAmB1V,MAAM,CAAN,EAASlE,KAAT,CAAe6Z,WAAtC;AACA,gBAAKD,gBAAL,EAAwB;AACpB,oBAAIE,6BAA6Bla,SAASC,cAAT,CAAwB,0BAAxB,CAAjC;AAAA,oBACIka,6BAA6Bna,SAASC,cAAT,CAAwB,0BAAxB,CADjC;;AAGA,oBAAKia,0BAAL,EAAkC;AAC9BA,+CAA2Bha,KAA3B,GAAmC2D,SAAUmW,gBAAV,CAAnC;AACH;AACD,oBAAKG,0BAAL,EAAkC;AAC9BA,+CAA2Bja,KAA3B,GAAmC2D,SAAUmW,gBAAV,CAAnC;AACH;AACJ;;AAGD,gBAAII,UAAU9V,MAAM,CAAN,EAASvB,aAAT,CAAwB,IAAxB,CAAd;AACA,gBAAIsX,mBAAmBD,QAAQha,KAAR,CAAc6Z,WAArC;AACA,gBAAKI,gBAAL,EAAwB;AACpB,oBAAIC,wBAAwBta,SAASC,cAAT,CAAyB,yBAAzB,CAA5B;AACA,oBAAIsa,uBAAuBva,SAASC,cAAT,CAAyB,yBAAzB,CAA3B;AACA,oBAAKoa,oBAAoBxW,SAAUwW,gBAAV,IAA+B,CAAxD,EAA4D;AACxD,wBAAKC,qBAAL,EAA6B;AACzBA,8CAAsBjO,OAAtB,GAAgC,IAAhC;;AAEA,4BAAKkO,oBAAL,EAA4B;AACxBA,iDAAqBvY,SAArB,CAA+BC,GAA/B,CAAoC,SAApC;AACA,gCAAIuY,6BAA6Bxa,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACA,gCAAIwa,8BAA6Bza,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACAua,uDAA2Bta,KAA3B,GAAmC2D,SAAUwW,gBAAV,CAAnC;AACAI,wDAA2Bva,KAA3B,GAAmC2D,SAAUwW,gBAAV,CAAnC;AACH;AACJ;AACJ,iBAZD,MAYO;AACHC,0CAAsBjO,OAAtB,GAAgC,KAAhC;AACH;AACJ;;AAED,gBAAO2N,oBAAoBnW,SAAUmW,gBAAV,IAA+B,CAArD,IAA8DK,oBAAoBxW,SAAUwW,gBAAV,IAA+B,CAAtH,EAA4H;AACxHra,yBAASC,cAAT,CAAyB,kCAAzB,EAA8DG,KAA9D,CAAoEC,OAApE,GAA8E,EAA9E;AACH;AACJ;AACJ;;AAEDuZ;;AAEAnV,WAAO,0BAAP,EAAmC2L,aAAnC,CAAiD;AAC7CC,gBAAQ,gBAAUC,KAAV,EAAiBC,EAAjB,EAAqB;AACzB,gBAAImK,aAAapW,MAAMP,oBAAN,CAA2B,IAA3B,CAAjB;AACAO,kBAAMlE,KAAN,CAAYwE,MAAZ,GAAqB5E,SAAS+C,aAAT,CAAuB,2BAAvB,EAAoD7C,KAApD,GAA4D,WAA5D,GAA0EqQ,GAAGhE,KAAH,CAASsE,QAAT,EAA/F;;AAEA,iBAAK,IAAIlO,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC,oBAAIgY,yBAAyB3a,SAAS+C,aAAT,CAAuB,iCAAvB,EAA0D7C,KAAvF;AACA,oBAAKF,SAASC,cAAT,CAAwB,yBAAxB,EAAmDoM,OAAxD,EAAkE;AAC9DqO,+BAAW/X,CAAX,EAAcvC,KAAd,CAAoBwE,MAApB,GAA6B,CAAE+V,0BAA0B,CAA1B,GAA8BA,sBAA9B,GAAuD,CAAzD,IAA+D,WAA/D,GAA6EpK,GAAGhE,KAAH,CAASsE,QAAT,EAA1G;AACH;AACJ;AACJ,SAX4C;AAY7C2I,eAAO,iBAAW;AACd,gBAAIkB,aAAapW,MAAMP,oBAAN,CAA2B,IAA3B,CAAjB;AACAO,kBAAMlE,KAAN,CAAY0Z,WAAZ,GAA0B,EAA1B;;AAEA,iBAAK,IAAInX,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+X,2BAAW/X,CAAX,EAAcvC,KAAd,CAAoB0Z,WAApB,GAAkC,EAAlC;AACH;AACJ;AAnB4C,KAAjD;;AAsBA,aAASc,kBAAT,CAA4B1a,KAA5B,EAAmC;AAC/B,YAAIwa,aAAapW,MAAMP,oBAAN,CAA2B,IAA3B,CAAjB;AACA,aAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+X,uBAAW/X,CAAX,EAAcvC,KAAd,CAAoB6Z,WAApB,GAAkCja,SAAS+C,aAAT,CAAuB,iCAAvB,EAA0D7C,KAA1D,GAAkE,IAApG;AACAwa,uBAAW/X,CAAX,EAAcvC,KAAd,CAAoBya,WAApB,GAAkC,OAAlC;AACH;AACJ;;AAED,aAASC,cAAT,CAAwB5a,KAAxB,EAA+B;AAC3B,YAAIwa,aAAapW,MAAMP,oBAAN,CAA2B,IAA3B,CAAjB;AACA,aAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+X,uBAAW/X,CAAX,EAAcvC,KAAd,CAAoBoE,OAApB,GAA8BtE,QAAQ,IAAtC;AACH;AACJ;;AAED,aAAS6a,cAAT,CAAyB1O,OAAzB,EAAmC;AAC/B,YAAI2O,MAAJ;AAAA,YAAYzO,QAAQvM,SAAS+C,aAAT,CAAuB,0BAAvB,EAAmD7C,KAAnD,IAA4D4B,SAA5D,GAChB9B,SAAS+C,aAAT,CAAuB,0BAAvB,EAAmD7C,KADnC,GAC2C,YAD/D;AAEI,YAAKF,SAAS+C,aAAT,CAAwB,iCAAxB,EAA4D7C,KAA5D,IAAqE,CAArE,IAA0EF,SAAS+C,aAAT,CAAwB,iCAAxB,EAA4D7C,KAA5D,IAAqE,CAApJ,EAAwJ;AACpJF,qBAAS+C,aAAT,CAAwB,iCAAxB,EAA4D7C,KAA5D,GAAoE,CAApE;AACAF,qBAAS+C,aAAT,CAAwB,iCAAxB,EAA4D7C,KAA5D,GAAoE,CAApE;AACH;AACD,YAAI+G,QAAQjH,SAAS+C,aAAT,CAAwB,iCAAxB,EAA4D7C,KAA5D,GAAoE,IAAhF;AACJ,YAAI+a,mBAAmBjb,SAASG,sBAAT,CAAgC,oBAAhC,CAAvB;AACA,YAAI8a,iBAAiBvY,MAAjB,GAA0B,CAA9B,EAAkC;AAC9B,gBAAI2J,WAAW,SAAf,EAA0B;AACtBrM,yBAASC,cAAT,CAAwB,yBAAxB,EAAmDG,KAAnD,CAAyD8a,YAAzD,GAAwE,KAAxE;AACA,oBAAIR,aAAaO,iBAAiB,CAAjB,EAAoBlX,oBAApB,CAA0C,IAA1C,CAAjB;AACA,qBAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+X,+BAAW/X,CAAX,EAAcvC,KAAd,CAAoBwE,MAApB,GAA6BqC,QAAQ,SAAR,GAAoBsF,KAAjD;AACH;AACDvM,yBAASC,cAAT,CAAyB,yBAAzB,EAAqD+B,SAArD,CAA+DC,GAA/D,CAAoE,SAApE;AACH,aAPD,MAOO;AACHjC,yBAASC,cAAT,CAAyB,yBAAzB,EAAqD+B,SAArD,CAA+DgC,MAA/D,CAAuE,SAAvE;AACA,oBAAI0W,aAAaO,iBAAiB,CAAjB,EAAoBlX,oBAApB,CAA0C,IAA1C,CAAjB;AACA,qBAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAI+X,WAAWhY,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+X,+BAAW/X,CAAX,EAAcvC,KAAd,CAAoBwE,MAApB,GAA6B,eAAe2H,KAA5C;AACAmO,+BAAW/X,CAAX,EAAcvC,KAAd,CAAoBwE,MAApB,GAA6B,IAA7B;AACH;AACJ;AACJ;AAEJ;;AAED,aAASuW,aAAT,CAAwBjb,KAAxB,EAAgC;AAC5BoE,cAAMlE,KAAN,CAAY6Z,WAAZ,GAA0B/Z,QAAQ,IAAlC;AACAoE,cAAMlE,KAAN,CAAYya,WAAZ,GAA0B,OAA1B;AACH;;AAED,aAASO,mBAAT,GAA+B;AAC3B,YAAI9W,QAAQtE,SAASG,sBAAT,CAAgC,oBAAhC,CAAZ;;AAEA,YAAKmE,MAAM5B,MAAN,GAAe,CAApB,EAAwB;AACpB,gBAAIe,KAAKa,MAAM,CAAN,EAASvB,aAAT,CAAwB,IAAxB,CAAT;;AAEA,gBAAKU,EAAL,EAAU;AACN,oBAAIe,UAAUf,GAAGrD,KAAH,CAASoE,OAAvB;;AAEA,oBAAKA,OAAL,EAAe;AACX,wBAAI6W,sBAAsBrb,SAASC,cAAT,CAAwB,wBAAxB,CAA1B;AAAA,wBACIqb,uBAAsBtb,SAASC,cAAT,CAAwB,wBAAxB,CAD1B;;AAGA,wBAAKob,mBAAL,EAA2B;AACvBA,4CAAoBnb,KAApB,GAA4B2D,SAAUW,OAAV,CAA5B;AACH;AACD,wBAAK8W,oBAAL,EAA2B;AACvBA,6CAAoBpb,KAApB,GAA4B2D,SAAUW,OAAV,CAA5B;AACH;AACJ;AACJ;AACJ;AACJ;;AAED4W;;AAEA,aAASG,eAAT,CAA0BC,gBAA1B,EAA4CC,QAA5C,EAAsDC,QAAtD,EAAiE;AAC7DF,yBAAiBG,SAAjB,GAA6B,YAAW;AACpC,gBAAIC,YAAY,KAAK1b,KAArB;AACA0b,wBAAYC,OAAQD,SAAR,CAAZ;AACA,gBAAKA,UAAU,CAAV,KAAgB,CAArB,EAAyB;AACrB,qBAAK1b,KAAL,GAAa,EAAb;AACH,aAFD,MAEO;AACH0b,4BAAYA,UAAUE,SAAV,CAAqB,CAArB,EAAwBL,QAAxB,CAAZ;AACA,qBAAKvb,KAAL,GAAa0b,SAAb;AACH;AACJ,SATD;AAUAJ,yBAAiBO,OAAjB,GAA2B,YAAW;AAClC,gBAAIH,YAAY,KAAK1b,KAArB;AACA0b,wBAAYC,OAAQD,SAAR,CAAZ;AACA,gBAAKA,YAAYF,QAAjB,EAA4B;AACxB,qBAAKxb,KAAL,GAAawb,QAAb;AACH;AACJ,SAND;AAOH;;AAED,QAAIM,wBAAwBhc,SAASC,cAAT,CAAyB,0BAAzB,CAA5B;AACAsb,oBAAiBS,qBAAjB,EAAwC,CAAxC,EAA2C,EAA3C;;AAEA,QAAIvB,6BAA6Bza,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACAsb,oBAAiBd,0BAAjB,EAA6C,CAA7C,EAAgD,EAAhD;;AAEA,QAAIa,sBAAsBtb,SAASC,cAAT,CAAyB,wBAAzB,CAA1B;AACAsb,oBAAiBD,mBAAjB,EAAsC,CAAtC,EAAyC,EAAzC;;AAEA,QAAIW,yBAAyBjc,SAASC,cAAT,CAAyB,4BAAzB,CAA7B;AACAsb,oBAAiBU,sBAAjB,EAAyC,CAAzC,EAA4C,EAA5C;;AAEA,QAAIC,uBAAuBlc,SAASC,cAAT,CAAyB,yBAAzB,CAA3B;AACAsb,oBAAiBW,oBAAjB,EAAuC,CAAvC,EAA0C,GAA1C;;AAEA,QAAIC,6BAA6Bnc,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACAsb,oBAAiBY,0BAAjB,EAA6C,CAA7C,EAAgD,GAAhD;;AAEA,QAAIC,2BAA2Bpc,SAASC,cAAT,CAAyB,8BAAzB,CAA/B;AACAsb,oBAAiBa,wBAAjB,EAA2C,CAA3C,EAA8C,GAA9C;;AAIApc,aAASC,cAAT,CAAwB,wBAAxB,EAAkD8Q,OAAlD,GAA4D,YAAY;AACpE/Q,iBAASC,cAAT,CAAwB,wBAAxB,EAAkDC,KAAlD,GAA0D,KAAKA,KAA/D;AACA4a,uBAAe,KAAK5a,KAApB;AACAoE,cAAM+X,cAAN;AACH,KAJD;;AAMArc,aAASC,cAAT,CAAwB,wBAAxB,EAAkD+Q,QAAlD,GAA6D,YAAY;AACrEhR,iBAASC,cAAT,CAAwB,wBAAxB,EAAkDC,KAAlD,GAA0D,KAAKA,KAA/D;AACA4a,uBAAe,KAAK5a,KAApB;AACAoE,cAAM+X,cAAN;AACH,KAJD;;AAMArc,aAASC,cAAT,CAAwB,0BAAxB,EAAoD8Q,OAApD,GAA8D,YAAY;AACtE/Q,iBAASC,cAAT,CAAwB,0BAAxB,EAAoDC,KAApD,GAA4D,KAAKA,KAAjE;AACAib,sBAAc,KAAKjb,KAAnB;AACAoE,cAAM+X,cAAN;;AAEA,YAAIC,uBAAuBtc,SAASC,cAAT,CAAwB,yBAAxB,EAAmDoM,OAA9E;AAAA,YACIkQ,0BAA0Bvc,SAASC,cAAT,CAAyB,kCAAzB,CAD9B;AAEA,YAAK,KAAKC,KAAL,IAAc,CAAd,IAAmBoc,wBAAwB,KAAhD,EAAwD;AACpDC,oCAAwBnc,KAAxB,CAA8BC,OAA9B,GAAwC,MAAxC;AACH,SAFD,MAEO;AACHkc,oCAAwBnc,KAAxB,CAA8BC,OAA9B,GAAwC,EAAxC;AACH;AACJ,KAZD;;AAcAL,aAASC,cAAT,CAAwB,0BAAxB,EAAoD+Q,QAApD,GAA+D,YAAY;AACvEhR,iBAASC,cAAT,CAAwB,0BAAxB,EAAoDC,KAApD,GAA4D,KAAKA,KAAjE;AACAib,sBAAc,KAAKjb,KAAnB;AACAoE,cAAM+X,cAAN;AACH,KAJD;;AAMArc,aAASC,cAAT,CAAwB,gCAAxB,EAA0D8Q,OAA1D,GAAoE,YAAY;AAC5E/Q,iBAASC,cAAT,CAAwB,gCAAxB,EAA0DC,KAA1D,GAAkE,KAAKA,KAAvE;AACA0a,2BAAmB,KAAK1a,KAAxB;AACAoE,cAAM+X,cAAN;AACH,KAJD;;AAMArc,aAASC,cAAT,CAAwB,gCAAxB,EAA0D+Q,QAA1D,GAAqE,YAAY;AAC7EhR,iBAASC,cAAT,CAAwB,gCAAxB,EAA0DC,KAA1D,GAAkE,KAAKA,KAAvE;AACA0a,2BAAmB,KAAK1a,KAAxB;AACAoE,cAAM+X,cAAN;AACH,KAJD;;AAMArc,aAASC,cAAT,CAAwB,yBAAxB,EAAmD+Q,QAAnD,GAA8D,YAAY;AACtE,YAAI1M,KAAJ,EAAY;AACR,gBAAII,MAAM,KAAK2H,OAAL,GAAe,SAAf,GAA2B,WAArC;AACA0O,2BAAgBrW,GAAhB;AACA,gBAAIuV,cAAcja,SAASC,cAAT,CAAwB,0BAAxB,EAAoDC,KAAtE;AAAA,gBACIqc,0BAA0Bvc,SAASC,cAAT,CAAyB,kCAAzB,CAD9B;AAEA,gBAAIyE,OAAO,WAAP,IAAsBuV,eAAe,CAAzC,EAA6C;AACzCsC,wCAAwBnc,KAAxB,CAA8BC,OAA9B,GAAwC,MAAxC;AACH,aAFD,MAEO;AACHkc,wCAAwBnc,KAAxB,CAA8BC,OAA9B,GAAwC,EAAxC;AACH;AACJ;AAEJ,KAbD;;AAeAL,aAASC,cAAT,CAAyB,gCAAzB,EAA4D8Q,OAA5D,GAAsE,YAAY;AAC9E/Q,iBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE,KAAKA,KAAzE;AACAoE,cAAMkY,cAAN,CAAsB,KAAKtc,KAA3B;AACH,KAHD;;AAKAF,aAASC,cAAT,CAAyB,gCAAzB,EAA4D+Q,QAA5D,GAAuE,YAAY;AAC/EhR,iBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE,KAAKA,KAAzE;AACAoE,cAAMkY,cAAN,CAAsB,KAAKtc,KAA3B;AACH,KAHD;;AAKAF,aAASC,cAAT,CAAyB,oCAAzB,EAAgE+Q,QAAhE,GAA2E,YAAY;AACnF,YAAI,KAAK3E,OAAT,EAAmB;AACf,gBAAIoQ,cAAcnY,MAAMvB,aAAN,CAAqB,mBAArB,CAAlB;AACA,gBAAIkE,QAAQjI,YAAYkY,cAAZ,CAA4B5S,KAA5B,EAAmCmY,WAAnC,CAAZ;AACAnY,kBAAMkY,cAAN,CAAsBvV,KAAtB;AACH,SAJD,MAIO;AACH3C,kBAAMkY,cAAN,CAAsB,KAAtB,EAA6B,IAA7B;AACA,gBAAIC,eAAcnY,MAAMvB,aAAN,CAAqB,mBAArB,CAAlB;AACA,gBAAIkE,SAAQjI,YAAYkY,cAAZ,CAA4B5S,KAA5B,EAAmCmY,YAAnC,CAAZ;AACAzc,qBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE+G,MAApE;AACAjH,qBAASC,cAAT,CAAyB,gCAAzB,EAA4DC,KAA5D,GAAoE+G,MAApE;AACH;AACJ,KAZD;;AAcAjH,aAASC,cAAT,CAAyB,8BAAzB,EAA0D8Q,OAA1D,GAAoE,YAAY;AAC5E/Q,iBAASC,cAAT,CAAyB,8BAAzB,EAA0DC,KAA1D,GAAkE,KAAKA,KAAvE;AACAoE,cAAMoY,YAAN,CAAoB,KAAKxc,KAAzB;AACH,KAHD;;AAKAF,aAASC,cAAT,CAAyB,8BAAzB,EAA0D+Q,QAA1D,GAAqE,YAAY;AAC7EhR,iBAASC,cAAT,CAAyB,8BAAzB,EAA0DC,KAA1D,GAAkE,KAAKA,KAAvE;AACAoE,cAAMoY,YAAN,CAAoB,KAAKxc,KAAzB;AACH,KAHD;;AAKAF,aAASC,cAAT,CAAyB,kCAAzB,EAA8D+Q,QAA9D,GAAyE,YAAY;AACjF,YAAI,KAAK3E,OAAT,EAAmB;AACf,gBAAIoQ,cAAcnY,MAAMvB,aAAN,CAAqB,mBAArB,CAAlB;AACA,gBAAIqE,SAASpI,YAAYsY,YAAZ,CAA0BhT,KAA1B,EAAiCmY,WAAjC,CAAb;AACAnY,kBAAMoY,YAAN,CAAoBtV,MAApB;AACH,SAJD,MAIO;AACH9C,kBAAMoY,YAAN,CAAoB,KAApB,EAA2B,IAA3B;AACA,gBAAID,gBAAcnY,MAAMvB,aAAN,CAAqB,mBAArB,CAAlB;AACA,gBAAIqE,UAASpI,YAAYsY,YAAZ,CAA0BhT,KAA1B,EAAiCmY,aAAjC,CAAb;AACAzc,qBAASC,cAAT,CAAyB,8BAAzB,EAA0DC,KAA1D,GAAkEkH,OAAlE;AACApH,qBAASC,cAAT,CAAyB,8BAAzB,EAA0DC,KAA1D,GAAkEkH,OAAlE;AACH;AACJ,KAZD;;AAcA,aAASuV,wBAAT,CAAmCrY,KAAnC,EAA0CsY,SAA1C,EAAsD;;AAElD,YAAIA,UAAUvQ,OAAd,EAAwB;AACpBrN,wBAAYuK,kBAAZ,CAAgCjF,KAAhC;;AAEAA,kBAAMtC,SAAN,CAAgBC,GAAhB,CAAqB,yBAArB;AACAqC,kBAAM6Q,IAAN,CAAW,CAAX,EAAcnT,SAAd,CAAwBC,GAAxB,CAA6B,iBAA7B;AACH,SALD,MAKO;AACH,gBAAIkT,OAAO7Q,MAAM6Q,IAAjB;AACA7Q,kBAAMtC,SAAN,CAAgBgC,MAAhB,CAAwB,yBAAxB;AACAmR,iBAAK,CAAL,EAAQnT,SAAR,CAAkBgC,MAAlB,CAA0B,iBAA1B;;AAEA,iBAAM,IAAIrB,MAAI,CAAd,EAAiBA,MAAIwS,KAAKzS,MAA1B,EAAkCC,KAAlC,EAAwC;AACpC,oBAAIyG,UAAU+L,KAAKxS,GAAL,CAAd;AAAA,oBACI+S,kBAAkBtM,QAAQwG,QAD9B;AAEA,qBAAK,IAAI1K,IAAI,CAAb,EAAgBA,IAAIwQ,gBAAgBhT,MAApC,EAA4CwC,GAA5C,EAAkD;AAC9CwQ,oCAAgBxQ,CAAhB,EAAmBoM,eAAnB,CAAoC,wBAApC;AACAoE,oCAAgBxQ,CAAhB,EAAmBoM,eAAnB,CAAoC,kCAApC;AACAoE,oCAAgBxQ,CAAhB,EAAmBoM,eAAnB,CAAoC,8BAApC;AACAoE,oCAAgBxQ,CAAhB,EAAmBoM,eAAnB,CAAoC,kCAApC;AACAoE,oCAAgBxQ,CAAhB,EAAmBoM,eAAnB,CAAoC,uBAApC;AACH;AACJ;AACJ;AACJ;;AAEDtR,aAASC,cAAT,CAAyB,wBAAzB,EAAoD+Q,QAApD,GAA+D,YAAY;AACvE2L,iCAA0BrY,KAA1B,EAAiC,IAAjC;AACH,KAFD;;AAIA,SAAK,IAAI3B,IAAI,CAAb,EAAgBA,IAAIuW,mBAAmBxW,MAAvC,EAA+CC,GAA/C,EAAoD;AAChDuW,2BAAmBvW,CAAnB,EAAsBka,WAAtB,GAAoC,UAAUrV,CAAV,EAAa;AAC7CA,cAAEmB,YAAF,CAAemU,OAAf,CAAuB,aAAvB,EAAsC,KAAKjX,OAAL,CAAakX,WAAnD;AACAvV,cAAEmB,YAAF,CAAemU,OAAf,CAAwB,iBAAiB,KAAKjX,OAAL,CAAakX,WAAtD,EAAmE,iBAAiB,KAAKlX,OAAL,CAAakX,WAAjG;AACH,SAHD;AAIH;;AAED,QAAIzY,KAAJ,EAAY;AACRtE,iBAASC,cAAT,CAAwB,oCAAxB,EAA8D6E,OAA9D,GAAwER,MAAM0Y,mBAA9E;AACAhd,iBAASC,cAAT,CAAyB,4BAAzB,EAAwD6E,OAAxD,GAAkER,MAAM0Y,mBAAxE;AACAhd,iBAASC,cAAT,CAAyB,sCAAzB,EAAkE6E,OAAlE,GAA4ER,MAAM0Y,mBAAlF;AACAhd,iBAASC,cAAT,CAAwB,kBAAxB,EAA4C6E,OAA5C,GAAsDR,MAAM2Y,cAA5D;AACAjd,iBAASC,cAAT,CAAwB,oBAAxB,EAA8C6E,OAA9C,GAAwDR,MAAM4Y,gBAA9D;AACAld,iBAASC,cAAT,CAAwB,qBAAxB,EAA+C6E,OAA/C,GAAyDR,MAAM6Y,YAA/D;AACAnd,iBAASC,cAAT,CAAwB,oBAAxB,EAA8C6E,OAA9C,GAAwDR,MAAM8Y,WAA9D;AACApd,iBAASC,cAAT,CAAwB,qBAAxB,EAA+C6E,OAA/C,GAAyDR,MAAM+Y,YAA/D;AACArd,iBAASC,cAAT,CAAwB,uBAAxB,EAAiD6E,OAAjD,GAA2DR,MAAMgZ,cAAjE;AACAtd,iBAASC,cAAT,CAAwB,wBAAxB,EAAkD6E,OAAlD,GAA4DR,MAAMiZ,eAAlE;AACAvd,iBAASC,cAAT,CAAwB,uBAAxB,EAAiD6E,OAAjD,GAA2DR,MAAMkZ,cAAjE;AACAxd,iBAASC,cAAT,CAAwB,oBAAxB,EAA8C6E,OAA9C,GAAwDR,MAAMmZ,YAA9D;AACAzd,iBAASC,cAAT,CAAwB,iBAAxB,EAA2C6E,OAA3C,GAAqDR,MAAMoZ,SAA3D;AACA1d,iBAASC,cAAT,CAAwB,kBAAxB,EAA4C6E,OAA5C,GAAsDR,MAAMqZ,UAA5D;AACA3d,iBAASC,cAAT,CAAwB,iBAAxB,EAA2C6E,OAA3C,GAAqDR,MAAMsZ,SAA3D;AACH;;AAED5d,aAAS+C,aAAT,CAAwB,yBAAxB,EAAoD+B,OAApD,GAA8D,YAAW;AACrE,YAAI0E,gBAAgBxJ,SAAS+C,aAAT,CAAwB,iBAAxB,CAApB;AACA,YAAIyG,aAAJ,EAAoB;AAChB,gBAAKA,cAAcxH,SAAd,CAAwBqH,QAAxB,CAAkC,WAAlC,CAAL,EAAuD;AACnDG,8BAAcxH,SAAd,CAAwBgC,MAAxB,CAAgC,WAAhC;AACH,aAFD,MAEO;AACHwF,8BAAcxH,SAAd,CAAwBC,GAAxB,CAA6B,WAA7B;AACH;AACJ;AACJ,KATD;;AAWA;AACA;AACA,QAAI4b,mBAAmB7d,SAASG,sBAAT,CAAiC,oBAAjC,EAAwD,CAAxD,CAAvB;AACA0d,qBAAiBzc,gBAAjB,CAAmC,OAAnC,EAA4C,UAAUoG,CAAV,EAAc;AACtD,YAAI,CAAEA,EAAEiJ,MAAF,CAASzO,SAAT,CAAmBqH,QAAnB,CAA6B,iBAA7B,CAAF,IAAsD,CAAErK,YAAYsK,YAAZ,CAA0B9B,EAAEiJ,MAA5B,EAAoC,iBAApC,CAAxD,IACG,CAAEjJ,EAAEiJ,MAAF,CAASzO,SAAT,CAAmBqH,QAAnB,CAA6B,oBAA7B,CADL,IAC4D,CAAErK,YAAYsK,YAAZ,CAA0B9B,EAAEiJ,MAA5B,EAAoC,oBAApC,CADlE,EAC+H;AAC3HzQ,qBAASG,sBAAT,CAAiC,yBAAjC,EAA6D,CAA7D,EAAgEC,KAAhE,CAAsEC,OAAtE,GAAgF,OAAhF;AACAL,qBAASG,sBAAT,CAAiC,uBAAjC,EAA2D,CAA3D,EAA8DC,KAA9D,CAAoEC,OAApE,GAA8E,OAA9E;AACAL,qBAASC,cAAT,CAAyB,uBAAzB,EAAmDG,KAAnD,CAAyDC,OAAzD,GAAmE,MAAnE;AACA,gBAAIyd,mBAAmB9d,SAASC,cAAT,CAAyB,oBAAzB,CAAvB;AACA,gBAAI6d,iBAAiBC,YAAjB,CAA+B,wBAA/B,CAAJ,EAAgE;AAC5D/d,yBAASC,cAAT,CAAyB6d,iBAAiBjS,YAAjB,CAA+B,wBAA/B,CAAzB,EAAqF7J,SAArF,CAA+FgC,MAA/F,CAAuG,gBAAvG;AACH;AACJ;AACL,KAXA,EAWE,KAXF;AAaH,CAxdD;ACAA,IAAI2D,YAAY,SAAZA,SAAY,CAAWqW,aAAX,EAA0Bzc,cAA1B,EAA2C;;AAEvD,QAAI0c,OAAOje,SAASyB,aAAT,CAAuB,IAAvB,CAAX;AAAA,QAAyCyc,IAAzC;AAAA,QACI1c,aAAaxB,SAASyB,aAAT,CAAuB,KAAvB,CADjB;AAAA,QAEII,gBAAgBC,SAFpB;AAAA,QAGIC,OAAO,KAHX;AAIAP,eAAWQ,SAAX,CAAqBC,GAArB,CAA0B,0BAA1B;;AAEA,SAAKkB,IAAL,GAAY,MAAZ;;AAEA,QAAI6a,kBAAkB,EAAtB,EAA0B;AACtB;AACH,KAFD,MAEO,IAAK,CAACA,aAAN,EAAsB;AACzB,aAAK,IAAIrb,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;AACxBub,mBAAO,IAAI1Y,aAAJ,CAAmB,mBAAmB7C,IAAI,CAAvB,IAA4B,MAA/C,CAAP;AACAsb,iBAAK1d,WAAL,CAAiB2d,KAAK9a,aAAL,EAAjB;AACH;AACJ,KALM,MAKA;AACH,YAAIjB,mBAAmBZ,eAAea,SAAf,CAAyBC,KAAzB,CAAgC,0BAAhC,CAAvB;AACI,YAAKF,oBAAoBG,MAAMC,OAAN,CAAeJ,gBAAf,CAAzB,EAA6D;AACzDN,4BAAgBM,iBAAiB,CAAjB,CAAhB;AACAJ,mBAAO,IAAP;AACH;;AAEL,aAAM,IAAIY,IAAI,CAAd,EAAiBA,IAAIqb,cAActb,MAAnC,EAA2CC,GAA3C,EAAiD;AAC7C,gBAAIgP,WAAWpQ,eAAewB,aAAf,CAA8B,IAA9B,CAAf;AACAmb,mBAAO,IAAI1Y,aAAJ,CAAmBwY,cAAcrb,CAAd,CAAnB,EAAqCgP,QAArC,EAA+C,IAA/C,CAAP;AACAsM,iBAAK1d,WAAL,CAAiB2d,KAAK9a,aAAL,EAAjB;AACH;AACJ;AACD5B,eAAWjB,WAAX,CAAuB0d,IAAvB;AACA;;AAEA,SAAK7a,aAAL,GAAqB,YAAY;AAC7B,eAAO5B,UAAP;AACH,KAFD;AAGA6B,6BAA0B,IAA1B,EAAgCxB,aAAhC,EAA+CE,IAA/C;AACA/C,gBAAY2T,yBAAZ,CAAuCsL,IAAvC;;AAEA,WAAO,IAAP;AACH,CAxCD;ACAA,IAAIzY,gBAAgB,SAAhBA,aAAgB,CAAWlE,IAAX,EAAiBC,cAAjB,EAAiCQ,IAAjC,EAAwC;AACxD,QAAIoc,2BAAJ;AACA,QAAK5c,kBAAkBO,SAAlB,IAAiCP,kBAAkBQ,IAAxD,EAAgE;AAC5D,YAAIT,QAAQQ,SAAZ,EAAuBR,OAAO,eAAP;AACvB,YAAIE,aAAaxB,SAASyB,aAAT,CAAuB,IAAvB,CAAjB;;AACI;AACA2c,qBAAape,SAASyB,aAAT,CAAuB,KAAvB,CAFjB;AAGI;AACJ;AACA2c,mBAAWpc,SAAX,CAAqBC,GAArB,CAAyB,wBAAzB;AACA;AACA,YAAKV,cAAL,EAAsB;AAClB,gBAAI8c,WAAW9c,eAAesK,YAAf,CAA6B,OAA7B,CAAf;AACA,gBAAKwS,QAAL,EAAgB;AACZ7c,2BAAWoB,YAAX,CAAyB,OAAzB,EAAkCyb,QAAlC;AACH;AACJ;AACD;AACA7c,mBAAWjB,WAAX,CAAuB6d,UAAvB;AACA;AACAA,mBAAWlc,SAAX,GAAuBZ,IAAvB;AACA8c,mBAAWrC,OAAX,GAAqBzV,OAAOgY,mBAA5B;;AAEAH,6BAAqB,IAArB;AACH,KAtBD,MAsBO;AACH,YAAI3c,aAAaD,cAAjB;AACA,YAAI6c,aAAa5c,WAAWrB,sBAAX,CAAmC,wBAAnC,EAA8D,CAA9D,CAAjB;;AAEAie,mBAAWrC,OAAX,GAAqBzV,OAAOgY,mBAA5B;;AAEAH,6BAAqB,KAArB;AACH;;AAED3c,eAAW+c,YAAX,GAA0B,UAAUjO,KAAV,EAAiB;;AAEvC,YAAIkO,YAAYxe,SAASyB,aAAT,CAAuB,MAAvB,CAAhB;AAAA,YACIgd,UAAUze,SAASyB,aAAT,CAAuB,MAAvB,CADd;AAAA,YAEIid,UAAU1e,SAASyB,aAAT,CAAuB,MAAvB,CAFd;AAAA,YAGIkd,QAHJ;AAAA,YAIIhc,CAJJ;AAKA+b,gBAAQ1c,SAAR,CAAkBC,GAAlB,CAAsB,cAAtB;AACAuc,kBAAUxc,SAAV,CAAoBC,GAApB,CAAwB,WAAxB,EAAqC,iBAArC,EAAwD,oBAAxD;AACAwc,gBAAQzc,SAAR,CAAkBC,GAAlB,CAAsB,WAAtB,EAAmC,sBAAnC,EAA2D,uBAA3D;AACA,aAAKD,SAAL,CAAeC,GAAf,CAAmB,sBAAnB;;AAEAuc,kBAAU1Z,OAAV,GAAoB,YAAY;AAC5B,gBAAI8Z,SAAS,KAAKjb,UAAlB;AAAA,gBACIua,OAAO,KAAKva,UAAL,CAAgBA,UAD3B;AAAA,gBAEI6M,SAAS0N,KAAKva,UAFlB;AAGAua,iBAAKvH,WAAL,CAAkBiI,MAAlB;AACApO,mBAAOmG,WAAP,CAAoBuH,IAApB;AACAlf,wBAAY2T,yBAAZ,CAAuCnC,MAAvC;AACH,SAPD;;AASAiO,gBAAQ3Z,OAAR,GAAkB,UAAUwL,KAAV,EAAiB;AAC/B,gBAAIqB,WAAWrB,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAvC;AAAA,gBACIkb,UAAUlN,SAAS5O,aAAT,CAAuB,yBAAvB,CADd;AAAA,gBAEI+b,OAAOD,QAAQ3c,SAFnB;AAGA,gBAAI6R,YAAY,IAAIvO,aAAJ,CAAmBsZ,IAAnB,EAAyBnN,QAAzB,EAAmC,IAAnC,CAAhB;AACAA,qBAAShO,UAAT,CAAoBsF,YAApB,CAAkC8K,UAAU3Q,aAAV,EAAlC,EAA6D5B,UAA7D;AACAxC,wBAAY+T,oBAAZ,CAAkCgB,UAAU3Q,aAAV,GAA0B4Q,UAA5D;AACA+K,uBAAY,YAAU;AAClBX,2BAAWlc,SAAX,GAAuB4c,IAAvB;AACA9f,4BAAY2T,yBAAZ,CAAuChB,SAAShO,UAAhD;AACH,aAHD,EAGG,CAHH;AAIH,SAXD;;AAaA+a,gBAAQM,MAAR,CAAeP,OAAf,EAAwBD,SAAxB;AACA,aAAKje,WAAL,CAAiBme,OAAjB;AACH,KApCD;;AAsCAld,eAAWyd,YAAX,GAA0B,UAAU3O,KAAV,EAAiB;AACvC,aAAKgB,eAAL,CAAsB,OAAtB;AACA,YAAI4N,OAAO,CAAX;AACA,eAAO5O,MAAMG,MAAN,CAAa1N,aAAb,CAA4B,eAA5B,KAAiDmc,OAAO,CAA/D,EAAmE;AAC/D5O,kBAAMG,MAAN,CAAa1N,aAAb,CAA4B,eAA5B,EAA8CiB,MAA9C;AACAkb;AACH;AACJ,KAPD;;AASA,SAAK9b,aAAL,GAAqB,YAAY;AAC7B,eAAO5B,UAAP;AACH,KAFD;;AAIA,QAAK2c,kBAAL,EAA0B;AACtB,eAAO,IAAP;AACH;AACJ,CAvFD;ACAA,IAAInd,iBAAiB,SAAjBA,cAAiB,GAAY;;AAEhC,KAAIme,gBAAgB,EAApB;AAAA,KACCC,mBAAmB,KADpB;;AAGA,MAAKC,0BAAL,GAAkC,YAAY;AAC7CF,kBAAgB,EAAhB;AACA,MAAIrb,MAAM9D,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,EAAyD4D,oBAAzD,CAA8E,IAA9E,CAAV;AACA,OAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAImB,IAAIpB,MAAxB,EAAgCC,GAAhC,EAAqC;AACpCmB,OAAInB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAwB,kBAAxB;AACA;AACDob,qBAAmB,IAAnB;AACA,EAPD;;AASA,MAAKE,4BAAL,GAAoC,YAAY;AAC/CF,qBAAmB,KAAnB;AACA,EAFD;;AAIA,MAAKG,WAAL,GAAmB,YAAY;AAC9B,SAAOH,gBAAP;AACA,EAFD;;AAIA,MAAKI,gBAAL,GAAwB,UAAUrI,IAAV,EAAgB;AACvC,MAAI,CAACiI,gBAAL,EAAuB;AACtB;AACA;AACDD,gBAAchQ,IAAd,CAAmBgI,IAAnB;AACAA,OAAKnV,SAAL,CAAeC,GAAf,CAAmB,kBAAnB;AACA,EAND;;AAQA,MAAKkd,aAAL,GAAqB,YAAY;AAChC,SAAOA,aAAP;AACA,EAFD;;AAIA,MAAKM,kBAAL,GAA0B,YAAY;AACrCN,kBAAgB,EAAhB;AACA,EAFD;;AAIA,MAAKO,QAAL,GAAgB,YAAY;AAC3B,MAAIC,YAAY,IAAhB;AAAA,MAAsBC,YAAY,IAAlC;AAAA,MAAwCxH,KAAxC;AACA,OAAK,IAAIzV,IAAIwc,cAAczc,MAAd,GAAuB,CAApC,EAAuCC,KAAK,CAA5C,EAA+CA,GAA/C,EAAoD;AACnD,OAAIgd,aAAaR,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBE,MAAtC,IACA6Z,aAAaT,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBC,MAD1C,EACkD;AACjDsS,YAAQ+G,cAAcxc,CAAd,CAAR;AACAgd,gBAAYR,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBE,MAArC;AACA6Z,gBAAYT,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBC,MAArC;AACA;AACD;AACD,SAAOsS,KAAP;AACA,EAXD;;AAaA,MAAKyH,OAAL,GAAe,YAAY;AAC1B,MAAIC,YAAY,CAAC,CAAjB;AAAA,MAAoBC,YAAY,CAAC,CAAjC;AAAA,MAAoCC,IAApC;AACA,OAAK,IAAIrd,IAAIwc,cAAczc,MAAd,GAAuB,CAApC,EAAuCC,KAAK,CAA5C,EAA+CA,GAA/C,EAAoD;AACnD,OAAImd,aAAaX,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBE,MAAtC,IACAga,aAAaZ,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBC,MAD1C,EACkD;AACjDka,WAAOb,cAAcxc,CAAd,CAAP;AACAmd,gBAAYX,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBE,MAArC;AACAga,gBAAYZ,cAAcxc,CAAd,EAAiBkD,OAAjB,CAAyBC,MAArC;AACA;AACD;AACD,SAAOka,IAAP;AACA,EAXD;;AAaA,MAAKC,iBAAL,GAAyB,YAAY;AACpC,MAAIxc,KAAK,KAAKic,QAAL,EAAT;AACA,OAAK,IAAI/c,IAAI,CAAb,EAAgBA,IAAIwc,cAAczc,MAAlC,EAA0CC,GAA1C,EAA+C;AAC9Cwc,iBAAcxc,CAAd,EAAiBX,SAAjB,CAA2BC,GAA3B,CAA+B,qBAAqBwB,GAAGoC,OAAH,CAAWE,MAAhC,GAAyC,GAAzC,GAA+CtC,GAAGoC,OAAH,CAAWC,MAAzF;AACA;AACD,EALD;;AAOA,QAAO,IAAP;AAEA,CAzED;;;ACAA,IAAItF,cAAc,SAAdA,WAAc,CAAU0f,IAAV,EAAgB;AAC9B,QAAIC,MAAMngB,SAASyB,aAAT,CAAwB,KAAxB,CAAV;AACA0e,QAAIje,SAAJ,GAAgBge,IAAhB;;AAEA,QAAI5b,QAAQ6b,IAAIvQ,QAAJ,CAAa,CAAb,CAAZ;AACA,QAAIwQ,iDAAwB9b,MAAMkK,gBAAN,CAAwB,qCAAxB,CAAxB,EAAJ;;AAEA,SAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAIyd,kBAAkB1d,MAAtC,EAA8CC,GAA9C,EAAoD;AAChD,YAAI6N,SAAS4P,kBAAkBzd,CAAlB,EAAqBgB,UAAlC;AACA6M,eAAOmG,WAAP,CAAoByJ,kBAAkBzd,CAAlB,CAApB;AACH;;AAED,QAAImB,MAAMQ,MAAMkK,gBAAN,CAAwB,IAAxB,CAAV;AACA,SAAM,IAAI7L,KAAI,CAAd,EAAiBA,KAAImB,IAAIpB,MAAzB,EAAiCC,IAAjC,EAAuC;AACnCmB,YAAInB,EAAJ,EAAOX,SAAP,CAAiBC,GAAjB,CAAsB,gBAAtB;AACA6B,YAAInB,EAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,uCAAzB;AACH;;AAED,WAAOM,KAAP;AACH,CAnBD;ACAA,IAAI+b,eAAe,SAAfA,YAAe,CAAUH,IAAV,EAAgB;AAC/B,QAAI5d,MAAMC,OAAN,CAAe2d,IAAf,CAAJ,EAA4B;AACxB,YAAII,oBAAJ;;AAEA,YAAKJ,KAAKxd,MAAL,IAAe,CAApB,EAAuB;AACnB,mBAAO4d,YAAY/f,WAAZ,CAAyBP,SAASugB,cAAT,CAAyBL,KAAK,CAAL,CAAzB,CAAzB,CAAP;AACH;AACD,YAAI,KAAKA,IAAT,EAAgB;AACZ,gBAAIM,UAAUN,KAAK,CAAL,CAAd;AACAI,0BAAetgB,SAASyB,aAAT,CAAwB+e,OAAxB,CAAf;;AAEA,gBAAK,KAAKN,IAAV,EAAiB;AACb,oBAAI5d,MAAMC,OAAN,CAAe2d,KAAK,CAAL,CAAf,CAAJ,EAA+B;AAC3B,wBAAIzd,aAAayd,KAAK,CAAL,CAAjB;;AAEA,yBAAK,IAAIvd,IAAI,CAAb,EAAgBA,IAAIF,WAAWC,MAA/B,EAAuCC,GAAvC,EAA6C;AACzC,4BAAIL,MAAMC,OAAN,CAAeE,WAAWE,CAAX,CAAf,CAAJ,EAAqC;AACjC2d,wCAAY1d,YAAZ,CAAyBH,WAAWE,CAAX,EAAc,CAAd,CAAzB,EAA2CF,WAAWE,CAAX,EAAc,CAAd,CAA3C;AACH;AACJ;AACJ;AACJ;;AAED,gBAAK,KAAKud,IAAV,EAAiB;AACb,oBAAK5d,MAAMC,OAAN,CAAe2d,KAAK,CAAL,CAAf,CAAL,EAAgC;AAC5B,yBAAM,IAAIvd,KAAI,CAAd,EAAiBA,KAAIud,KAAK,CAAL,EAAQxd,MAA7B,EAAqCC,IAArC,EAA2C;AACvC,4BAAK,OAAOud,KAAK,CAAL,EAAQvd,EAAR,CAAP,KAAsB,QAAtB,IAAkC6d,QAAQzX,WAAR,MAAyB,GAAhE,EAAsE;AAClEuX,wCAAY/f,WAAZ,CAAyBP,SAASugB,cAAT,CAAyBL,KAAK,CAAL,EAAQvd,EAAR,CAAzB,CAAzB;AACA;AACH;AACD,4BAAK,CAAEnC,YAAa0f,KAAK,CAAL,EAAQvd,EAAR,CAAb,CAAP,EAAmC;AACnC2d,oCAAY/f,WAAZ,CAAyBC,YAAa0f,KAAK,CAAL,EAAQvd,EAAR,CAAb,CAAzB;AACH;AACJ,iBATD,MASO,IAAI,OAAOud,KAAK,CAAL,CAAP,KAAmB,QAAvB,EAAkC;AACrCI,gCAAY/f,WAAZ,CAAyBP,SAASugB,cAAT,CAAyBL,KAAK,CAAL,CAAzB,CAAzB;AACH;AAEJ;AACJ;;AAED,eAAOI,WAAP;AACH,KAxCD,MAwCO;AACH,eAAO,KAAP;AACH;AAEJ,CA7CD;ACAA,IAAI3f,gBAAgB,SAAhBA,aAAgB,GAAY;AAC5B,QAAI8f,QAAQzgB,SAASG,sBAAT,CAAgC,cAAhC,CAAZ;;AAEA,SAAM,IAAIwC,IAAI,CAAd,EAAiBA,IAAI8d,MAAM/d,MAA3B,EAAmCC,GAAnC,EAAyC;AACrC8d,cAAM9d,CAAN,EAASka,WAAT,GAAuB,UAAWvM,KAAX,EAAmB;AACtCA,kBAAM3H,YAAN,CAAmB+X,aAAnB,GAAmC,MAAnC;AACApQ,kBAAM3H,YAAN,CAAmBmU,OAAnB,CAA4B,aAA5B,EAA2CxM,MAAMG,MAAN,CAAa5K,OAAb,CAAqBkX,WAAhE;AACAzM,kBAAM3H,YAAN,CAAmBmU,OAAnB,CAA4B,iBAAiBxM,MAAMG,MAAN,CAAa5K,OAAb,CAAqBkX,WAAlE,EAA+E,iBAAiBzM,MAAMG,MAAN,CAAa5K,OAAb,CAAqBkX,WAArH;AACH,SAJD;AAKA0D,cAAM9d,CAAN,EAASge,SAAT,GAAqB,YAAY;AAC7B,gBAAI7Y,iBAAiB9H,SAAS+C,aAAT,CAAwB,mBAAxB,CAArB;AAAA,gBACIgF,uBAAuB/H,SAAS+C,aAAT,CAAwB,0BAAxB,CAD3B;AAEA,gBAAK+E,kBAAkBC,oBAAvB,EAA8C;AAC1CD,+BAAe1H,KAAf,CAAqBC,OAArB,GAA+B,MAA/B;AACA0H,qCAAqB3H,KAArB,CAA2BC,OAA3B,GAAqC,MAArC;AACH;AACJ,SAPD;AAQH;;AAED,QAAIugB,uBAAuB5gB,SAASG,sBAAT,CAAiC,yBAAjC,EAA6D,CAA7D,CAA3B;AACAH,aAASG,sBAAT,CAAiC,gBAAjC,EAAoD,CAApD,EAAuD2E,OAAvD,GAAiE,YAAY;AACzE,YAAI,CAAE,KAAK9C,SAAL,CAAeqH,QAAf,CAAyB,oBAAzB,CAAN,EAAwD;AACpDuX,iCAAqB5e,SAArB,CAA+BC,GAA/B,CAAoC,iBAApC;AACH;AACJ,KAJD;;AAMAjC,aAASG,sBAAT,CAAiC,sBAAjC,EAA0D,CAA1D,EAA6D2E,OAA7D,GAAuE,YAAY;AAC/E8b,6BAAqB5e,SAArB,CAA+BgC,MAA/B,CAAuC,iBAAvC;AACH,KAFD;;AAIAhE,aAASG,sBAAT,CAAiC,8BAAjC,EAAkE,CAAlE,EAAqE2E,OAArE,GAA+E,YAAY;AACvF8b,6BAAqB5e,SAArB,CAA+BgC,MAA/B,CAAuC,iBAAvC;AACH,KAFD;;AAIAhE,aAASG,sBAAT,CAAiC,eAAjC,EAAmD,CAAnD,EAAsD2E,OAAtD,GAAgE,YAAY;AACxE,YAAI+b,MAAM7gB,SAAS+C,aAAT,CAAwB,gBAAxB,CAAV;AACA,YAAK8d,OAAOA,IAAI7e,SAAJ,CAAcqH,QAAd,CAAwB,SAAxB,CAAZ,EAAkD;AAC9C,gBAAI/E,QAAQtE,SAASG,sBAAT,CAAiC,oBAAjC,EAAwD,CAAxD,CAAZ;AACAmE,kBAAM0Y,mBAAN;AACH;;AAED,YAAI9d,OAAO,IAAIC,cAAJ,EAAX;AAAA,YACI0X,MAAM,CAAEiK,oBAAoBA,kBAAkBzhB,OAAtC,GAAgDA,OAAlD,IAA8D,oBADxE;AAAA,YAEI0hB,IAAI/gB,SAASC,cAAT,CAAyB,iBAAzB,EAA6CC,KAA7C,CAAmDkU,IAAnD,EAFR;AAAA,YAGI4M,sBAHJ;AAAA,YAIId,OAAOlgB,SAASG,sBAAT,CAAiC,oBAAjC,CAJX;AAKA,YAAI+f,KAAKxd,MAAL,GAAc,CAAlB,EAAsB;AAClBwd,mBAAOe,iBAAkBf,KAAK,CAAL,CAAlB,CAAP;AACAA,mBAAOA,KAAKgB,SAAZ;AACH,SAHD,MAGO;AACHhB,mBAAO,EAAP;AACH;;AAED,YAAKa,MAAM,EAAN,IAAYb,SAAS,EAA1B,EAA+B;AAC3B,gBAAIiB,oBAAoB,EAAxB;AACA,gBAAIJ,MAAM,EAAV,EAAeI,qBAAqB,4DAArB;AACf,gBAAIjB,SAAS,EAAb,EAAkBiB,qBAAqB,uBAArB;AAClBH,4BAAgBhhB,SAASC,cAAT,CAAyB,qBAAzB,CAAhB;AACA+gB,0BAAc9e,SAAd,GAA0B,iDAAiDif,iBAAjD,GAAqE,QAA/F;AACAH,0BAAchf,SAAd,CAAwBC,GAAxB,CAA6B,cAA7B;AACA8c,uBAAW,YAAY;AACfiC,8BAAcrK,WAAd,CAA2BqK,cAAchN,UAAzC;AACP,aAFD,EAEG,IAFH;AAGA;AACH;;AAED,YAAIoN,SAAS;AACTrJ,mBAAOgJ,CADE;AAETlC,qBAASqB,IAFA;AAGTmB,2BAAeP,kBAAkBO;AAHxB,SAAb;AAKA,YAAI,CAAEC,KAAKtiB,YAAYC,UAAZ,EAAP,MAAuCqiB,KAAKthB,SAASuhB,MAArD,CAAJ,EAAmE;AAC/DH,mBAAO5P,EAAP,GAAY8P,EAAZ;AACH;AACDF,iBAASvhB,KAAK2hB,SAAL,CAAgBJ,MAAhB,CAAT;;AAEAliB,aAAKI,IAAL,CAAU,MAAV,EAAkBuX,GAAlB,EAAuB,IAAvB;AACA3X,aAAKK,gBAAL,CAAuB,cAAvB,EAAuC,iCAAvC;;AAEAL,aAAKM,kBAAL,GAA0B,UAAUof,MAAV,EAAkB;AACxC,gBAAK,KAAKlf,UAAL,IAAmB,CAAnB,IAAwB,KAAKC,MAAL,IAAe,GAA5C,EAAkD;AAC9C,oBAAI8hB,OAAO5hB,KAAKC,KAAL,CAAYZ,KAAKa,YAAjB,CAAX;AACAihB,gCAAgBhhB,SAASC,cAAT,CAAyB,qBAAzB,CAAhB;;AAEA,oBAAKwhB,KAAK,CAAL,KAAW,OAAhB,EAA0B;AACtBzhB,6BAASuhB,MAAT,GAAkBE,KAAK,CAAL,CAAlB;AACAT,kCAAc9e,SAAd,GAA0B,mDAAmD6e,CAAnD,GAAuD,iCAAjF;AACA/gB,6BAASG,sBAAT,CAAiC,gBAAjC,EAAoD,CAApD,EAAuD6B,SAAvD,CAAiEgC,MAAjE,CAAyE,oBAAzE;AACAhE,6BAASC,cAAT,CAAyB,sBAAzB,EAAkDC,KAAlD,GAA0D,cAAcuhB,KAAK,CAAL,CAAd,GAAwB,GAAlF;AACH,iBALD,MAKO,IAAIA,KAAK,CAAL,KAAW,QAAf,EAA0B;AAC7BT,kCAAc9e,SAAd,GAA0B,mDAAmD6e,CAAnD,GAAuD,mCAAjF;AACH,iBAFM,MAEA;AACHC,kCAAc9e,SAAd,GAA0B,4DAA1B;AACH;AACD8e,8BAAchf,SAAd,CAAwBC,GAAxB,CAA6B,cAA7B;AACA8c,2BAAY,YAAY;AACpBiC,kCAAcrK,WAAd,CAA2BqK,cAAchN,UAAzC;AACH,iBAFD,EAEG,IAFH;AAGH;AACJ,SApBD;AAqBA9U,aAAK0B,IAAL,CAAWwgB,MAAX;AACH,KAnED;AAoEH,CAtGD;ACAA,IAAIjc,aAAa,SAAbA,UAAa,CAAWuc,cAAX,EAA4B;;AAEzC,aAASja,eAAT,CAAyB7B,EAAzB,EAA6B;AACzB,YAAIA,GAAG8B,QAAH,CAAY,MAAZ,CAAJ,EAAyB;AACrB,mBAAO,IAAIC,SAAJ,EAAP;AACH,SAFD,MAEO,IAAI/B,GAAG8B,QAAH,CAAY,OAAZ,CAAJ,EAA0B;AAC7B,mBAAO,IAAIE,UAAJ,EAAP;AACH,SAFM,MAEA,IAAIhC,GAAG8B,QAAH,CAAY,MAAZ,CAAJ,EAAyB;AAC5B,mBAAO,IAAIG,SAAJ,EAAP;AACH,SAFM,MAEA,IAAIjC,GAAG8B,QAAH,CAAY,QAAZ,CAAJ,EAA2B;AAC9B,mBAAO,IAAIrG,WAAJ,EAAP;AACH;AACJ;AACD,QAAIsgB,qBAAJ;AACA,QAAK,CAAED,cAAP,EAAwB;AACpBC,uBAAe3hB,SAASyB,aAAT,CAAuB,KAAvB,CAAf,EAA8CkgB,aAAa3f,SAAb,CAAuBC,GAAvB,CAA2B,oBAA3B,CAA9C;AACH,KAFD,MAEO;AACH0f,uBAAeD,cAAf;AACH;;AAEDC,iBAAatZ,WAAb,GAA2B,YAAY;AACnC,aAAKrG,SAAL,CAAeC,GAAf,CAAmB,SAAnB;AACH,KAFD;AAGA0f,iBAAarZ,UAAb,GAA0B,UAAUgI,KAAV,EAAiB;AACvCA,cAAM/H,cAAN;AACH,KAFD;;AAIAoZ,iBAAanZ,WAAb,GAA2B,YAAY;AACnC,aAAKxG,SAAL,CAAegC,MAAf,CAAsB,SAAtB;AACH,KAFD;;AAIA2d,iBAAalZ,MAAb,GAAsB,UAAU6H,KAAV,EAAiB;AACnCA,cAAMsR,eAAN;;AAEA,YAAI1S,IAAIoB,MAAMG,MAAN,CAAatH,WAArB;AAAA,YACI1F,KAAK6M,MAAMG,MADf;AAAA,YAEI/H,OAFJ;AAAA,YAEamZ,OAFb;AAAA,YAEsBC,WAFtB;;AAIA,eAAQ,CAACre,GAAGzB,SAAH,CAAaqH,QAAb,CAAsB,gBAAtB,CAAT,EAAmD;AAC/C5F,iBAAKA,GAAGE,UAAR;AACH;;AAED,YAAI2M,MAAM3H,YAAN,CAAmBC,OAAnB,CAA2B,aAA3B,CAAJ,EAA+C;AAC3CF,sBAAUjB,gBAAgB6I,MAAM3H,YAAN,CAAmBC,OAAnB,CAA2B,aAA3B,CAAhB,CAAV;AACA,iBAAK5G,SAAL,CAAegC,MAAf,CAAsB,SAAtB;;AAEA,gBAAIkL,KAAK,IAAT,EAAe;AACXzL,mBAAGlD,WAAH,CAAemI,QAAQtF,aAAR,EAAf;AACAK,mBAAGlD,WAAH,CAAe,IAAI4E,UAAJ,EAAf;AACH,aAHD,MAGO;AACH1B,mBAAGwF,YAAH,CAAgBP,QAAQtF,aAAR,EAAhB,EAAyC8L,CAAzC;AACAzL,mBAAGwF,YAAH,CAAgB,IAAI9D,UAAJ,EAAhB,EAAkC+J,CAAlC;AACH;AAEJ,SAZD,MAYO;AACH6S,kBAAMzR,MAAM3H,YAAN,CAAmBC,OAAnB,CAA2B,MAA3B,CAAN;AACAF,sBAAU1I,SAASG,sBAAT,CAAgCmQ,MAAM3H,YAAN,CAAmBC,OAAnB,CAA2B,MAA3B,CAAhC,EAAoE,CAApE,CAAV;AACAiZ,sBAAUnZ,QAAQS,WAAlB;AACA2Y,0BAAcpZ,QAAQ/E,UAAtB;AACA,gBAAIke,WAAW/f,SAAf,EAA0B;AACtBggB,4BAAYnL,WAAZ,CAAwBkL,OAAxB;AACH;;AAED,gBAAI3S,KAAK,IAAT,EAAe;AACXzL,mBAAGlD,WAAH,CAAemI,OAAf;AACAjF,mBAAGlD,WAAH,CAAe,IAAI4E,UAAJ,EAAf;AACH,aAHD,MAGO;AACH1B,mBAAGwF,YAAH,CAAgBP,OAAhB,EAAyBwG,CAAzB;AACAzL,mBAAGwF,YAAH,CAAgB,IAAI9D,UAAJ,EAAhB,EAAkC+J,CAAlC;AACH;AAEJ;AACD,aAAKlN,SAAL,CAAegC,MAAf,CAAsB,SAAtB;AACH,KA1CD;;AA4CA,QAAK,CAAE0d,cAAP,EAAwB;AACpB,eAAOC,YAAP;AACH;AACJ,CA9ED;ACAA,IAAIV,mBAAmB,SAAnBA,gBAAmB,CAAWe,QAAX,EAAsB;AACzC,QAAKA,QAAL,EAAgB;AACZ,YAAI9B,OAAO8B,SAAShX,SAAT,CAAoB,IAApB,CAAX;AACAkV,aAAKle,SAAL,CAAeC,GAAf,CAAoB,iCAApB;AACAie,aAAKra,OAAL,CAAaoc,YAAb,GAA4BD,SAAS/I,OAArC;AACAiH,aAAK9f,KAAL,CAAW6G,KAAX,GAAmB,IAAnB;AACAiZ,aAAK9f,KAAL,CAAW8hB,QAAX,GAAsB,IAAtB;AACAhC,aAAK9f,KAAL,CAAW+hB,QAAX,GAAsB,IAAtB;;AAEA,YAAIre,MAAMoc,KAAKnc,oBAAL,CAA2B,IAA3B,CAAV;AACA,YAAKD,IAAIpB,MAAJ,GAAa,CAAlB,EAAsB;AAClB,iBAAM,IAAIC,IAAI,CAAd,EAAiBA,IAAImB,IAAIpB,MAAzB,EAAiCC,GAAjC,EAAuC;;AAEnC,oBAAKqf,SAASjf,aAAT,CAAwB,yBAAxB,CAAL,EAA2D;AACvDe,wBAAInB,CAAJ,EAAO2O,eAAP,CAAwB,cAAxB;AACH;AACDxN,oBAAInB,CAAJ,EAAO2O,eAAP,CAAwB,cAAxB;AACAxN,oBAAInB,CAAJ,EAAO2O,eAAP,CAAwB,WAAxB;AACAxN,oBAAInB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,gBAAzB;AACA,oBAAIga,gBAAgBla,IAAInB,CAAJ,EAAOxC,sBAAP,CAA+B,iBAA/B,CAApB;;AAEA,oBAAK6d,cAActb,MAAd,GAAuB,CAA5B,EAAgC;AAC5B,yBAAM,IAAIwC,IAAI,CAAd,EAAiBA,IAAI8Y,cAActb,MAAnC,EAA2CwC,GAA3C,EAAiD;AAC7C8Y,sCAAc9Y,CAAd,EAAiBlD,SAAjB,CAA2BgC,MAA3B,CAAmC,sBAAnC;;AAEA,4BAAIoe,kBAAkBpE,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,mBAAnC,CAAtB;AACA,4BAAI4T,gBAAgB1f,MAAhB,GAAyB,CAA7B,EAAiC;AAC7B,iCAAM,IAAI2f,IAAI,CAAd,EAAiBA,IAAID,gBAAgB1f,MAArC,EAA6C2f,GAA7C,EAAmD;AAC/CD,gDAAgBC,CAAhB,EAAmBrgB,SAAnB,CAA6BgC,MAA7B,CAAqC,kBAArC;AACH;AACJ;;AAED,4BAAIse,eAAetE,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,kBAAnC,CAAnB;AACA,4BAAK8T,aAAa5f,MAAb,GAAsB,CAA3B,EAA+B;AAC3B,iCAAM,IAAI2f,KAAI,CAAd,EAAiBA,KAAIC,aAAa5f,MAAlC,EAA0C2f,IAA1C,EAAgD;AAC5CC,6CAAaD,EAAb,EAAgB/Q,eAAhB,CAAiC,gBAAjC;AACH;AACJ;;AAED,4BAAIiR,kBAAkBvE,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,mBAAnC,CAAtB;AACA,4BAAK+T,gBAAgB7f,MAAhB,GAAyB,CAA9B,EAAkC;AAC9B,iCAAM,IAAI2f,MAAI,CAAd,EAAiBA,MAAIE,gBAAgB7f,MAArC,EAA6C2f,KAA7C,EAAmD;AAC/CE,gDAAgBF,GAAhB,EAAmB/Q,eAAnB,CAAoC,iBAApC;AACH;AACJ;;AAED,4BAAIkR,aAAaxE,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,cAAnC,CAAjB;AACA,4BAAKgU,WAAW9f,MAAX,GAAoB,CAAzB,EAA6B;AACzB,iCAAM,IAAI2f,MAAI,CAAd,EAAiBA,MAAIG,WAAW9f,MAAhC,EAAwC2f,KAAxC,EAA8C;AAC1CG,2CAAWH,GAAX,EAAc/Q,eAAd,CAA+B,YAA/B;AACH;AACJ;;AAED,4BAAImR,SAASzE,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,YAAnC,CAAb;AACA,4BAAKiU,OAAO/f,MAAP,GAAgB,CAArB,EAAyB;AACrB,iCAAM,IAAI2f,MAAI,CAAd,EAAiBA,MAAII,OAAO/f,MAA5B,EAAoC2f,KAApC,EAA0C;AACtCI,uCAAOJ,GAAP,EAAU/Q,eAAV,CAA2B,IAA3B;AACH;AACJ;;AAED,4BAAIoR,cAAc1E,cAAc9Y,CAAd,EAAiBsJ,gBAAjB,CAAmC,eAAnC,CAAlB;AACA,4BAAImU,oBAAoBD,YAAYhgB,MAApC;AACA,+BAAQigB,oBAAoB,CAA5B,EAAgC;AAC5BD,wCAAY,CAAZ,EAAe/e,UAAf,CAA0BgT,WAA1B,CAAuC+L,YAAY,CAAZ,CAAvC;AACAC;AACH;AACJ;AACJ;;AAED,oBAAI7e,IAAInB,CAAJ,EAAOob,YAAP,CAAqB,wBAArB,CAAJ,EAAsD;AAClD,wBAAI6E,yBAAyB5iB,SAASyB,aAAT,CAAwB,KAAxB,CAA7B;AAAA,wBACIohB,gBAAgB7iB,SAASyB,aAAT,CAAwB,KAAxB,CADpB;AAEAmhB,2CAAuB5gB,SAAvB,CAAiCC,GAAjC,CAAsC,oCAAtC;AACA4gB,kCAAc7gB,SAAd,CAAwBC,GAAxB,CAA6B,0BAA7B;AACA4gB,kCAAchd,OAAd,CAAsB8P,eAAtB,GAAwC7R,IAAInB,CAAJ,EAAOkD,OAAP,CAAe8P,eAAvD;AACAkN,kCAAcjgB,YAAd,CAA4B,OAA5B,EAAqC,eAAekB,IAAInB,CAAJ,EAAOkD,OAAP,CAAe+P,uBAA9B,GAAwD;+BAAxD,GACvB9R,IAAInB,CAAJ,EAAOkD,OAAP,CAAegQ,oBADQ,GACe,qBADf,GACuC/R,IAAInB,CAAJ,EAAOkD,OAAP,CAAeiQ,wBADtD,GACiF,eADjF,GACmGhS,IAAInB,CAAJ,EAAOkD,OAAP,CAAekQ,cADlH,GACmI,GADxK;AAEA8M,kCAAcziB,KAAd,CAAoBoE,OAApB,GAA8BV,IAAInB,CAAJ,EAAOvC,KAAP,CAAaoE,OAA3C;AACA,wBAAIV,IAAInB,CAAJ,EAAOiN,QAAP,CAAgBlN,MAAhB,IAA0B,CAA9B,EAAkC;AAC9BoB,4BAAInB,CAAJ,EAAOX,SAAP,CAAiBC,GAAjB,CAAsB,uCAAtB;AACH;AACD2gB,2CAAuBriB,WAAvB,CAAoCsiB,aAApC;AACA/e,wBAAInB,CAAJ,EAAOsG,YAAP,CAAqB2Z,sBAArB,EAA6C9e,IAAInB,CAAJ,EAAOqR,UAApD;AACH;AACJ;AACJ;;AAED,eAAOkM,IAAP;AACH;AACJ,CAzFD;;;ACAA,IAAI4C,oBAAoB,SAApBA,iBAAoB,CAAW3c,IAAX,EAAiC;AAAA,QAAhB4c,KAAgB,uEAAR,KAAQ;;;AAExD,QAAK5c,QAAQrE,SAAb,EAAyB;AACxB,eAAO,EAAP;AACA,KAFD,MAEO,IAAKqE,KAAKqa,OAAL,IAAgB1e,SAAhB,IAA6BqE,KAAK0I,QAAL,IAAiB,CAAnD,EAAuD;AACnD,eAAO1I,KAAK6c,SAAZ;AACH;;AAED,QAAI9C,OAAO,EAAX;AAAA,QACItQ,iBADJ;AAAA,QAEIqT,eAAe,KAFnB;AAAA,QAGIxgB,0CAAiB0D,KAAK1D,UAAtB,EAHJ;AAAA,QAIIygB,kBAAkB,EAJtB;AAAA,QAKIC,oBAAoB,EALxB;AAMI,QAAK,CAAEhd,KAAKxC,UAAL,CAAgB3B,SAAhB,CAA0BqH,QAA1B,CAAoC,wBAApC,KACHlD,KAAKxC,UAAL,CAAgB3B,SAAhB,CAA0BqH,QAA1B,CAAoC,kBAApC,CADC,KAELlD,KAAKqa,OAAL,CAAazX,WAAb,MAA8B,GAF9B,EAEoC;AAChC6G,mBAAWzJ,KAAK0J,UAAhB;AACAoT,uBAAe,IAAf;AACH,KALD,MAKO,IAAI9c,KAAKyJ,QAAL,CAAclN,MAAd,GAAuB,CAA3B,EAA+B;AAClCkN,mBAAWzJ,KAAKyJ,QAAhB;AACH,KAFM,MAEA;AACHA,mBAAWzJ,KAAK0J,UAAhB;AACH;AACL,QAAKpN,WAAWC,MAAX,GAAoB,CAAzB,EAA6B;AACzB,aAAM,IAAIC,IAAI,CAAd,EAAiBA,IAAIF,WAAWC,MAAhC,EAAwCC,GAAxC,EAA8C;AAC1CugB,4BAAgBvgB,CAAhB,IAAqB,CAACF,WAAWE,CAAX,EAAcE,IAAf,EAAqBJ,WAAWE,CAAX,EAAczC,KAAnC,CAArB;AACH;AACJ,KAJD,MAIO;AACHgjB,0BAAkB,EAAlB;AACH;;AAED,QAAKtT,SAASlN,MAAT,GAAkB,CAAvB,EAA2B;AACvB,aAAM,IAAIC,KAAI,CAAd,EAAiBA,KAAIiN,SAASlN,MAA9B,EAAsCC,IAAtC,EAA2C;AACvC,gBAAIygB,aAAanC,iBAAiBrR,SAASjN,EAAT,CAAjB,CAAjB;;AAEA,gBAAKL,MAAMC,OAAN,CAAe6gB,UAAf,KAA+BH,YAApC,EAAmD;AAC/CE,kCAAkBxgB,EAAlB,IAAuBygB,UAAvB;AACH,aAFD,MAEO,IAAK,OAAOA,UAAP,KAAsB,QAAtB,IAAkCA,UAAvC,EAAoD;AACvDD,oCAAoBC,UAApB;AACH;AACJ;AACJ,KAVD,MAUO;AACHD,4BAAoB,EAApB;AACH;;AAGDjD,SAAK/Q,IAAL,CAAUhJ,KAAKqa,OAAL,CAAazX,WAAb,EAAV,EAAsCma,eAAtC,EAAwDC,iBAAxD;;AAEA,WAAOjD,IAAP;AACP,CAlDD;;;ACAA,IAAImD,QAAQ,EAAZ;AAAA,IAAgB5iB,aAAa,SAAbA,UAAa,CAAUwY,OAAV,EAAmB9D,IAAnB,EAAyB;;AAElD;AACA,QAAIhU,WAAWnB,SAASG,sBAAT,CAAgC,qBAAhC,CAAf;AAAA,QACQmjB,iBAAiBtjB,SAASG,sBAAT,CAAgC,kBAAhC,EAAoD,CAApD,CADzB;AAAA,QAEQmE,KAFR;AAAA,QAEeif,GAFf;AAAA,QAEoBpM,IAFpB;AAAA,QAGQqM,gBAHR;AAAA,QAIQC,eAJR;;AAMA;AACA;;;;;;;;AAQA,QAAIC,OAAO,SAAPA,IAAO,CAAWpT,KAAX,EAAmB;AAC1B,YAAIgR,KAAK,KAAKqC,OAAd;AAAA,YACIC,KAAK,KAAKC,OADd;AAAA,YAEIC,WAFJ;AAAA,YAGIC,UAAU/jB,SAASG,sBAAT,CAAgC,qBAAhC,CAHd;AAAA,YAII6jB,cAAchkB,SAASG,sBAAT,CAAgC,oBAAhC,CAJlB;AAAA,YAKI8jB,gBAAgBjkB,SAASG,sBAAT,CAAgC,6BAAhC,CALpB;AAAA,YAMI+jB,eAAelkB,SAASC,cAAT,CAAyB,sCAAzB,CANnB;AAAA,YAOI4U,WAAW7O,UAAU,IAAV,CAPf;AAAA,YAQIud,MAAM1O,SAAS,CAAT,CARV;AAAA,YASIsP,SAAStP,SAAS,CAAT,CATb;AAUA,YAAK,CAAE7U,SAASe,MAAT,CAAgBwe,WAAhB,EAAP,EAAuC;AACnC;AACH;AACD,YAAI,KAAKnd,SAAL,CAAeC,KAAf,CAAqB,kBAArB,CAAJ,EAA8C;AAC1C,iBAAKL,SAAL,CAAegC,MAAf,CAAsB,kBAAtB;AACA,iBAAK,IAAIrB,IAAI,CAAb,EAAgBA,IAAI2e,EAApB,EAAwB3e,GAAxB,EAA6B;AACzB,qBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAI0e,EAApB,EAAwB1e,GAAxB,EAA6B;AACzBme,0BAAME,MAAM5gB,CAAZ,EAAewhB,SAASjf,CAAxB,IAA6B,CAA7B;AACH;AACJ;AACJ,SAPD,MAOO;AACH,iBAAKlD,SAAL,CAAeC,GAAf,CAAmB,kBAAnB;AACA,iBAAK,IAAIU,IAAI,CAAb,EAAgBA,IAAI2e,EAApB,EAAwB3e,GAAxB,EAA6B;AACzB,qBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAI0e,EAApB,EAAwB1e,GAAxB,EAA6B;AACzBme,0BAAME,MAAM5gB,CAAZ,EAAewhB,SAASjf,CAAxB,IAA6B,CAA7B;AACH;AACJ;AACJ;;AAED4e,sBAAc9jB,SAASG,sBAAT,CAAgC,kBAAhC,EAAoDuC,MAAlE;AACA,YAAIohB,gBAAgB,CAApB,EAAuB;AACnB,iBAAK,IAAInhB,IAAI,CAAb,EAAgBA,IAAIshB,cAAcvhB,MAAlC,EAA0CC,GAA1C,EAA+C;AAC3CshB,8BAActhB,CAAd,EAAiBX,SAAjB,CAA2BgC,MAA3B,CAAkC,SAAlC;AACAigB,8BAActhB,CAAd,EAAiBC,YAAjB,CAA8B,UAA9B,EAA0C,UAA1C;AACH;AACD,iBAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIohB,QAAQrhB,MAA5B,EAAoCC,GAApC,EAAyC;AACrCohB,wBAAQphB,CAAR,EAAWX,SAAX,CAAqBC,GAArB,CAAyB,SAAzB;AACA8hB,wBAAQphB,CAAR,EAAW2O,eAAX,CAA2B,UAA3B;AACH;AACD,iBAAK,IAAI3O,IAAI,CAAb,EAAgBA,IAAIqhB,YAAYthB,MAAhC,EAAwCC,GAAxC,EAA6C;AACzCqhB,4BAAYrhB,CAAZ,EAAeX,SAAf,CAAyBgC,MAAzB,CAAgC,SAAhC;AACAggB,4BAAYrhB,CAAZ,EAAeC,YAAf,CAA4B,UAA5B,EAAwC,UAAxC;AACH;AACDshB,yBAAaliB,SAAb,CAAuBgC,MAAvB,CAA+B,SAA/B;AACH,SAdD,MAcO,IAAI8f,gBAAgB,CAApB,EAAuB;AAC1B,iBAAK,IAAInhB,IAAI,CAAb,EAAgBA,IAAIshB,cAAcvhB,MAAlC,EAA0CC,GAA1C,EAA+C;AAC3CshB,8BAActhB,CAAd,EAAiBX,SAAjB,CAA2BgC,MAA3B,CAAkC,SAAlC;AACAigB,8BAActhB,CAAd,EAAiBC,YAAjB,CAA8B,UAA9B,EAA0C,UAA1C;AACH;AACD,iBAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIohB,QAAQrhB,MAA5B,EAAoCC,GAApC,EAAyC;AACrCohB,wBAAQphB,CAAR,EAAWX,SAAX,CAAqBgC,MAArB,CAA4B,SAA5B;AACA+f,wBAAQphB,CAAR,EAAWC,YAAX,CAAwB,UAAxB,EAAoC,UAApC;AACH;AACD,iBAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIqhB,YAAYthB,MAAhC,EAAwCC,GAAxC,EAA6C;AACzCqhB,4BAAYrhB,CAAZ,EAAeX,SAAf,CAAyBC,GAAzB,CAA6B,SAA7B;AACA+hB,4BAAYrhB,CAAZ,EAAe2O,eAAf,CAA+B,UAA/B;AACH;AACD,gBAAI8S,kBAAkBpkB,SAAS+C,aAAT,CAAwB,mBAAxB,CAAtB;AACA,gBAAIqhB,eAAJ,EAAsB;AAClB,oBAAIC,6BAA6BrkB,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACA,oBAAIkc,6BAA6Bnc,SAASC,cAAT,CAAyB,gCAAzB,CAAjC;AACA,oBAAIqkB,oCAAoCtkB,SAASC,cAAT,CAAyB,oCAAzB,CAAxC;AACA,oBAAIgH,QAAQmd,gBAAgBhkB,KAAhB,CAAsB6G,KAAlC;AACA,oBAAIA,KAAJ,EAAY;AACRod,+CAA2BnkB,KAA3B,GAAmCgH,WAAYD,KAAZ,EAAmB,EAAnB,CAAnC;AACAkV,+CAA2Bjc,KAA3B,GAAmCgH,WAAYD,KAAZ,EAAmB,EAAnB,CAAnC;AACAqd,sDAAkCjY,OAAlC,GAA4C,IAA5C;AACH,iBAJD,MAIO,IAAI+X,gBAAgBve,OAAhB,CAAwB0e,cAA5B,EAA6C;AAChDF,+CAA2BnkB,KAA3B,GAAmCkkB,gBAAgBve,OAAhB,CAAwB0e,cAA3D;AACApI,+CAA2Bjc,KAA3B,GAAmCkkB,gBAAgBve,OAAhB,CAAwB0e,cAA3D;AACAD,sDAAkCjY,OAAlC,GAA4C,IAA5C;AACH,iBAJM,MAIA;AACH,wBAAIgL,YAAYrY,YAAYkY,cAAZ,CAA4B5S,KAA5B,EAAmC8f,eAAnC,CAAhB;AACAC,+CAA2BnkB,KAA3B,GAAmCmX,SAAnC;AACA8E,+CAA2Bjc,KAA3B,GAAmCmX,SAAnC;AACAiN,sDAAkCjY,OAAlC,GAA4C,KAA5C;AACH;;AAGD,oBAAImY,2BAA2BxkB,SAASC,cAAT,CAAyB,8BAAzB,CAA/B;AACA,oBAAImc,2BAA2Bpc,SAASC,cAAT,CAAyB,8BAAzB,CAA/B;AACA,oBAAIwkB,kCAAkCzkB,SAASC,cAAT,CAAyB,kCAAzB,CAAtC;AACA,oBAAImH,SAASgd,gBAAgBhkB,KAAhB,CAAsBgH,MAAnC;AACA,oBAAIA,MAAJ,EAAa;AACTod,6CAAyBtkB,KAAzB,GAAiCgH,WAAYE,MAAZ,EAAoB,EAApB,CAAjC;AACAgV,6CAAyBlc,KAAzB,GAAiCgH,WAAYE,MAAZ,EAAoB,EAApB,CAAjC;AACAqd,oDAAgCpY,OAAhC,GAA0C,IAA1C;AACH,iBAJD,MAIO,IAAI+X,gBAAgBve,OAAhB,CAAwB6e,eAA5B,EAA8C;AACjDF,6CAAyBtkB,KAAzB,GAAiCkkB,gBAAgBve,OAAhB,CAAwB6e,eAAzD;AACAtI,6CAAyBlc,KAAzB,GAAiCkkB,gBAAgBve,OAAhB,CAAwB6e,eAAzD;AACAD,oDAAgCpY,OAAhC,GAA0C,IAA1C;AACH,iBAJM,MAIA;AACH,wBAAImL,aAAaxY,YAAYsY,YAAZ,CAA0BhT,KAA1B,EAAiC8f,eAAjC,CAAjB;AACAI,6CAAyBtkB,KAAzB,GAAiCsX,UAAjC;AACA4E,6CAAyBlc,KAAzB,GAAiCsX,UAAjC;AACAiN,oDAAgCpY,OAAhC,GAA0C,KAA1C;AACH;AACJ;AACD6X,yBAAaliB,SAAb,CAAuBC,GAAvB,CAA4B,SAA5B;AACH,SAvDM,MAuDA;AACH,iBAAK,IAAIU,IAAI,CAAb,EAAgBA,IAAIshB,cAAcvhB,MAAlC,EAA0CC,GAA1C,EAA+C;AAC3C,oBAAI2B,MAAMqgB,QAAN,CAAetB,KAAf,CAAJ,EAA2B;AACvBY,kCAActhB,CAAd,EAAiBX,SAAjB,CAA2BC,GAA3B,CAA+B,SAA/B;AACAgiB,kCAActhB,CAAd,EAAiB2O,eAAjB,CAAiC,UAAjC;AACH,iBAHD,MAGO;AACH2S,kCAActhB,CAAd,EAAiBX,SAAjB,CAA2BgC,MAA3B,CAAkC,SAAlC;AACAigB,kCAActhB,CAAd,EAAiBC,YAAjB,CAA8B,UAA9B,EAA0C,UAA1C;AACH;AACJ;AACD,iBAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIohB,QAAQrhB,MAA5B,EAAoCC,GAApC,EAAyC;AACrCohB,wBAAQphB,CAAR,EAAWX,SAAX,CAAqBgC,MAArB,CAA4B,SAA5B;AACA+f,wBAAQphB,CAAR,EAAWC,YAAX,CAAwB,UAAxB,EAAoC,UAApC;AACH;AACD,iBAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIqhB,YAAYthB,MAAhC,EAAwCC,GAAxC,EAA6C;AACzCqhB,4BAAYrhB,CAAZ,EAAeX,SAAf,CAAyBgC,MAAzB,CAAgC,SAAhC;AACAggB,4BAAYrhB,CAAZ,EAAeC,YAAf,CAA4B,UAA5B,EAAwC,UAAxC;AACH;AACDshB,yBAAaliB,SAAb,CAAuBgC,MAAvB,CAA+B,SAA/B;AACH;AACJ,KAxHD;;AA0HA;;;;;;;;AAQA,QAAI4gB,gBAAgB,SAAhBA,aAAgB,GAAY;AAC5B,YAAIC,UAAU,EAAd;AAAA,YAAkB/gB,GAAlB;AAAA,YAAuBghB,IAAvB;AAAA,YAA6BC,SAAS,EAAtC;;AAEA,aAAK,IAAIpiB,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCkiB,oBAAQliB,CAAR,IAAa,CAAb;AACH;;AAED,aAAK,IAAIA,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxCmiB,mBAAO,EAAP;;AAEA,gBAAIhhB,MAAMQ,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAV;;AAEA,iBAAKihB,QAAQ,CAAb,EAAgBA,QAAQlhB,IAAIpB,MAA5B,EAAoCsiB,OAApC,EAA6C;;AAEzC,qBAAK,IAAI3C,IAAI,CAAb,EAAgBA,IAAIve,IAAIkhB,KAAJ,EAAWnB,OAA/B,EAAwCxB,GAAxC,EAA6C;AACzCyC,yBAAK3V,IAAL,CAAU,CAAV;AACH;;AAED,oBAAIrL,IAAIkhB,KAAJ,EAAWrB,OAAX,GAAqB,CAAzB,EAA4B;AACxB,yBAAK,IAAItB,IAAI,CAAb,EAAgBA,IAAIve,IAAIkhB,KAAJ,EAAWnB,OAA/B,EAAwCxB,GAAxC,EAA6C;AACzCwC,gCAAQG,QAAQ3C,CAAhB,IAAqB;AACjB4C,0CAAc,IADG;AAEjBC,oCAAQphB,IAAIkhB,KAAJ,EAAWrB;AAFF,yBAArB;AAIH;AACJ;AACJ;;AAED,iBAAK,IAAItB,IAAI,CAAb,EAAgBA,IAAImB,gBAApB,EAAsCnB,GAAtC,EAA2C;AACvC,oBAAI,QAAOwC,QAAQxC,CAAR,CAAP,KAAqB,QAArB,IAAiCwC,QAAQxC,CAAR,EAAW6C,MAAX,GAAoB,CAAzD,EAA4D;AACxDL,4BAAQxC,CAAR,EAAW6C,MAAX;AACA,wBAAIL,QAAQxC,CAAR,EAAW4C,YAAf,EAA6B;AACzBJ,gCAAQxC,CAAR,EAAW4C,YAAX,GAA0B,KAA1B;AACH,qBAFD,MAEO;AACHH,6BAAK3V,IAAL,CAAU,CAAV;AACH;AACJ;AACJ;;AAED4V,mBAAO5V,IAAP,CAAY2V,IAAZ;AAEH;AACD,eAAOC,MAAP;AACH,KA3CD;;AA6CA;;;;;;AAMA,QAAII,kBAAkB,SAAlBA,eAAkB,CAAU5B,GAAV,EAAe;AACjC,YAAIsB,UAAU,EAAd;AAAA,YAAkB/gB,GAAlB;AAAA,YAAuBghB,IAAvB;;AAEA,aAAK,IAAIniB,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCkiB,oBAAQliB,CAAR,IAAa,CAAb;AACH;;AAED,YAAI4gB,OAAO,CAAC,CAAZ,EAAe;AACX,mBAAOsB,OAAP;AACH;;AAED,aAAK,IAAIliB,IAAI,CAAb,EAAgBA,KAAK4gB,GAArB,EAA0B5gB,GAA1B,EAA+B;AAC3ByiB,0BAAc9gB,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAd;AACAshB,0BAAc,CAAd;;AAEA,iBAAK,IAAIC,YAAY,CAArB,EAAwBA,YAAY9B,gBAApC,EAAsD8B,aAAaC,WAAnE,EAAgF;AAC5EA,8BAAc,CAAd;;AAEA,oBAAIV,QAAQS,SAAR,CAAJ,EAAwB;AACpBT,4BAAQS,SAAR;AACH,iBAFD,MAEO;AACHE,4BAAQJ,YAAYC,aAAZ,CAAR;AACA,wBAAIG,MAAM7B,OAAN,GAAgB,CAApB,EAAuB;AACnB,6BAAKtB,IAAI,CAAT,EAAYA,IAAImD,MAAM3B,OAAtB,EAA+BxB,GAA/B,EAAoC;AAChCwC,oCAAQS,YAAYjD,CAApB,IAAyBmD,MAAM7B,OAAN,GAAgB,CAAzC;AACH;AACD4B,sCAAcC,MAAM3B,OAApB;AACH,qBALD,MAKO,IAAI2B,MAAM3B,OAAN,GAAgB,CAApB,EAAuB;AAC1B0B,sCAAcC,MAAM3B,OAApB;AACH;AACJ;AACJ;AAEJ;AACD,eAAOgB,OAAP;AACH,KAnCD;;AAqCA;;;;;AAKA,QAAIY,YAAY,SAAZA,SAAY,CAAU3Y,CAAV,EAAa;AACzB,YAAI4Y,SAAS,kBAAb;AACA,aAAK,IAAI/iB,IAAI,CAAb,EAAgBA,IAAImK,EAAEpK,MAAtB,EAA8BC,GAA9B,EAAmC;;AAE/B,iBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAI4H,EAAEnK,CAAF,EAAKD,MAAzB,EAAiCwC,GAAjC,EAAsC;AAClCwgB,0BAAU,MAAM5Y,EAAEnK,CAAF,EAAKuC,CAAL,CAAhB;AACH;AACDwgB,sBAAU,IAAV;AACH;AACDphB,cAAMqgB,QAAN,CAAe7X,CAAf;AACH,KAVD;;AAYA;;;;;AAKA,QAAI6Y,aAAa,SAAbA,UAAa,GAAY;AACzB,YAAI5B,UAAU/jB,SAASG,sBAAT,CAAgC,qBAAhC,CAAd;AAAA,YACQ6jB,cAAchkB,SAASG,sBAAT,CAAgC,oBAAhC,CADtB;AAAA,YAEQ8jB,gBAAgBjkB,SAASG,sBAAT,CAAgC,6BAAhC,CAFxB;AAAA,YAGQ2D,MAAMQ,MAAMnE,sBAAN,CAA6B,kBAA7B,CAHd;AAIA,eAAO2D,IAAIpB,MAAX,EAAmB;AACfoB,gBAAI,CAAJ,EAAO9B,SAAP,CAAiBgC,MAAjB,CAAwB,kBAAxB;AACH;AACD,aAAK,IAAIrB,IAAI,CAAb,EAAgBA,IAAI0gB,MAAM3gB,MAA1B,EAAkCC,GAAlC,EAAuC;AACnC,iBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAIme,MAAM1gB,CAAN,EAASD,MAA7B,EAAqCwC,GAArC,EAA0C;AACtCme,sBAAM1gB,CAAN,EAASuC,CAAT,IAAc,CAAd;AACH;AACJ;AACD,aAAK,IAAIvC,IAAI,CAAb,EAAgBA,IAAIshB,cAAcvhB,MAAlC,EAA0CC,GAA1C,EAA+C;AAC3CshB,0BAActhB,CAAd,EAAiBX,SAAjB,CAA2BgC,MAA3B,CAAkC,SAAlC;AACAigB,0BAActhB,CAAd,EAAiBC,YAAjB,CAA8B,UAA9B,EAA0C,UAA1C;AACH;AACD,aAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIohB,QAAQrhB,MAA5B,EAAoCC,GAApC,EAAyC;AACrCohB,oBAAQphB,CAAR,EAAWX,SAAX,CAAqBC,GAArB,CAAyB,SAAzB;AACA8hB,oBAAQphB,CAAR,EAAW2O,eAAX,CAA2B,UAA3B;AACH;AACD,aAAK,IAAI3O,IAAI,CAAb,EAAgBA,IAAIqhB,YAAYthB,MAAhC,EAAwCC,GAAxC,EAA6C;AACzCqhB,wBAAYrhB,CAAZ,EAAeX,SAAf,CAAyBgC,MAAzB,CAAgC,SAAhC;AACAggB,wBAAYrhB,CAAZ,EAAeC,YAAf,CAA4B,UAA5B,EAAwC,UAAxC;AACH;AACJ,KAzBD;;AA2BA;;;;;;AAMA,QAAIgjB,iBAAiB,SAAjBA,cAAiB,GAAY;AAC7B,YAAIC,eAAe,EAAnB;AAAA,YAAuB/Y,IAAI,EAA3B;;AAEA;AACA,aAAK,IAAInK,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC,gBAAImjB,QAAQxhB,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAZ;AAAA,gBACQgiB,kBAAkB,CAD1B;AAEA,iBAAK,IAAI7gB,IAAI,CAAb,EAAgBA,IAAI4gB,MAAMpjB,MAA1B,EAAkCwC,GAAlC,EAAuC;AACnC6gB,mCAAmBD,MAAM5gB,CAAN,EAAS2e,OAA5B;AACH;AACDgC,yBAAa1W,IAAb,CAAkB4W,eAAlB;AACH;;AAEDvC,2BAAmB/T,KAAKC,GAAL,CAASsW,KAAT,CAAe,IAAf,EAAqBH,YAArB,CAAnB;AACA;AACA,YAAIpC,kBAAkBnf,MAAM6Q,IAAN,CAAWzS,MAAjC;;AAEA;AACA,aAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAI8gB,eAApB,EAAqC9gB,GAArC,EAA0C;AACtCmK,cAAEnK,CAAF,IAAO,EAAP;AACA,iBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAIse,gBAApB,EAAsCte,GAAtC,EAA2C;AACvC4H,kBAAEnK,CAAF,EAAKwM,IAAL,CAAU,CAAV;AACH;AACJ;AACDsW,kBAAU3Y,CAAV;AACA,eAAOA,CAAP;AACH,KA1BD;;AA4BA;;;;AAIA,QAAImZ,uBAAuB,SAAvBA,oBAAuB,CAAU1C,GAAV,EAAe;AACtC,YAAIzf,MAAMQ,MAAM6Q,IAAN,CAAWoO,GAAX,EAAgBxf,oBAAhB,CAAqC,IAArC,CAAV;AAAA,YACQmiB,SAAS,CADjB;AAEA,aAAK,IAAIvjB,IAAI,CAAb,EAAgBA,IAAImB,IAAIpB,MAAxB,EAAgCC,GAAhC,EAAqC;AACjCujB,sBAAUpiB,IAAInB,CAAJ,EAAOkhB,OAAjB;AACH;AACD,eAAOqC,MAAP;AACH,KAPD;;AASA;;;;;;AAMA,QAAIlgB,YAAY,SAAZA,SAAY,CAAUmgB,MAAV,EAAkB;AAC9B,YAAIC,aAAa,EAAjB;AAAA,YAAqBjP,IAArB;;AAEA,aAAK,IAAIxU,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCyjB,uBAAWzjB,CAAX,IAAgB,CAAhB;AACH;;AAED,aAAK,IAAIA,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC,gBAAIyiB,cAAc9gB,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAlB;AACAshB,0BAAc,CAAd;AACA,iBAAK,IAAIC,YAAY,CAArB,EAAwBA,YAAY9B,gBAApC,EAAsD8B,aAAaC,WAAnE,EAAgF;AAC5EA,8BAAc,CAAd;;AAEA,oBAAIa,WAAWd,SAAX,CAAJ,EAA2B;AACvBc,+BAAWd,SAAX;AACH,iBAFD,MAEO;AACH,wBAAI7hB,KAAK2hB,YAAYC,aAAZ,CAAT;AACA,wBAAI5hB,MAAM0iB,MAAV,EAAkB;AACd,+BAAO,CAACxjB,CAAD,EAAI2iB,SAAJ,CAAP;AACH;AACD,wBAAI7hB,GAAGkgB,OAAH,GAAa,CAAjB,EAAoB;AAChB,6BAAM,IAAItB,KAAI,CAAd,EAAiBA,KAAI5e,GAAGogB,OAAxB,EAAiCxB,IAAjC,EAAuC;AACnC+D,uCAAWd,YAAYjD,EAAvB,IAA4B5e,GAAGkgB,OAAH,GAAa,CAAzC;AACH;AACD4B,sCAAc9hB,GAAGogB,OAAjB;AACH,qBALD,MAKO,IAAIpgB,GAAGogB,OAAH,GAAa,CAAjB,EAAoB;AACvB0B,sCAAc9hB,GAAGogB,OAAjB;AACH;AACJ;AACJ;AACJ;AACJ,KA/BD;;AAiCApf,WAAO,uBAAP,EAAgCC,GAAhC,CAAoC,EAApC;AACAD,WAAO,mBAAP,EAA4BC,GAA5B,CAAgC,EAAhC;AACAD,WAAO,kBAAP,EAA2BC,GAA3B,CAA+B,EAA/B;AACAD,WAAO,0BAAP,EAAmCC,GAAnC,CAAuC,EAAvC;AACAD,WAAO,iEAAP,EAA0EC,GAA1E,CAA8E,GAA9E;AACAD,WAAO,qDAAP,EAA8DC,GAA9D,CAAkE,GAAlE;AACAD,WAAO,uDAAP,EAAgEC,GAAhE,CAAoE,IAApE;;AAEA,QAAIuU,WAAW9D,IAAf,EAAqB;AACjB;AACA,aAAK,IAAIxS,IAAI,CAAb,EAAgBA,IAAIxB,SAASuB,MAA7B,EAAqCC,GAArC,EAA0C;AACtC,gBAAIxB,SAASwB,CAAT,EAAY6O,EAAZ,KAAmB,yBAAvB,EAAkD;AAC9CrQ,yBAASwB,CAAT,EAAYX,SAAZ,CAAsBC,GAAtB,CAA0B,SAA1B;AACH;AACJ;;AAED;AACAqC,gBAAQtE,SAASyB,aAAT,CAAwB,OAAxB,CAAR;AACA6C,cAAMtC,SAAN,CAAgBC,GAAhB,CAAqB,oBAArB;AACAqC,cAAMuB,OAAN,CAAcwgB,cAAd,GAA+B,CAA/B;AACA;AACA,aAAK,IAAI1jB,IAAI,CAAb,EAAgBA,IAAIwS,IAApB,EAA0BxS,GAA1B,EAA+B;;AAE3B4gB,kBAAMjf,MAAMgiB,SAAN,CAAgB,CAAC,CAAjB,CAAN;AACA/C,gBAAIvhB,SAAJ,CAAcC,GAAd,CAAmB,UAAnB;;AAEA,iBAAK,IAAIiD,IAAI,CAAb,EAAgBA,IAAI+T,OAApB,EAA6B/T,GAA7B,EAAkC;AAC9BiS,uBAAO,IAAI7T,SAAJ,CAAcogB,IAAd,CAAP;AACAvM,qBAAK1R,SAAL,CAAe9C,CAAf,EAAkBuC,CAAlB;AACAqe,oBAAIhjB,WAAJ,CAAgB4W,KAAK/T,aAAL,EAAhB;AACH;AACJ;AACJ,KAxBD,MAwBO;AACH,YAAImjB,qBAAqBvmB,SAASG,sBAAT,CAAiC,oBAAjC,CAAzB;;AAEA,YAAIomB,mBAAmB7jB,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B4B,oBAAQiiB,mBAAmB,CAAnB,CAAR;;AAEA,gBAAIT,QAAQxhB,MAAMP,oBAAN,CAA2B,IAA3B,CAAZ;;AAEA,gBAAI+hB,MAAMpjB,MAAN,GAAe,CAAnB,EAAsB;AAClB,qBAAK,IAAIC,KAAI,CAAb,EAAgBA,KAAImjB,MAAMpjB,MAA1B,EAAkCC,IAAlC,EAAuC;AACnCW,8BAAUogB,IAAV,EAAgBoC,MAAMnjB,EAAN,CAAhB;AACH;AACJ;AACJ;AACJ;;AAED;;;;;AAKA2B,UAAM0Y,mBAAN,GAA4B,YAAY;AACpC,YAAI6D,MAAM7gB,SAASG,sBAAT,CAAgC,eAAhC,CAAV;AAAA,YACQqmB,qBAAqBxmB,SAASC,cAAT,CAAwB,2BAAxB,CAD7B;AAAA,YAEQwmB,yBAAyBzmB,SAASC,cAAT,CAAwB,gCAAxB,CAFjC;AAAA,YAGQymB,8BAA8B1mB,SAASC,cAAT,CAAyB,sCAAzB,CAHtC;AAAA,YAIQgb,mBAAmBjb,SAASG,sBAAT,CAAgC,oBAAhC,CAJ3B;AAKA,YAAI8a,iBAAiBvY,MAAjB,GAA0B,CAA9B,EAAiC;AAC7BuY,+BAAmBA,iBAAiB,CAAjB,CAAnB;AACH;;AAED,YAAK4F,IAAIne,MAAJ,GAAa,CAAlB,EAAsB;AAClB,iBAAM,IAAIC,MAAI,CAAd,EAAiBA,MAAIke,IAAIne,MAAzB,EAAiCC,KAAjC,EAAuC;AACnC,oBAAKke,IAAIle,GAAJ,EAAOX,SAAP,CAAiBqH,QAAjB,CAA2B,SAA3B,CAAL,EAA8C;AAC1CrJ,6BAASe,MAAT,CAAgBue,4BAAhB;AACAuB,wBAAIle,GAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,SAAzB;AACAwiB,uCAAmBxkB,SAAnB,CAA6BgC,MAA7B,CAAqC,SAArC;AACAyiB,2CAAuBzkB,SAAvB,CAAiCgC,MAAjC,CAAyC,SAAzC;AACA0iB,gDAA4B1kB,SAA5B,CAAsCgC,MAAtC,CAA8C,SAA9C;AACAiX,qCAAiBjZ,SAAjB,CAA2BgC,MAA3B,CAAmC,iCAAnC;AACA,wBAAI2iB,sBAAsB1L,iBAAiBlX,oBAAjB,CAAuC,IAAvC,CAA1B;AACA,wBAAK4iB,oBAAoBjkB,MAApB,GAA6B,CAAlC,EAAsC;AAClC,6BAAM,IAAIC,MAAI,CAAd,EAAiBA,MAAIgkB,oBAAoBjkB,MAAzC,EAAiDC,KAAjD,EAAuD;AACnDgkB,gDAAoBhkB,GAApB,EAAuBX,SAAvB,CAAiCgC,MAAjC,CAAyC,kBAAzC;AACH;AACJ;AACJ,iBAbD,MAaO;AACHhE,6BAASe,MAAT,CAAgBse,0BAAhB;AACAwB,wBAAIle,GAAJ,EAAOX,SAAP,CAAiBC,GAAjB,CAAsB,SAAtB;AACAukB,uCAAmBxkB,SAAnB,CAA6BC,GAA7B,CAAkC,SAAlC;AACAwkB,2CAAuBzkB,SAAvB,CAAiCC,GAAjC,CAAsC,SAAtC;AACAgZ,qCAAiBjZ,SAAjB,CAA2BC,GAA3B,CAAgC,iCAAhC;AACH;AACJ;AAEJ;AACJ,KAnCD;;AAqCA;;;;;AAKAqC,UAAMsiB,kBAAN,GAA2B,UAAW7D,KAAX,EAAmB;AAC1C,YAAI8D,MAAM,KAAK9iB,oBAAL,CAA0B,IAA1B,CAAV;AAAA,YAA2CD,YAA3C;AAAA,YAAgDgjB,UAAU,CAA1D;AAAA,YAA6DC,cAAc,CAA3E;AAAA,YACQC,SAAS,EADjB;AAEA,YAAIrN,qBAAqB3Z,SAASC,cAAT,CAAyB,wBAAzB,CAAzB;;AAEA,aAAK,IAAI0C,IAAI,CAAb,EAAgBA,IAAIkkB,IAAInkB,MAAxB,EAAgCC,GAAhC,EAAqC;AACjC,gBAAKA,KAAK,CAAV,EAAc;AACV,oBAAKogB,SAASjhB,SAAd,EAA0B;AACtB+kB,wBAAIlkB,CAAJ,EAAOvC,KAAP,CAAaqM,eAAb,GAA+BhI,OAAO,uBAAP,EAAgCC,GAAhC,EAA/B;AACH;AACD,oBAAIiV,mBAAmBtN,OAAvB,EAAiC;AAC7B,wBAAI0W,SAASjhB,SAAb,EAAyB;AACrB,6BAAKE,SAAL,CAAeC,GAAf,CAAoB,yBAApB;AACA4kB,4BAAIlkB,CAAJ,EAAOX,SAAP,CAAiBC,GAAjB,CAAsB,iBAAtB;AACH,qBAAE;AACN,iBALD,MAKO;AACH,wBAAI8gB,SAASjhB,SAAb,EAAyB;AACrB,6BAAKE,SAAL,CAAegC,MAAf,CAAuB,yBAAvB;AACA6iB,4BAAIlkB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,iBAAzB;AACH;AACJ;AACJ,aAfD,MAeO;AACH,oBAAIrB,IAAI,CAAJ,IAAS,CAAb,EAAgB;AACZ,wBAAKogB,SAASjhB,SAAd,EAA0B;AACtB+kB,4BAAIlkB,CAAJ,EAAOvC,KAAP,CAAaqM,eAAb,GAA+BhI,OAAO,kBAAP,EAA2BC,GAA3B,EAA/B;AACH;AACDmiB,wBAAIlkB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,iBAAzB;AACH,iBALD,MAKO;AACH,wBAAK+e,SAASjhB,SAAd,EAA0B;AACtB+kB,4BAAIlkB,CAAJ,EAAOvC,KAAP,CAAaqM,eAAb,GAA+BhI,OAAO,mBAAP,EAA4BC,GAA5B,EAA/B;AACH;AACDmiB,wBAAIlkB,CAAJ,EAAOX,SAAP,CAAiBgC,MAAjB,CAAyB,iBAAzB;AACH;AACJ;;AAEDgjB,mBAAOrkB,CAAP;AACAmB,kBAAM+iB,IAAIlkB,CAAJ,EAAOoB,oBAAP,CAA4B,IAA5B,CAAN;;AAEA,gBAAIijB,OAAOrkB,CAAP,KAAab,SAAjB,EAA4B;AACxBklB,uBAAOrkB,CAAP,IAAY,EAAZ;AACH;;AAED,gBAAIskB,YAAY,CAAhB;AACA,iBAAK,IAAI/hB,IAAI,CAAb,EAAgBA,IAAIpB,IAAIpB,MAAxB,EAAgCwC,GAAhC,EAAqC;AACjC,oBAAI8hB,OAAOrkB,CAAP,EAAUuC,CAAV,KAAgBpD,SAApB,EAA+B;AAC3B,yBAAK,IAAI4D,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyBA,GAAzB,EAA8B;AAC1B,4BAAIshB,OAAOrkB,CAAP,EAAUskB,SAAV,KAAwBnlB,SAA5B,EAAuC;AACnCmlB;AACA;AACH;AACDD,+BAAOrkB,CAAP,EAAUskB,SAAV,IAAuBnjB,IAAIoB,CAAJ,CAAvB;AACApB,4BAAIoB,CAAJ,EAAOW,OAAP,CAAeE,MAAf,GAAwBkhB,SAAxB;AACA;AACH;AACJ,iBAVD,MAUO;AACHD,2BAAOrkB,CAAP,EAAUuC,CAAV,IAAepB,IAAIoB,CAAJ,CAAf;AACApB,wBAAIoB,CAAJ,EAAOW,OAAP,CAAeE,MAAf,GAAwBkhB,SAAxB;AACH;AACDnjB,oBAAIoB,CAAJ,EAAOW,OAAP,CAAeC,MAAf,GAAwBnD,CAAxB;;AAEA,oBAAImB,IAAIoB,CAAJ,EAAO2e,OAAP,GAAiB,CAArB,EAAwB;AACpB,yBAAK,IAAIxB,MAAI,CAAb,EAAgBA,MAAIve,IAAIoB,CAAJ,EAAO2e,OAA3B,EAAoCxB,KAApC,EAAyC;AACrC4E;AACAD,+BAAOrkB,CAAP,EAAUskB,SAAV,IAAuB,SAAvB;AACH;AACJ;;AAED,oBAAInjB,IAAIoB,CAAJ,EAAOye,OAAP,GAAiB,CAArB,EAAwB;AACpB,yBAAK,IAAIhe,IAAI,CAAb,EAAgBA,IAAI7B,IAAIoB,CAAJ,EAAOye,OAA3B,EAAoChe,GAApC,EAAyC;AACrC,4BAAIqhB,OAAOrkB,IAAIgD,CAAX,KAAiB7D,SAArB,EAAgC;AAC5BklB,mCAAOrkB,IAAIgD,CAAX,IAAgB,EAAhB;AACH;AACD,6BAAK,IAAIuhB,IAAI,CAAb,EAAgBA,IAAIpjB,IAAIoB,CAAJ,EAAO2e,OAA3B,EAAoCqD,GAApC,EAAyC;AACrCF,mCAAOrkB,IAAIgD,CAAX,EAAcshB,YAAYnjB,IAAIoB,CAAJ,EAAO2e,OAAnB,GAA6B,CAA7B,GAAiCqD,CAA/C,IAAqD,SAArD;AACH;AACJ;AACJ;AACDD;AACA,oBAAItkB,KAAK,CAAT,EAAa;AACTokB,kCAAcE,SAAd;AACH;AACJ;AACD,gBAAI/hB,IAAI4hB,OAAR,EAAiB;AACbA,0BAAU5hB,CAAV;AACH;AACJ;AACD,aAAK+T,OAAL,GAAe6N,OAAf;AACA,aAAKA,OAAL,GAAeC,WAAf;AACH,KAxFD;;AA0FCziB,UAAMkY,cAAN,GAAuB,UAAUtc,KAAV,EAAiBinB,OAAjB,EAA2B;AAC/C,YAAI1K,cAAenY,MAAMnE,sBAAN,CAA8B,kBAA9B,CAAnB;AACA,YAAIsc,YAAY/Z,MAAZ,GAAqB,CAAzB,EAA6B;AACzB,iBAAK,IAAI2f,MAAI,CAAb,EAAgBA,MAAI5F,YAAY/Z,MAAhC,EAAwC2f,KAAxC,EAA8C;AAC1C,oBAAI+E,aAAa3K,YAAY4F,GAAZ,EAAexc,OAAf,CAAuBE,MAAxC;AACA,oBAAIqhB,UAAJ,EAAiB;AAAA;AAAA,4BACJC,WADI,GACb,SAASA,WAAT,CAAsBD,UAAtB,EAAkCE,OAAlC,EAA4C;AACxC,gCAAIjO,YAAY/U,MAAM6Q,IAAtB;AACA,gCAAIoS,aAAa,KAAjB;AACA,gCAAIC,0BAA0B,EAA9B;AACA,iCAAK,IAAI7kB,MAAI,CAAb,EAAgBA,MAAI0W,UAAU3W,MAA9B,EAAsCC,KAAtC,EAA4C;AACxC,oCAAI4gB,OAAMlK,UAAU1W,GAAV,CAAV;AACA,oCAAImB,MAAMyf,KAAI3T,QAAd;AACA,qCAAK,IAAI1K,KAAI,CAAb,EAAgBA,KAAIpB,IAAIpB,MAAxB,EAAgCwC,IAAhC,EAAsC;AAClC,wCAAIzB,KAAKK,IAAIoB,EAAJ,CAAT;AACA,wCAAIzB,GAAGoC,OAAH,CAAWE,MAAX,IAAqBqhB,UAAzB,EAAsC;AAClC,4CAAIlnB,KAAJ,EAAY;AACR,gDAAIuD,GAAGogB,OAAH,IAAcyD,OAAlB,EAA4B;AACxB7jB,mDAAGrD,KAAH,CAAS6G,KAAT,GAAiB/G,QAAQ,IAAzB;AACAuD,mDAAG6N,eAAH,CAAoB,uBAApB;AACAiW,6DAAa,IAAb;AACA,oDAAIjD,oCAAoCtkB,SAASC,cAAT,CAAyB,oCAAzB,CAAxC;AACA,oDAAI,CAAEqkB,kCAAkCjY,OAAxC,EAAkD;AAC9CiY,sFAAkCjY,OAAlC,GAA4C,IAA5C;AACH;AACJ,6CARD,MAQO;AACH5I,mDAAGrD,KAAH,CAAS6G,KAAT,GAAiB,IAAjB;AACAxD,mDAAGoC,OAAH,CAAW0e,cAAX,GAA4BrkB,KAA5B;AACA,oDAAIyC,OAAK0W,UAAU3W,MAAV,GAAmB,CAAxB,IAA6B,CAAE6kB,UAAnC,EAAgD;AAC5CF,gEAAaD,UAAb,EAAyBE,UAAU,CAAnC;AACH;AACJ;AACJ,yCAhBD,MAgBO,IAAIH,OAAJ,EAAc;AACjB1jB,+CAAGrD,KAAH,CAAS6G,KAAT,GAAiB,IAAjB;AACAxD,+CAAG6N,eAAH,CAAoB,uBAApB;AACH,yCAHM,MAGA;AACH,gDAAI7N,GAAGoC,OAAH,CAAW0e,cAAf,EAAgC;AAC5B,oDAAI9gB,GAAGogB,OAAH,IAAcyD,OAAlB,EAA4B;AACxB7jB,uDAAGrD,KAAH,CAAS6G,KAAT,GAAiBxD,GAAGoC,OAAH,CAAW0e,cAAX,GAA4B,IAA7C;AACA9gB,uDAAG6N,eAAH,CAAoB,uBAApB;AACH;AACJ,6CALD,MAKO,IAAI7N,GAAGrD,KAAH,CAAS6G,KAAb,EAAqB;AACxB,qDAAK,IAAIigB,IAAI,CAAb,EAAgBA,IAAIM,wBAAwB9kB,MAA5C,EAAoDwkB,GAApD,EAA0D;AACtDM,4EAAwBN,CAAxB,EAA2B9mB,KAA3B,CAAiC6G,KAAjC,GAAyCxD,GAAGrD,KAAH,CAAS6G,KAAlD;AACH;AACDugB,0EAA0B,EAA1B;AACH,6CALM,MAKA;AACHA,wEAAwBrY,IAAxB,CAA8B1L,EAA9B;AACH;AACJ;AACD;AACH;AACJ;AACJ;AACJ,yBAjDY;;AAmDb4jB,oCAAaD,UAAb,EAAyB,CAAzB;AAnDa;AAoDhB;AACJ;;AAED9iB,kBAAM+X,cAAN;AACH;AACJ,KA9DA;;AAgED/X,UAAM+X,cAAN,GAAuB,YAAW;AAC9B,YAAIlH,OAAO7Q,MAAM6Q,IAAjB;;AAEA,YAAIsS,sBAAsB,CAA1B;AACA,YAAIC,2BAA2B,CAA/B;AACA,YAAIC,0BAA0B,CAA9B;;AAEA,YAAIrE,iBAAiBtjB,SAASG,sBAAT,CAAiC,kBAAjC,EAAsD,CAAtD,CAArB;AACA,YAAIynB,sBAAsBtE,eAAenc,WAAzC;;AAEA,YAAI0gB,6BAA6B,EAAjC;AACA,YAAIC,4BAA4B,EAAhC;AACA,YAAIC,kBAAkB,CAAtB;AACA,YAAIC,2BAA2B,CAA/B;AACA,YAAIC,qBAAqB,EAAzB;;AAEA,aAAK,IAAItlB,MAAI,CAAb,EAAgBA,MAAIwS,KAAKzS,MAAzB,EAAiCC,KAAjC,EAAuC;AACnC,gBAAImB,MAAMqR,KAAKxS,GAAL,EAAQiN,QAAlB;AACA,iBAAK,IAAI1K,MAAI,CAAb,EAAgBA,MAAIpB,IAAIpB,MAAxB,EAAgCwC,KAAhC,EAAsC;AAClC,oBAAIzB,KAAKK,IAAIoB,GAAJ,CAAT;;AAEA,oBAAI,CAAE2iB,2BAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,CAAF,IAA+D,CAAE+hB,0BAA0BjkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA1B,CAArE,EAAgI;AAC5H,wBAAItC,GAAGrD,KAAH,CAAS6G,KAAb,EAAqB;AACjB4gB,mDAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,IAA4DmB,WAAYzD,GAAGrD,KAAH,CAAS6G,KAArB,CAA5D;AACAxD,2BAAG6N,eAAH,CAAoB,6BAApB;AACH,qBAHD,MAGO;AACH,4BAAI,CAAE7N,GAAGoC,OAAH,CAAW0e,cAAjB,EAAkC;AAC9BuD,sDAA0BjkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA1B,IAA2D,GAA3D;AACAtC,+BAAGoC,OAAH,CAAWqiB,kBAAX,GAAgC,IAAhC;AACH;AACJ;;AAED,wBAAI5hB,OAAOC,gBAAP,CAAyB9C,EAAzB,EAA6B,IAA7B,CAAJ,EAA0C;AACtC,4BAAI4C,aAAaC,OAAOC,gBAAP,CAAyB9C,EAAzB,EAA6B,IAA7B,CAAjB;AACA,4BAAI+C,gBAAgBH,WAAWI,gBAAX,CAA6B,cAA7B,CAApB;AACA,4BAAIC,iBAAiBL,WAAWI,gBAAX,CAA6B,eAA7B,CAArB;AACAshB,0CAAkB7gB,WAAYV,aAAZ,EAA2B,EAA3B,IAAkCU,WAAYR,cAAZ,EAA4B,EAA5B,CAApD;;AAEA,4BAAIyhB,yBAAyB9hB,WAAWI,gBAAX,CAA6B,mBAA7B,CAA7B;AACA,4BAAI2hB,0BAA0B/hB,WAAWI,gBAAX,CAA6B,oBAA7B,CAA9B;AACAuhB,mDAA2B9gB,WAAYihB,sBAAZ,EAAoC,EAApC,IAA2CjhB,WAAYkhB,uBAAZ,EAAqC,EAArC,CAAtE;AACA,4BAAIP,2BAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,CAAJ,EAAgE;AAC5D8hB,uDAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,KAA6DgiB,eAA7D;AACAF,uDAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,KAA6DiiB,wBAA7D;AACH,yBAHD,MAGO;AACHF,sDAA0BjkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA1B,KAA4DgiB,eAA5D;AACAD,sDAA0BjkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA1B,KAA4DiiB,wBAA5D;AACH;AACJ;AACJ,iBA5BD,MA4BO,IAAIF,0BAA0BjkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA1B,CAAJ,EAA+D;AAClE,wBAAI,CAAEtC,GAAGoC,OAAH,CAAW0e,cAAjB,EAAkC;AAC9B9gB,2BAAGoC,OAAH,CAAWqiB,kBAAX,GAAgC,IAAhC;AACH;AACJ,iBAJM,MAIA,IAAIL,2BAA2BhkB,SAAUJ,GAAGoC,OAAH,CAAWE,MAArB,CAA3B,CAAJ,EAAgE;AACnEtC,uBAAG6N,eAAH,CAAoB,6BAApB;AACH;AACJ;AACJ;;AAED,aAAK,IAAI3O,MAAI,CAAb,EAAgBA,MAAIklB,2BAA2BnlB,MAA/C,EAAuDC,KAAvD,EAA6D;AACzD,gBAAIklB,2BAA2BllB,GAA3B,CAAJ,EAAoC;AAChC+kB,4CAA4BG,2BAA2BllB,GAA3B,CAA5B;AACH;AACJ;;AAED,YAAI0lB,sBAAsB,CAA1B;AACA,aAAK,IAAI1lB,MAAI,CAAb,EAAgBA,MAAImlB,0BAA0BplB,MAA9C,EAAsDC,KAAtD,EAA4D;AACxD,gBAAImlB,0BAA0BnlB,GAA1B,CAAJ,EAAmC;AAC/BglB,2CAA2BG,0BAA0BnlB,GAA1B,CAA3B;AACA0lB;AACH;AACJ;;AAED,YAAIC,oBAAoBhiB,OAAOC,gBAAP,CAAyBjC,KAAzB,EAAgC,IAAhC,CAAxB;AACA,YAAIikB,kBAAkBD,kBAAkB7hB,gBAAlB,CAAoC,mBAApC,CAAtB;AACA,YAAI+hB,mBAAmBF,kBAAkB7hB,gBAAlB,CAAoC,oBAApC,CAAvB;AACA,YAAIgiB,oBAAoBvhB,WAAYqhB,eAAZ,EAA6B,EAA7B,IAAoCrhB,WAAYshB,gBAAZ,EAA8B,EAA9B,CAA5D;AACAf,8BAAsBC,2BAA2BC,uBAA3B,GAAqDc,iBAA3E;;AAEAnkB,cAAMuB,OAAN,CAAc6iB,uBAAd,GAAwCjB,mBAAxC;AACA,YAAIY,mBAAJ,EAA0B;AACtB/jB,kBAAMuB,OAAN,CAAc8iB,uBAAd,GAAwCN,mBAAxC;AACA,gBAAI/jB,MAAMskB,wBAAV,EAAqC;AACjCtkB,sBAAMuB,OAAN,CAAcgjB,kBAAd,GAAmCnB,2BAA2Be,iBAA9D;AACH,aAFD,MAEO;AACHnkB,sBAAMgN,eAAN,CAAuB,4BAAvB;AACH;AACJ,SAPD,MAOO;AACHhN,kBAAMgN,eAAN,CAAuB,4BAAvB;AACAhN,kBAAMgN,eAAN,CAAuB,kCAAvB;AACH;;AAED,YAAIwX,qBAAqB,KAAzB;AACA,YAAIC,yBAAJ;AACA,YAAItB,sBAAsBG,mBAA1B,EAAgD;AAC5C,gBAAIS,mBAAJ,EAA0B;AACtB/jB,sBAAMlE,KAAN,CAAY8hB,QAAZ,GAAuB,MAAvB;AACA,oBAAI5d,MAAMskB,wBAAV,EAAqC;AACjCtkB,0BAAMlE,KAAN,CAAY6G,KAAZ,GAAoB,IAApB;AACA,wBAAI+hB,0BAA0BpB,sBAAsBF,wBAAtB,GAAiDe,iBAA/E;AACAM,uCAAmBC,0BAA0BX,mBAA7C;AACAU,uCAAmBA,mBAAmBhB,eAAnB,GAAqCC,wBAAxD;AACAc,yCAAqB,IAArB;AACH,iBAND,MAMO;AACHxkB,0BAAMlE,KAAN,CAAY6G,KAAZ,GAAoB,MAApB;AACH;AACJ,aAXD,MAWO;AACH3C,sBAAMlE,KAAN,CAAY6G,KAAZ,GAAoB,IAApB;AACA3C,sBAAMlE,KAAN,CAAY8hB,QAAZ,GAAuB,IAAvB;AACA5d,sBAAMlE,KAAN,CAAY+hB,QAAZ,GAAuBsF,sBAAsB,IAA7C;AACH;AACJ,SAjBD,MAiBO;AACHnjB,kBAAMlE,KAAN,CAAY+hB,QAAZ,GAAuB,IAAvB;AACA7d,kBAAMlE,KAAN,CAAY8hB,QAAZ,GAAuBuF,sBAAsB,IAA7C;AACAnjB,kBAAMlE,KAAN,CAAY6G,KAAZ,GAAoB,IAApB;AACA8hB,+BAAmB,KAAnB;AACAD,iCAAqB,IAArB;AACH;;AAED,YAAIG,OAAOjpB,SAASipB,IAApB;AACA,YAAIA,IAAJ,EAAW;AACP,gBAAIC,wBAAwBD,KAAKlmB,aAAL,CAAoB,uCAApB,CAA5B;AACA,gBAAImmB,qBAAJ,EAA4B;AACxBD,qBAAKtS,WAAL,CAAkBuS,qBAAlB;AACH;AACJ;;AAED,YAAIJ,kBAAJ,EAAyB;AACrBb,iCAAqBjoB,SAASyB,aAAT,CAAwB,OAAxB,CAArB;AACAwmB,+BAAmBrlB,YAAnB,CAAiC,yBAAjC,EAA4D,IAA5D;AACAqlB,+BAAmB/lB,SAAnB,GAA+B,8CAA8C6mB,gBAA9C,GAAiE,KAAhG;AACA,gBAAIE,IAAJ,EAAW;AACPA,qBAAK1oB,WAAL,CAAkB0nB,kBAAlB;AACH;AACJ;AACJ,KAvID;;AAyIA3jB,UAAMoY,YAAN,GAAqB,UAAUxc,KAAV,EAAiBinB,OAAjB,EAA2B;AAC5C,YAAI1K,cAAenY,MAAMnE,sBAAN,CAA8B,kBAA9B,CAAnB;AACA,YAAIsc,YAAY/Z,MAAZ,GAAqB,CAAzB,EAA6B;AACzB,iBAAK,IAAI2f,MAAI,CAAb,EAAgBA,MAAI5F,YAAY/Z,MAAhC,EAAwC2f,KAAxC,EAA8C;AAC1C,oBAAI8G,aAAa1M,YAAY4F,GAAZ,EAAexc,OAAf,CAAuBC,MAAxC;AACA,oBAAIqjB,UAAJ,EAAiB;AAAA;AAAA,4BACJ9B,WADI,GACb,SAASA,WAAT,CAAsB8B,UAAtB,EAAkCC,OAAlC,EAA4C;AACxC,gCAAI/P,YAAY/U,MAAM6Q,IAAtB;AACA,gCAAIkU,cAAc,KAAlB;AACA,gCAAIC,mBAAmB,EAAvB;AACA,iCAAK,IAAI3mB,MAAI,CAAb,EAAgBA,MAAI0W,UAAU3W,MAA9B,EAAsCC,KAAtC,EAA4C;AACxC,oCAAI4gB,QAAMlK,UAAU1W,GAAV,CAAV;AACA,oCAAImB,MAAMyf,MAAI3T,QAAd;AACA,qCAAK,IAAI1K,MAAI,CAAb,EAAgBA,MAAIpB,IAAIpB,MAAxB,EAAgCwC,KAAhC,EAAsC;AAClC,wCAAIzB,KAAKK,IAAIoB,GAAJ,CAAT;AACA,wCAAIzB,GAAGoC,OAAH,CAAWC,MAAX,IAAqBqjB,UAAzB,EAAsC;AAClC,4CAAIjpB,KAAJ,EAAY;AACR,gDAAIuD,GAAGkgB,OAAH,IAAcyF,OAAlB,EAA4B;AACxB3lB,mDAAGrD,KAAH,CAASgH,MAAT,GAAkBlH,QAAQ,IAA1B;AACAuD,mDAAG6N,eAAH,CAAoB,wBAApB;AACA+X,8DAAc,IAAd;AACA,oDAAIE,qCAAqCvpB,SAASC,cAAT,CAAyB,kCAAzB,CAAzC;AACA,oDAAI,CAAEspB,mCAAmCld,OAAzC,EAAmD;AAC/Ckd,uFAAmCld,OAAnC,GAA6C,IAA7C;AACH;AACD;AACH,6CATD,MASO;AACH5I,mDAAGrD,KAAH,CAASgH,MAAT,GAAkB,IAAlB;AACA3D,mDAAGoC,OAAH,CAAW6e,eAAX,GAA6BxkB,KAA7B;AACA,oDAAIgF,OAAKpB,IAAIpB,MAAJ,GAAa,CAAlB,IAAuB,CAAE2mB,WAA7B,EAA2C;AACvChC,gEAAa8B,UAAb,EAA0BC,UAAU,CAApC;AACH;AACJ;AACJ,yCAjBD,MAiBO,IAAIjC,OAAJ,EAAc;AACjB1jB,+CAAGrD,KAAH,CAASgH,MAAT,GAAkB,IAAlB;AACA3D,+CAAG6N,eAAH,CAAoB,wBAApB;AACH,yCAHM,MAGA;AACH,gDAAI7N,GAAGoC,OAAH,CAAW6e,eAAf,EAAiC;AAC7B,oDAAIjhB,GAAGkgB,OAAH,GAAayF,OAAjB,EAA2B;AACvB3lB,uDAAGrD,KAAH,CAASgH,MAAT,GAAkB3D,GAAGoC,OAAH,CAAW6e,eAAX,GAA6B,IAA/C;AACAjhB,uDAAG6N,eAAH,CAAoB,uBAApB;AACH;AACJ,6CALD,MAKO,IAAI7N,GAAGrD,KAAH,CAASgH,MAAb,EAAsB;AACzB,qDAAK,IAAI8f,IAAI,CAAb,EAAgBA,IAAIoC,iBAAiB5mB,MAArC,EAA6CwkB,GAA7C,EAAmD;AAC/CoC,qEAAiBpC,CAAjB,EAAoB9mB,KAApB,CAA0BgH,MAA1B,GAAmC3D,GAAGrD,KAAH,CAASgH,MAA5C;AACH;AACDkiB,mEAAmB,EAAnB;AACH,6CALM,MAKA;AACHA,iEAAiBna,IAAjB,CAAuB1L,EAAvB;AACH;AACJ;AACJ;AACJ;AACJ;AACJ,yBAjDY;;AAmDb4jB,oCAAa8B,UAAb,EAAyB,CAAzB;AAnDa;AAoDhB;AACJ;AACJ;AACJ,KA5DD;;AA8DA7kB,UAAM+hB,cAAN,GAAuB,YAAW;AAC9B,YAAIviB,MAAMQ,MAAMP,oBAAN,CAA4B,IAA5B,CAAV;AACAO,cAAMskB,wBAAN,GAAiC,KAAjC;AACAtkB,cAAMklB,sBAAN,GAA+B,KAA/B;AACAllB,cAAMuB,OAAN,CAAcwgB,cAAd,GAA+B,CAA/B;AACA,YAAIoD,WAAW,CAAf;AACA,aAAK,IAAI9mB,MAAI,CAAb,EAAgBA,MAAImB,IAAIpB,MAAxB,EAAgCC,KAAhC,EAAsC;AAClC,gBAAImB,IAAInB,GAAJ,EAAOkhB,OAAP,GAAiB,CAArB,EAAyB;AACrBvf,sBAAMuB,OAAN,CAAcwgB,cAAd,GAA+B,CAA/B;AACA/hB,sBAAMskB,wBAAN,GAAiC,IAAjC;AACAa;AACH;;AAED,gBAAI3lB,IAAInB,GAAJ,EAAOghB,OAAP,GAAiB,CAArB,EAAyB;AACrBrf,sBAAMuB,OAAN,CAAcwgB,cAAd,GAA+B,CAA/B;AACA/hB,sBAAMklB,sBAAN,GAA+B,IAA/B;AACAC;AACH;;AAED,gBAAIA,YAAY,CAAhB,EAAoB;AAChB;AACH;AACJ;AACJ,KAvBD;;AAyBA;;;AAGAnlB,UAAM+Y,YAAN,GAAqB,YAAY;AAC7B,YAAI5Z,WAAJ;AAAA,YACIimB,eAAe1pB,SAASG,sBAAT,CAAgC,oBAAhC,CADnB;AAAA,YAEIwpB,uBAFJ;AAAA,YAGIC,uBAHJ;AAIA,YAAIF,aAAahnB,MAAb,GAAsB,CAA1B,EAA6B;AACzBinB,6BAAiBD,aAAa,CAAb,EAAgB3mB,aAAhB,CAA8B,IAA9B,CAAjB;AACH;;AAED,YAAI4mB,cAAJ,EAAoB;AAChBC,6BAAiBD,eAAe9d,YAAf,CAA4B,OAA5B,CAAjB;AACH;;AAED,aAAK,IAAIlJ,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxCc,iBAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAL;;AAEA,gBAAIkG,cAAJ,EAAoB;AAChBnmB,mBAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCgnB,cAAzC;AACAnmB,mBAAGL,aAAH,GAAmBhD,KAAnB,CAAyB6G,KAAzB,GAAiC,IAAjC;AACH;;AAED3C,kBAAM6Q,IAAN,CAAWxS,CAAX,EAAcpC,WAAd,CAA0BkD,GAAGL,aAAH,EAA1B;AACAigB,kBAAM1gB,CAAN,EAASwM,IAAT,CAAc,CAAd;AACH;;AAEDqU;AACAlf,cAAMsiB,kBAAN;AACAtiB,cAAM+X,cAAN;AACA/X,cAAMoY,YAAN;AACA1d,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KA/BD;;AAiCA;;;;AAIArhB,UAAMgZ,cAAN,GAAuB,YAAY;AAC/B,YAAI7Z,WAAJ;AAAA,YACIomB,kBADJ;AAAA,YAEIH,eAAe1pB,SAASG,sBAAT,CAAgC,oBAAhC,CAFnB;AAAA,YAGIwpB,uBAHJ;AAAA,YAIIC,uBAJJ;AAKA,YAAKF,aAAahnB,MAAb,GAAsB,CAA3B,EAA+B;AAC3BinB,6BAAiBD,aAAa,CAAb,EAAgB3mB,aAAhB,CAA8B,IAA9B,CAAjB;AACH;;AAED,YAAK4mB,cAAL,EAAsB;AAClBC,6BAAiBD,eAAe9d,YAAf,CAA4B,OAA5B,CAAjB;AACH;;AAED,aAAK,IAAIlJ,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxCc,iBAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAL;AACA,gBAAIkG,cAAJ,EAAoB;AAChBnmB,mBAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCgnB,cAAzC;AACAnmB,mBAAGL,aAAH,GAAmBhD,KAAnB,CAAyB6G,KAAzB,GAAiC,IAAjC;AACH;AACD4iB,wBAAYvlB,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,EAAyC,CAAzC,CAAZ;AACA,gBAAI8lB,SAAJ,EAAe;AACXvlB,sBAAM6Q,IAAN,CAAWxS,CAAX,EAAcsG,YAAd,CAA2BxF,GAAGL,aAAH,EAA3B,EAA+CymB,SAA/C;AACH,aAFD,MAEO;AACHvlB,sBAAM6Q,IAAN,CAAWxS,CAAX,EAAcpC,WAAd,CAA0BkD,GAAGL,aAAH,EAA1B;AACH;AACDigB,kBAAM1gB,CAAN,EAASwM,IAAT,CAAc,CAAd;AACH;;AAEDqU;AACAlf,cAAMsiB,kBAAN;AACAtiB,cAAM+X,cAAN;AACA/X,cAAMoY,YAAN;AACA1d,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KAnCD;;AAqCA;;;;;;;AAOArhB,UAAMkZ,cAAN,GAAuB,UAAUsM,KAAV,EAAiB;AACpC,YAAI3U,OAAO7Q,MAAM6Q,IAAjB;AAAA,YACIkQ,oBADJ;AAAA,YAEID,oBAFJ;AAAA,YAGIjO,OAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAHX;AAAA,YAIIgnB,YAAY5S,KAAKtL,YAAL,CAAkB,OAAlB,CAJhB;AAAA,YAKIme,MAAMF,SAAShoB,SAAT,IAAsB,OAAOgoB,KAAP,KAAiB,QAAvC,GAAkDA,KAAlD,GAA0D9jB,UAAUmR,IAAV,EAAgB,CAAhB,CALpE;;AASA,YAAIqM,mBAAmBwG,GAAnB,GAAyB7S,KAAK0M,OAA9B,GAAwC,CAAxC,IAA6C,CAAjD,EAAqD;AACjDvf,kBAAM+Y,YAAN;AACH,SAFD,MAEO;AACH,gBAAI4M,mBAAmB,KAAvB;AAAA,gBACI1E,qBADJ;AAAA,gBAEI9hB,WAFJ;AAAA,gBAEQymB,YAFR;AAAA,gBAGI/E,mBAAkB,EAHtB;AAAA,gBAIIgF,oBAJJ;;AAMA,iBAAK,IAAIxnB,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCwiB,iCAAgBhW,IAAhB,CAAqB,CAArB;AACH;;AAED,iBAAK,IAAIxM,IAAI,CAAb,EAAgBA,IAAIwS,KAAKzS,MAAzB,EAAiCC,GAAjC,EAAsC;AAClC0iB,8BAAc,CAAd;AACAD,8BAAcjQ,KAAKxS,CAAL,EAAQoB,oBAAR,CAA6B,IAA7B,CAAd;AACAkmB,mCAAmB,KAAnB;AACA,qBAAK,IAAI3E,YAAY,CAArB,EACQA,YAAY9B,gBADpB,EAEQ8B,aAAaC,YAFrB,EAEkC;AAC9BA,mCAAc,CAAd;;AAEA,wBAAI0E,gBAAJ,EAAsB;AAClBxmB,6BAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAL;AACA,4BAAIqG,SAAJ,EAAe;AACXtmB,+BAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCmnB,SAAzC;AACAtmB,+BAAGL,aAAH,GAAmBhD,KAAnB,CAAyB6G,KAAzB,GAAiC,IAAjC;AACH;AACD,4BAAIkjB,eAAehV,KAAKxS,CAAL,EAAQ0G,QAAR,CAAiB8gB,WAAjB,CAAnB,EAAkD;AAC9CD,kCAAMC,YAAYhhB,WAAlB;AACA,gCAAI+gB,GAAJ,EAAS;AACL/U,qCAAKxS,CAAL,EAAQsG,YAAR,CAAqBxF,GAAGL,aAAH,EAArB,EAAyC8mB,GAAzC;AACH,6BAFD,MAEO;AACH/U,qCAAKxS,CAAL,EAAQpC,WAAR,CAAoBkD,GAAGL,aAAH,EAApB;AACH;AACJ,yBAPD,MAOO;AACH+R,iCAAKxS,CAAL,EAAQsG,YAAR,CAAqBxF,GAAGL,aAAH,EAArB,EAAyCgiB,YAAY,CAAZ,CAAzC;AACH;AACD;AACH,qBAjBD,MAiBO,IAAID,iBAAgBG,SAAhB,IAA6B,CAAjC,EAAoC;AACvC;AACA,4BAAI0E,OAAO1E,SAAX,EAAsB;AAClB2E,+CAAmB,IAAnB;AACH;AACJ,qBALM,MAKA;AACHE,sCAAc/E,YAAYC,aAAZ,CAAd;AACA,4BAAI8E,YAAYxG,OAAZ,GAAsB,CAA1B,EAA6B;AACzB4B,2CAAc4E,YAAYtG,OAA1B;AACA,iCAAK,IAAIxB,IAAI,CAAb,EAAgBA,IAAI8H,YAAYtG,OAAhC,EAAyCxB,GAAzC,EAA8C;AAC1C8C,iDAAgBG,YAAYjD,CAA5B,IAAiC8H,YAAYxG,OAA7C;AACA,oCAAI2B,YAAYjD,CAAZ,IAAiB2H,GAArB,EAA0B;AACtBC,uDAAmB,IAAnB;AACH;AACJ;AACJ,yBARD,MAQO,IAAIE,YAAYtG,OAAZ,GAAsB,CAA1B,EAA6B;AAChC0B,2CAAc4E,YAAYtG,OAA1B;AACA,iCAAK,IAAIxB,IAAI,CAAb,EAAgBA,IAAI8H,YAAYtG,OAAhC,EAAyCxB,GAAzC,EAA8C;AAC1C,oCAAIiD,YAAYjD,CAAZ,IAAiB2H,GAArB,EAA0B;AACtBC,uDAAmB,IAAnB;AACH;AACJ;AACJ,yBAPM,MAOA,IAAI3E,aAAa0E,GAAjB,EAAsB;AACzBC,+CAAmB,IAAnB;AACH;AACJ;AACJ;;AAED,qBAAK,IAAIG,IAAI,CAAb,EAAgBA,IAAI5G,gBAApB,EAAsC4G,GAAtC,EAA2C;AACvC,wBAAIjF,iBAAgBiF,CAAhB,IAAqB,CAAzB,EACIjF,iBAAgBiF,CAAhB;AACP;AAEJ;;AAED,iBAAK,IAAIznB,IAAI,CAAb,EAAgBA,IAAI0gB,MAAM3gB,MAA1B,EAAkCC,GAAlC,EAAuC;AACnC0gB,sBAAM1gB,CAAN,EAASwM,IAAT,CAAc,CAAd;AACH;AACDqU;AACAiC,sBAAUpC,KAAV;AACA/e,kBAAMsiB,kBAAN;AACAtiB,kBAAMkY,cAAN;AACAlY,kBAAMoY,YAAN;AACA1d,wBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH;AACJ,KA/FD;;AAiGA;;;;;;;AAOArhB,UAAMiZ,eAAN,GAAwB,YAAY;AAChC,YAAIpG,OAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAAX;AAAA,YACQinB,MAAMhkB,UAAUmR,IAAV,EAAgB,CAAhB,CADd;;AAGA,YAAI6S,QAAQ,CAAZ,EAAe;AACX1lB,kBAAMgZ,cAAN;AACH,SAFD,MAEO;AACHhZ,kBAAMkZ,cAAN,CAAqBwM,MAAM,CAA3B;AACH;AACJ,KATD;;AAWA;;;;;AAKA1lB,UAAM2Y,cAAN,GAAuB,YAAY;AAC/B,YAAIoN,IAAI/lB,MAAMgiB,SAAN,CAAgB,CAAC,CAAjB,CAAR;AAAA,YACQ7iB,WADR;AAAA,YAEQ6mB,YAFR;AAAA,YAGQZ,eAAe1pB,SAASG,sBAAT,CAAgC,oBAAhC,CAHvB;AAAA,YAIQwpB,uBAJR;AAAA,YAKQC,uBALR;AAMAS,UAAEroB,SAAF,CAAYC,GAAZ,CAAiB,UAAjB;AACA,YAAIynB,aAAahnB,MAAb,GAAsB,CAA1B,EAA6B;AACzBinB,6BAAiBD,aAAa,CAAb,EAAgB3mB,aAAhB,CAA8B,IAA9B,CAAjB;AACH;;AAED,YAAI4mB,cAAJ,EAAoB;AAChBC,6BAAiBD,eAAe9d,YAAf,CAA4B,OAA5B,CAAjB;AACH;;AAED,aAAK,IAAIlJ,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCc,iBAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAL;AACA,gBAAIkG,cAAJ,EAAoB;AAChBnmB,mBAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCgnB,cAAzC;AACH;AACDS,cAAE9pB,WAAF,CAAckD,GAAGL,aAAH,EAAd;AACH;AACDknB,cAAMhoB,MAAMioB,IAAN,CAAWlH,MAAM,CAAN,CAAX,CAAN;AACAA,cAAMlU,IAAN,CAAWmb,GAAX;AACA7E,kBAAUpC,KAAV;AACA/e,cAAMsiB,kBAAN;AACAtiB,cAAMkY,cAAN;AACAxd,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KA9BD;;AAgCA;;;;;AAKArhB,UAAM4Y,gBAAN,GAAyB,YAAY;AACjC,YAAImN,IAAI/lB,MAAMgiB,SAAN,CAAgB,CAAhB,CAAR;AAAA,YACQ7iB,WADR;AAAA,YAEQ6mB,YAFR;AAAA,YAGQZ,eAAe1pB,SAASG,sBAAT,CAAgC,oBAAhC,CAHvB;AAAA,YAIQwpB,uBAJR;AAAA,YAKQC,uBALR;AAMAS,UAAEroB,SAAF,CAAYC,GAAZ,CAAiB,UAAjB;AACA,YAAIynB,aAAahnB,MAAb,GAAsB,CAA1B,EAA6B;AACzBinB,6BAAiBD,aAAa,CAAb,EAAgB3mB,aAAhB,CAA8B,IAA9B,CAAjB;AACH;;AAED,YAAI4mB,cAAJ,EAAoB;AAChBC,6BAAiBD,eAAe9d,YAAf,CAA4B,OAA5B,CAAjB;AACH;;AAED,aAAK,IAAIlJ,IAAI,CAAb,EAAgBA,IAAI6gB,gBAApB,EAAsC7gB,GAAtC,EAA2C;AACvCc,iBAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAL;AACA,gBAAIkG,cAAJ,EAAoB;AAChBnmB,mBAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCgnB,cAAzC;AACH;AACDS,cAAE9pB,WAAF,CAAckD,GAAGL,aAAH,EAAd;AACH;AACDknB,cAAMhoB,MAAMioB,IAAN,CAAWlH,MAAM,CAAN,CAAX,CAAN;AACAA,cAAMlU,IAAN,CAAWmb,GAAX;AACA7E,kBAAUpC,KAAV;AACA/e,cAAMsiB,kBAAN;AACAtiB,cAAMkY,cAAN;AACAxd,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KA9BD;;AAgCA;;;;;;AAMArhB,UAAM6Y,YAAN,GAAqB,YAAY;AAC7B,YAAIhG,OAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAAX;AAAA,YACIgnB,YAAY5S,KAAKtL,YAAL,CAAkB,OAAlB,CADhB;AAAA,YAEI0X,MAAMvd,UAAUmR,IAAV,EAAgB,CAAhB,CAFV;AAAA,YAGIqT,gBAHJ;AAIA,aAAK,IAAI7nB,OAAI4gB,MAAM,CAAnB,EAAsB5gB,QAAK,CAA3B,EAA8BA,MAA9B,EAAoC;AAChC,gBAAI8nB,cAAcnmB,MAAM6Q,IAAN,CAAWxS,IAAX,EAAciN,QAAhC;AACA,gBAAI8a,oBAAoBD,YAAY/nB,MAApC;AACA,gBAAIgoB,oBAAoB,CAAxB,EAA4B;AACxB,qBAAK,IAAIxlB,MAAI,CAAb,EAAgBA,MAAIwlB,iBAApB,EAAuCxlB,KAAvC,EAA6C;AACzC,wBAAIulB,YAAYvlB,GAAZ,EAAeye,OAAf,IAA0B,CAA9B,EAAkC;AAC9BJ,8BAAM5gB,IAAN;AACA6nB,kCAAU,IAAV;AACA;AACH;AACJ;AACJ;AACD,gBAAKA,OAAL,EAAe;AACX;AACH;AACJ;;AAED,YAAIjH,QAAQ,CAAZ,EAAe;AACXjf,kBAAM4Y,gBAAN;AACH,SAFD,MAEO;AACH5Y,kBAAM8Y,WAAN,CAAmBmG,GAAnB,EAAwBwG,SAAxB;AACH;AACJ,KA3BD;;AA6BA;;;;;;;;;;AAUAzlB,UAAM8Y,WAAN,GAAoB,UAAWmG,GAAX,EAAgBwG,SAAhB,EAA4B;AAC5C,YAAIY,oBAAJ;AAAA,YACIC,iBADJ;AAAA,YAEIN,YAFJ;;AAIA,YAAK,CAAE/G,OAAOzhB,SAAP,IAAoB,OAAOyhB,GAAP,KAAe,QAArC,KAAmDwG,aAAajoB,SAArE,EAAiF;AAC7E,gBAAIqV,QAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAAX;AACAgnB,wBAAY5S,MAAKtL,YAAL,CAAkB,OAAlB,CAAZ,EACA0X,MAAMvd,UAAUmR,KAAV,EAAgB,CAAhB,CADN,EAEAwT,cAAcxT,MAAKwM,OAFnB,EAGAiH,WAAWrH,MAAMoH,WAAN,GAAoB,CAH/B;AAIH,SAND,MAMO;AACHC,uBAAWrH,GAAX;AACH;;AAGD,YAAIsH,eAAe,CAAnB;AACA,YAAKD,WAAWtmB,MAAM6Q,IAAN,CAAWzS,MAAX,GAAmB,CAAnC,EAAuC;AACnC,iBAAK,IAAIC,OAAI,CAAb,EAAgBA,QAAKioB,QAArB,EAAgCjoB,MAAhC,EAAsC;AAClC,oBAAImoB,qBAAqBxmB,MAAM6Q,IAAN,CAAWxS,IAAX,EAAciN,QAAvC;AAAA,oBACImb,wBAAwBD,mBAAmBpoB,MAD/C;AAEA,oBAAIqoB,wBAAwB,CAA5B,EAAgC;AAC5B,yBAAK,IAAI7lB,MAAI,CAAb,EAAgBA,MAAI6lB,qBAApB,EAA2C7lB,KAA3C,EAAiD;AAC7C,4BAAI8lB,cAAcF,mBAAmB5lB,GAAnB,EAAsBye,OAAxC;;AAEA,4BAAKqH,cAAc,CAAd,GAAmBroB,IAAnB,GAAuBioB,QAA5B,EAAuC;AACnCE,+CAAmB5lB,GAAnB,EAAsBye,OAAtB;AACH;AACJ;AACJ;AACJ;;AAED,gBAAIsH,QAAQ3mB,MAAM6Q,IAAN,CAAWyV,WAAW,CAAtB,CAAZ;AAAA,gBACIM,gBAAgBD,MAAMrb,QAD1B;AAAA,gBAEIub,sBAAsBD,cAAcxoB,MAFxC;;AAIA,gBAAIyoB,sBAAsB,CAA1B,EAA8B;AAC1B,qBAAM,IAAIxoB,OAAI,CAAd,EAAiBA,OAAIwoB,mBAArB,EAA0CxoB,MAA1C,EAAgD;AAC5CkoB,oCAAgBK,cAAcvoB,IAAd,EAAiBkhB,OAAjC;AACH;AACJ;AACJ,SAxBD,MAwBO;AACHgH,2BAAexH,MAAM,CAAN,EAAS3gB,MAAxB;AACH;;AAED,YAAI2nB,IAAI/lB,MAAMgiB,SAAN,CAAiBsE,WAAW,CAA5B,CAAR;AACAP,UAAEroB,SAAF,CAAYC,GAAZ,CAAiB,UAAjB;;AAEA,aAAMiD,IAAI,CAAV,EAAaA,IAAI2lB,YAAjB,EAA+B3lB,GAA/B,EAAqC;AACjC,gBAAIzB,KAAK,IAAIH,SAAJ,CAAeogB,IAAf,CAAT;AACAjgB,eAAGL,aAAH,GAAmBR,YAAnB,CAAiC,OAAjC,EAA0CmnB,SAA1C;AACAtmB,eAAGL,aAAH,GAAmBhD,KAAnB,CAAyB6G,KAAzB,GAAiC,IAAjC;AACAxD,eAAGL,aAAH,GAAmBhD,KAAnB,CAAyBgH,MAAzB,GAAkC,IAAlC;AACAijB,cAAE9pB,WAAF,CAAekD,GAAGL,aAAH,EAAf;AACH;;AAEDknB,cAAMhoB,MAAMioB,IAAN,CAAWlH,MAAM,CAAN,CAAX,CAAN;AACAA,cAAMlU,IAAN,CAAWmb,GAAX;AACA7E,kBAAUpC,KAAV;AACA/e,cAAMsiB,kBAAN;AACAtiB,cAAMkY,cAAN;AACAxd,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KA/DD;;AAiEA;;;;;;;;AAQArhB,UAAMqgB,QAAN,GAAiB,UAAU7X,CAAV,EAAa;AAC1B,YAAIse,WAAW,CAAC,CAAhB;AAAA,YACIC,cAAc,CAAC,CADnB;AAAA,YAEIC,SAAS,CAAC,CAFd;AAAA,YAGIC,YAAY,CAAC,CAHjB;AAAA,YAIInkB,MAJJ;AAAA,YAKIH,KALJ;AAAA,YAMIukB,gBAAgB,CANpB;AAAA,YAOIxG,QAAQ,CAPZ;;AASA,aAAK,IAAIriB,IAAI,CAAb,EAAgBA,IAAImK,EAAEpK,MAAtB,EAA8BC,GAA9B,EAAmC;AAC/B,iBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAI4H,EAAEnK,CAAF,EAAKD,MAAzB,EAAiCwC,GAAjC,EAAsC;AAClC,oBAAI4H,EAAEnK,CAAF,EAAKuC,CAAL,KAAW,CAAf,EAAkB;AACd,wBAAKA,IAAImmB,WAAJ,IAAmBA,eAAe,CAAC,CAAxC,EAA4C;AACxCA,sCAAcnmB,CAAd;AACH;AACD,wBAAKvC,IAAIyoB,QAAJ,IAAgBA,YAAY,CAAC,CAAlC,EAAsC;AAClCA,mCAAWzoB,CAAX;AACH;AACJ;AACJ;AAEJ;;AAED,aAAK,IAAIA,IAAImK,EAAEpK,MAAF,GAAW,CAAxB,EAA2BC,IAAI,CAAC,CAAhC,EAAmCA,GAAnC,EAAwC;AACpC,iBAAK,IAAIuC,IAAI4H,EAAEnK,CAAF,EAAKD,MAAL,GAAc,CAA3B,EAA8BwC,IAAI,CAAC,CAAnC,EAAsCA,GAAtC,EAA2C;AACvC,oBAAI4H,EAAEnK,CAAF,EAAKuC,CAAL,KAAW,CAAf,EAAkB;AACd,wBAAKA,IAAIqmB,SAAT,EAAqB;AACjBA,oCAAYrmB,CAAZ;AACH;AACD,wBAAKvC,IAAI2oB,MAAT,EAAkB;AACdA,iCAAS3oB,CAAT;AACH;AACJ;AACJ;AACJ;;AAED,aAAK,IAAIA,IAAIyoB,QAAb,EAAuBzoB,IAAI2oB,MAA3B,EAAmC3oB,GAAnC,EAAwC;AACpC,iBAAK,IAAIuC,IAAImmB,WAAb,EAA0BnmB,IAAIqmB,SAA9B,EAAyCrmB,GAAzC,EAA8C;AAC1C,oBAAI4H,EAAEnK,CAAF,EAAKuC,CAAL,KAAW,CAAX,IAAgB4H,EAAEnK,CAAF,EAAKuC,CAAL,KAAWpD,SAA/B,EAA0C;AACtC,2BAAO,KAAP;AACH;AACJ;AACJ;;AAED,aAAK,IAAIa,IAAI,CAAb,EAAgBA,IAAImK,EAAEpK,MAAtB,EAA8BC,GAA9B,EAAmC;AAC/B,iBAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAI4H,EAAEnK,CAAF,EAAKD,MAAzB,EAAiCwC,GAAjC,EAAsC;AAClC,oBAAI4H,EAAEnK,CAAF,EAAKuC,CAAL,KAAW,CAAf,EAAkB;AACd8f;AACH;AACJ;AACJ;;AAED5d,iBAASkkB,SAASF,QAAT,GAAoB,CAA7B;AACAnkB,gBAAQskB,YAAYF,WAAZ,GAA0B,CAAlC;AACAG,wBAAgBpkB,SAASH,KAAzB;;AAEA,YAAIukB,kBAAkBxG,KAAtB,EAA6B;AACzB,mBAAO,KAAP;AACH;AACD,eAAO,CAAC5d,MAAD,EAASH,KAAT,CAAP;AACH,KA7DD;;AA+DA;;;;;;AAMA3C,UAAMqZ,UAAN,GAAmB,YAAY;AAC3B,YAAI8N,aAAannB,MAAMqgB,QAAN,CAAetB,KAAf,CAAjB;AAAA,YACI+F,UAAUqC,WAAW,CAAX,CADd;AAAA,YAEInE,UAAUmE,WAAW,CAAX,CAFd;AAAA,YAGIrT,QAAQpY,SAAS+C,aAAT,CAAuB,mBAAvB,CAHZ;AAAA,YAIIe,MAAM,GAAGmO,KAAH,CAASyZ,IAAT,CAAc1rB,SAASG,sBAAT,CAAgC,kBAAhC,CAAd,EAAmE,CAAnE,CAJV;AAAA,YAKIwrB,iBAAiB,EALrB;;AAOA,aAAK,IAAIhpB,OAAI,CAAb,EAAgBA,OAAImB,IAAIpB,MAAxB,EAAgCC,MAAhC,EAAqC;AACjC,gBAAIipB,sBAAsB9nB,IAAInB,IAAJ,EAAOxC,sBAAP,CAA8B,iBAA9B,CAA1B;AACA,gBAAIyrB,oBAAoBlpB,MAApB,GAA6B,CAAjC,EAAoC;AAChC,oBAAImpB,mBAAmBD,oBAAoBlpB,MAA3C;AACA,qBAAK,IAAIwC,MAAI,CAAb,EAAgBA,MAAI2mB,gBAApB,EAAsC3mB,KAAtC,EAA2C;AACvCymB,mCAAexc,IAAf,CAAoByc,oBAAoB1mB,GAApB,CAApB;AACH;AACJ;AACD,gBAAIgK,IAAIpL,IAAInB,IAAJ,EAAOgB,UAAf;AACAuL,cAAEyH,WAAF,CAAc7S,IAAInB,IAAJ,CAAd;AACH;AACD,YAAIgpB,eAAejpB,MAAf,GAAwB,CAA5B,EAA+B;AAC3B,iBAAK,IAAIC,OAAI,CAAb,EAAgBA,OAAIgpB,eAAejpB,MAAnC,EAA2CC,MAA3C,EAAgD;AAC5CyV,sBAAM7X,WAAN,CAAkBorB,eAAehpB,IAAf,CAAlB;AACH;AACJ;;AAEDyV,cAAMyL,OAAN,GAAgByD,OAAhB;AACAlP,cAAMuL,OAAN,GAAgByF,OAAhB;AACA9kB,cAAMsiB,kBAAN;AACAtiB,cAAM+hB,cAAN;AACA,YAAIyF,aAAa1T,MAAMhY,KAAN,CAAY6G,KAA7B;AACA,YAAI8kB,sBAAsB3T,MAAMvS,OAAN,CAAc0e,cAAxC;AACA,YAAIuH,UAAJ,EAAiB;AACbxnB,kBAAMkY,cAAN,CAAsBtV,WAAY4kB,UAAZ,EAAwB,EAAxB,CAAtB;AACH,SAFD,MAEO,IAAIC,mBAAJ,EAA0B;AAC7BznB,kBAAMkY,cAAN;AACH,SAFM,MAEA;AACHlY,kBAAMkY,cAAN,CAAsB,KAAtB,EAA6B,IAA7B;AACH;;AAED,YAAIwP,cAAc5T,MAAMhY,KAAN,CAAYgH,MAA9B;AACA,YAAI6kB,uBAAuB7T,MAAMvS,OAAN,CAAc6e,eAAzC;AACA,YAAIsH,WAAJ,EAAkB;AACd1nB,kBAAMoY,YAAN,CAAoBxV,WAAY8kB,WAAZ,EAAyB,EAAzB,CAApB;AACH,SAFD,MAEO,IAAIC,oBAAJ,EAA2B;AAC9B3nB,kBAAMoY,YAAN;AACH,SAFM,MAEA;AACHpY,kBAAMoY,YAAN,CAAoB,KAApB,EAA2B,IAA3B;AACH;AACD1d,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KAlDD;;AAoDA;;;;;;;AAOArhB,UAAMsZ,SAAN,GAAkB,YAAY;AAC1B,YAAIzG,OAAOnX,SAASG,sBAAT,CAAgC,kBAAhC,EAAoD,CAApD,CAAX;AAAA,YACIipB,UAAUjS,KAAKwM,OADnB;AAAA,YAEI2D,UAAUnQ,KAAK0M,OAFnB;AAAA,YAGIqI,aAAa/U,KAAKtL,YAAL,CAAkB,OAAlB,CAHjB;AAAA,YAII0X,MAAMvd,UAAUmR,IAAV,EAAgB,CAAhB,CAJV;AAAA,YAKI/N,UAAU9E,MAAM6Q,IAAN,CAAWoO,GAAX,CALd;AAAA,YAMI4I,aAAYhV,KAAKtR,OAAL,CAAaE,MAN7B;;AAQAoR,aAAKwM,OAAL,GAAe,CAAf;AACAxM,aAAK0M,OAAL,GAAe,CAAf;;AAEA,aAAK,IAAIlhB,OAAI,CAAb,EAAgBA,OAAI2kB,OAApB,EAA6B3kB,MAA7B,EAAkC;AAC9B,gBAAIc,KAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAT;AACAjgB,eAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCspB,UAAzC;AACAzoB,eAAGL,aAAH,GAAmBpB,SAAnB,CAA6BC,GAA7B,CAAkC,kBAAlC;AACA,gBAAKkV,KAAKhO,WAAV,EAAwB;AACpBC,wBAAQH,YAAR,CAAsBxF,GAAGL,aAAH,EAAtB,EAA0C+T,KAAKhO,WAA/C;AACH,aAFD,MAEO;AACHC,wBAAQ7I,WAAR,CAAqBkD,GAAGL,aAAH,EAArB;AACH;AAEJ;;AAED,YAAIgmB,UAAU,CAAd,EAAiB;AACb,iBAAK,IAAIzmB,OAAI,CAAb,EAAgBA,OAAIymB,OAApB,EAA6BzmB,MAA7B,EAAkC;AAC9B,oBAAIypB,uBAAuBtqB,SAA3B;AAAA,oBACIuqB,UAAU/nB,MAAM6Q,IAAN,CAAWoO,MAAM5gB,IAAjB,CADd;AAAA,oBAEI8nB,cAAc4B,QAAQzc,QAF1B;AAAA,oBAGI8a,oBAAoBD,YAAY/nB,MAHpC;;AAKA,oBAAKgoB,oBAAoB,CAAzB,EAA6B;AACzB,yBAAM,IAAIrI,MAAI,CAAd,EAAiBA,MAAIqI,iBAArB,EAAwCrI,KAAxC,EAA8C;AAC1C,4BAAKnY,OAAQugB,YAAYpI,GAAZ,EAAexc,OAAf,CAAuBE,MAA/B,IAA0CmE,OAAQiiB,UAAR,CAA/C,EAAsE;AAClEC,mDAAuB3B,YAAYpI,GAAZ,CAAvB;AACA;AACH;AACJ;AACJ;AACD,qBAAM,IAAInd,MAAI,CAAd,EAAiBA,MAAIoiB,OAArB,EAA8BpiB,KAA9B,EAAoC;AAChC,wBAAIzB,MAAK,IAAIH,SAAJ,CAAeogB,IAAf,CAAT;AACAjgB,wBAAGL,aAAH,GAAmBR,YAAnB,CAAiC,OAAjC,EAA0CspB,UAA1C;AACA,wBAAKE,wBAAwBtqB,SAA7B,EAAyC;AACrCuqB,gCAAQpjB,YAAR,CAAsBxF,IAAGL,aAAH,EAAtB,EAA0CgpB,oBAA1C;AACH,qBAFD,MAEO;AACHC,gCAAQ9rB,WAAR,CAAqBkD,IAAGL,aAAH,EAArB;AACH;AACJ;AACJ;AACJ;;AAEDkB,cAAMsiB,kBAAN;AACAtiB,cAAM+hB,cAAN;AACA/hB,cAAMkY,cAAN;AACAlY,cAAMoY,YAAN;AACA1d,oBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACAqhB;AACH,KAzDD;;AA2DA;;;;;;AAMArhB,UAAMgoB,mBAAN,GAA4B,UAAU/I,GAAV,EAAe;AACvC,YAAIF,QAAQ,EAAZ;AAAA,YACQkJ,UADR;AAEAC,uBAAevG,qBAAqB1C,GAArB,CAAf;AACA,YAAIiJ,iBAAiBhJ,gBAArB,EAAuC;AACnC,mBAAO,EAAP;AACH;AACD+I,qBAAa/I,mBAAmBgJ,YAAhC;;AAEA,aAAK,IAAI7pB,IAAI4gB,MAAM,CAAnB,EAAsB5gB,KAAK,CAAL,IAAU4pB,UAAhC,EAA4C5pB,GAA5C,EAAiD;AAC7C,gBAAImB,MAAMQ,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAV;AACA,iBAAK,IAAIpB,IAAI,CAAb,EAAgBA,IAAImB,IAAIpB,MAAxB,EAAgCC,GAAhC,EAAqC;AACjC,oBAAImB,IAAInB,CAAJ,EAAOghB,OAAP,GAAiB,CAArB,EAAwB;AACpBN,0BAAMlU,IAAN,CAAWrL,IAAInB,CAAJ,CAAX;AACA4pB,kCAAczoB,IAAInB,CAAJ,EAAOkhB,OAArB;AACH;AACJ;AACJ;AACD,eAAOR,KAAP;AAEH,KApBD;;AAsBA;;;;;;AAMA/e,UAAMmoB,eAAN,GAAwB,YAAY;AAChC,YAAIC,UAAU,EAAd;AACA,aAAK,IAAI/pB,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC+pB,oBAAQvd,IAAR,CAAa,CAAb;AACH;;AAED,aAAK,IAAIxM,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC,gBAAImB,MAAMQ,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAV;AACA,iBAAK,IAAImB,IAAI,CAAb,EAAgBA,IAAIpB,IAAIpB,MAAxB,EAAgCwC,GAAhC,EAAqC;AACjC,oBAAIpB,IAAIoB,CAAJ,EAAOye,OAAP,GAAiB,CAArB,EAAwB;AACpB,yBAAK,IAAItB,IAAI,CAAb,EAAgBA,IAAIve,IAAIoB,CAAJ,EAAOye,OAA3B,EAAoCtB,GAApC,EAAyC;AACrCqK,gCAAQ/pB,IAAI0f,CAAZ;AACH;AACJ;AACJ;AACJ;;AAED,aAAK,IAAI1f,IAAI,CAAb,EAAgBA,IAAI2B,MAAM6Q,IAAN,CAAWzS,MAA/B,EAAuCC,GAAvC,EAA4C;AACxC,gBAAImB,MAAMQ,MAAM6Q,IAAN,CAAWxS,CAAX,EAAcoB,oBAAd,CAAmC,IAAnC,CAAV;AAAA,gBACQ4oB,eAAe,CADvB;AAEA,iBAAK,IAAIznB,IAAI,CAAb,EAAgBA,IAAIpB,IAAIpB,MAAxB,EAAgCwC,GAAhC,EAAqC;AACjCynB,gCAAgB7oB,IAAIoB,CAAJ,EAAO2e,OAAvB;AACH;AACD8I,4BAAgBD,QAAQ/pB,CAAR,CAAhB;AACA4pB,yBAAa/I,mBAAmBmJ,YAAhC;AACA,iBAAK,IAAIznB,IAAI,CAAb,EAAgBA,IAAIqnB,UAApB,EAAgCrnB,GAAhC,EAAqC;AACjC,oBAAIzB,KAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAT;AACApf,sBAAM6Q,IAAN,CAAWxS,CAAX,EAAcpC,WAAd,CAA0BkD,GAAGL,aAAH,EAA1B;AACA;AACH;AACJ;AACJ,KA/BD;;AAiCA;;;;;AAKAkB,UAAMoZ,SAAN,GAAkB,YAAY;AAC1B,YAAIvG,OAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAAX;AAAA,YACImpB,aAAa/U,KAAKtL,YAAL,CAAkB,OAAlB,CADjB;AAAA,YAEIud,UAAUjS,KAAKwM,OAFnB;AAAA,YAGIJ,MAAMvd,UAAUmR,IAAV,EAAgB,CAAhB,CAHV;AAAA,YAII/N,gBAJJ;AAAA,YAKIkhB,YALJ;;AAOA,YAAKlB,WAAWtnB,SAAhB,EAA4BsnB,UAAU,CAAV;;AAE5B,aAAM,IAAIzmB,OAAI,CAAd,EAAiBA,OAAIymB,OAArB,EAA8BzmB,MAA9B,EAAoC;AAChCyG,sBAAU9E,MAAM6Q,IAAN,CAAWoO,GAAX,CAAV;AACA,gBAAI7N,kBAAkBtM,QAAQwG,QAA9B;AAAA,gBACIgd,UAAUtoB,MAAM6Q,IAAN,CAAWoO,MAAM,CAAjB,CADd;AAAA,gBAEIsJ,wBAFJ;AAAA,gBAGIC,8BAHJ;AAAA,gBAIIC,QAAQ,EAJZ;;AAMA,gBAAIH,WAAW9qB,SAAf,EAA2B;AACvB+qB,kCAAkBD,QAAQhd,QAA1B;AACAkd,wCAAwBD,gBAAgBnqB,MAAxC;AACA,qBAAK,IAAIwC,MAAI,CAAb,EAAgBA,MAAIwQ,gBAAgBhT,MAApC,EAA4CwC,KAA5C,EAAiD;AAC7C,wBAAKwQ,gBAAgBxQ,GAAhB,EAAmBye,OAAnB,GAA6B,CAAlC,EAAsC;AAClC,4BAAIlgB,KAAK,IAAIH,SAAJ,CAAcogB,IAAd,CAAT;AACIjgB,2BAAGL,aAAH,GAAmBR,YAAnB,CAAgC,OAAhC,EAAyCspB,UAAzC;AACAzoB,2BAAGL,aAAH,GAAmBygB,OAAnB,GAA6BnO,gBAAgBxQ,GAAhB,EAAmB2e,OAAhD;AACApgB,2BAAGL,aAAH,GAAmBugB,OAAnB,GAA6BjO,gBAAgBxQ,GAAhB,EAAmBye,OAAnB,GAA6B,CAA1D;;AAEJ,4BAAIqJ,mBAAmBlrB,SAAvB;AACA,6BAAM,IAAIugB,MAAI,CAAd,EAAiBA,MAAIyK,qBAArB,EAA4CzK,KAA5C,EAAkD;AAC9C,gCAAKnY,OAAQ2iB,gBAAgBxK,GAAhB,EAAmBxc,OAAnB,CAA2BE,MAAnC,IAA8CmE,OAAQwL,gBAAgBxQ,GAAhB,EAAmBW,OAAnB,CAA2BE,MAAnC,CAAnD,EAAiG;AAC7FinB,mDAAmBH,gBAAgBxK,GAAhB,CAAnB;AACA;AACH;AACJ;;AAED,4BAAK2K,gBAAL,EAAwB;AACpBD,kCAAM5d,IAAN,CAAY,CAAC1L,EAAD,EAAKupB,gBAAL,CAAZ;AACH,yBAFD,MAEO;AACHD,kCAAM5d,IAAN,CAAY,CAAC1L,EAAD,CAAZ;AACH;AACJ;AACJ;;AAED,oBAAKspB,MAAMrqB,MAAN,GAAe,CAApB,EAAwB;AACpB,yBAAM,IAAI2f,MAAI,CAAd,EAAiBA,MAAI0K,MAAMrqB,MAA3B,EAAmC2f,KAAnC,EAAyC;AACrC,4BAAK0K,MAAM1K,GAAN,EAAS,CAAT,KAAevgB,SAApB,EAAgC;AAC5B8qB,oCAAQ3jB,YAAR,CAAsB8jB,MAAM1K,GAAN,EAAS,CAAT,EAAYjf,aAAZ,EAAtB,EAAmD2pB,MAAM1K,GAAN,EAAS,CAAT,CAAnD;AACH,yBAFD,MAEO;AACHuK,oCAAQrsB,WAAR,CAAqBwsB,MAAM1K,GAAN,EAAS,CAAT,EAAYjf,aAAZ,EAArB;AACH;AACJ;AACJ;AACJ;;AAED,gBAAIiW,YAAY/U,MAAM6Q,IAAtB;AACA,gBAAKkE,UAAU3W,MAAV,GAAmB,CAAxB,EAA4B;AACxB,qBAAM,IAAIwC,MAAI,CAAd,EAAiBA,MAAIqe,GAArB,EAA0Bre,KAA1B,EAAgC;AAC5B,wBAAI+nB,eAAe5T,UAAUnU,GAAV,EAAa0K,QAAhC;AACA,wBAAKqd,aAAavqB,MAAb,GAAsB,CAA3B,EAA+B;AAC3B,6BAAM,IAAIiD,IAAI,CAAd,EAAiBA,IAAIsnB,aAAavqB,MAAlC,EAA0CiD,GAA1C,EAAgD;AAC5C,gCAAKsnB,aAAatnB,CAAb,EAAgBge,OAAhB,GAA0B,CAA1B,IAA+BJ,MAAMre,GAA1C,EAA8C;AAC1C+nB,6CAAatnB,CAAb,EAAgBge,OAAhB;AACH;AACJ;AACJ;AACJ;AACJ;AACD2G,kBAAMhoB,MAAMioB,IAAN,CAAWlH,MAAM,CAAN,CAAX,CAAN;AACAA,kBAAM6J,GAAN,CAAU5C,GAAV;AACA7E,sBAAUpC,KAAV;AACA/e,kBAAMP,oBAAN,CAA2B,OAA3B,EAAoC,CAApC,EAAuC4S,WAAvC,CAAmDrS,MAAM6Q,IAAN,CAAWoO,GAAX,CAAnD;;AAEA,gBAAIjf,MAAM6Q,IAAN,CAAWzS,MAAX,IAAqB,CAAzB,EAA6B;AACzB4B,sBAAM0Y,mBAAN;AACAsG,+BAAephB,SAAf,GAA2B,EAA3B;AACAlD,4BAAYsX,kBAAZ;AACAtW,yBAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,OAA3E;AACH;;AAEDiE,kBAAMsiB,kBAAN;AACA5nB,wBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACDqhB;AACH,KApFD;;AAsFA;;;;;;AAMArhB,UAAMmZ,YAAN,GAAqB,YAAY;AAC7B,YAAItG,OAAOnX,SAAS+C,aAAT,CAAuB,mBAAvB,CAAX;AAAA,YACIopB,aAAahV,KAAKtR,OAAL,CAAaE,MAD9B;AAAA,YAEIuhB,UAAUnQ,KAAK0M,OAFnB;;AAIA,aAAM,IAAIlhB,OAAI,CAAd,EAAiBA,OAAI2kB,OAArB,EAA8B3kB,MAA9B,EAAoC;AAChC,iBAAM,IAAIuC,OAAI,CAAd,EAAiBA,OAAIZ,MAAM6Q,IAAN,CAAWzS,MAAhC,EAAwCwC,MAAxC,EAA8C;AAC1C,oBAAIulB,cAAcnmB,MAAM6Q,IAAN,CAAWjQ,IAAX,EAAc0K,QAAhC;AACA,oBAAI8a,oBAAoBD,YAAY/nB,MAApC;AACA,oBAAIgoB,oBAAoB,CAAxB,EAA4B;AACxB,yBAAM,IAAIrI,MAAIqI,oBAAoB,CAAlC,EAAqCrI,OAAK,CAA1C,EAA6CA,KAA7C,EAAmD;AAC/C,4BAAKnY,OAAQugB,YAAYpI,GAAZ,EAAexc,OAAf,CAAuBE,MAA/B,KAA2CmE,OAAQiiB,UAAR,CAAhD,EAAuE;AACnE,gCAAK1B,YAAYpI,GAAZ,EAAewB,OAAf,GAAyB,CAA9B,EAAkC;AAC9B4G,4CAAYpI,GAAZ,EAAewB,OAAf;AACH,6BAFD,MAEO;AACHvf,sCAAM6Q,IAAN,CAAWjQ,IAAX,EAAcyR,WAAd,CAA2B8T,YAAYpI,GAAZ,CAA3B;AACH;AACD;AACH,yBAPD,MAOO,IAAInY,OAAQugB,YAAYpI,GAAZ,EAAexc,OAAf,CAAuBE,MAA/B,IAA0CmE,OAAQiiB,UAAR,CAA1C,IACHjiB,OAAQugB,YAAYpI,GAAZ,EAAexc,OAAf,CAAuBE,MAA/B,IACAmE,OAAQugB,YAAYpI,GAAZ,EAAewB,OAAf,GAAwB,CAAhC,CADA,IACuCsI,UAFxC,EAEqD;AACxD,gCAAK1B,YAAYpI,GAAZ,EAAewB,OAAf,GAAyB,CAA9B,EAAkC;AAC9B4G,4CAAYpI,GAAZ,EAAewB,OAAf;AACH;AACD;AACH;AACJ;AACJ;AACJ;;AAED,iBAAM,IAAI3e,OAAI,CAAd,EAAiBA,OAAIZ,MAAM6Q,IAAN,CAAWzS,MAAhC,EAAwCwC,MAAxC,EAA8C;AAC1C,oBAAIme,MAAMne,IAAN,KAAYpD,SAAhB,EACIuhB,MAAMne,IAAN,EAASgoB,GAAT;AACP;;AAED1J;;AAEA,gBAAIlf,MAAMkK,gBAAN,CAAwB,IAAxB,EAA+B9L,MAA/B,IAAyC,CAA7C,EAAiD;AAC7C4B,sBAAM0Y,mBAAN;AACAsG,+BAAephB,SAAf,GAA2B,EAA3B;AACAlD,4BAAYsX,kBAAZ;AACAtW,yBAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,OAA3E;AACH;;AAEDiE,kBAAMsiB,kBAAN;AACAtiB,kBAAM+X,cAAN;AACArd,wBAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACDqhB;AACH,KAjDD;;AAmDA3lB,aAASG,sBAAT,CAAgC,sBAAhC,EAAwD,CAAxD,EAA2DC,KAA3D,CAAiEC,OAAjE,GAA2E,MAA3E;;AAEAgjB,YAAQuC,gBAAR;;AAEAD;AACAF,cAAUpC,KAAV;;AAEAC,mBAAe/iB,WAAf,CAA2B+D,KAA3B;AACA;AACIA,UAAMsiB,kBAAN,CAA0B,IAA1B;AACJ;AACAtiB,UAAM+hB,cAAN;AACA/hB,UAAM+X,cAAN;;AAEAiH,mBAAe6J,QAAf,GAA0B,YAAW;AACjC7oB,cAAM+X,cAAN;AACH,KAFD;;AAIA3b;;AAEA;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC,CA1pDD;;;ACAA,IAAImH,YAAY,SAAZA,SAAY,CAAWvG,IAAX,EAAkBC,cAAlB,EAAmC;AAC/C,QAAIC,aAAaxB,SAASyB,aAAT,CAAuB,KAAvB,CAAjB;AAAA,QACI2rB,UAAUptB,SAASyB,aAAT,CAAuB,KAAvB,CADd;AAAA,QAEI4rB,MAAMrtB,SAASyB,aAAT,CAAuB,GAAvB,CAFV;AAAA,QAGII,gBAAgBC,SAHpB;AAAA,QAIIC,OAAO,KAJX;;AAMIP,eAAWQ,SAAX,CAAqBC,GAArB,CAA0B,qBAA1B;;AAEAorB,QAAInrB,SAAJ,GAAgBZ,QAAQQ,SAAR,GAAoBR,IAApB,GAA2B,MAA3C;AACA8rB,YAAQ7sB,WAAR,CAAoB8sB,GAApB;AACA7rB,eAAWjB,WAAX,CAAuB6sB,OAAvB;AACJ,QAAK7rB,cAAL,EAAsB;AAClB,YAAIY,mBAAmBZ,eAAea,SAAf,CAAyBC,KAAzB,CAAgC,0BAAhC,CAAvB;AACA,YAAKF,oBAAoBG,MAAMC,OAAN,CAAeJ,gBAAf,CAAzB,EAA6D;AACzDN,4BAAgBM,iBAAiB,CAAjB,CAAhB;AACAJ,mBAAO,IAAP;AACH;;AAED,YAAIU,0CAAiBlB,eAAekB,UAAhC,EAAJ;AACA,aAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,WAAWC,MAA/B,EAAuCC,GAAvC,EAA6C;AACzCnB,uBAAWoB,YAAX,CAAwBH,WAAWE,CAAX,EAAcE,IAAtC,EAA4CJ,WAAWE,CAAX,EAAczC,KAA1D;AACH;AACJ;;AAED,SAAKiD,IAAL,GAAY,MAAZ;AACA,SAAKC,aAAL,GAAqB,YAAY;AAC7B,eAAO5B,UAAP;AACH,KAFD;AAGA6B,6BAA0B,IAA1B,EAAgCxB,aAAhC,EAA+CE,IAA/C;;AAEA,WAAO,IAAP;AACH,CAhCD;ACAA,IAAIgD,uBAAuB,SAAvBA,oBAAuB,CAAY2D,OAAZ,EAAsB;;AAE7C,aAASjB,eAAT,CAAyB7B,EAAzB,EAA6B;AACzB,YAAIA,MAAM,MAAV,EAAkB;AACd,mBAAO,IAAI+B,SAAJ,EAAP;AACH,SAFD,MAEO,IAAI/B,MAAM,OAAV,EAAmB;AACtB,mBAAO,IAAIgC,UAAJ,EAAP;AACH,SAFM,MAEA,IAAIhC,MAAM,MAAV,EAAkB;AACrB,mBAAO,IAAIiC,SAAJ,EAAP;AACH,SAFM,MAEA,IAAIjC,MAAM,QAAV,EAAoB;AACvB,mBAAO,IAAIvE,WAAJ,EAAP;AACH;AACJ;;AAEDqH,YAAQL,WAAR,GAAsB,UAAUb,CAAV,EAAa;AAC/B,YAAI2Y,GAAJ;AACA,YAAK3Y,EAAEmB,YAAF,CAAeiB,KAAf,CAAqBQ,OAArB,CAA8B,aAA9B,KAAiD,CAAC,CAAlD,IAAuD5C,EAAEmB,YAAF,CAAeiB,KAAf,CAAqBQ,OAArB,CAA8B,kBAA9B,KAAsD,CAAC,CAAnH,EAAuH;AACnH;AACH;AACD9C,wBAAgB,IAAhB,EAAsBE,CAAtB;;AAEAkB,gBAAQ1G,SAAR,CAAkBC,GAAlB,CAAuB,kBAAvB;AACH,KARD;AASAyG,YAAQJ,UAAR,GAAqB,UAAUd,CAAV,EAAa;AAC9BA,UAAEe,cAAF;AACAjB,wBAAgB,IAAhB,EAAsBE,CAAtB;AACH,KAHD;AAIAkB,YAAQF,WAAR,GAAsB,YAAY,CAEjC,CAFD;AAGAE,YAAQD,MAAR,GAAiB,UAASjB,CAAT,EAAY;AACzB,aAAKxF,SAAL,CAAegC,MAAf,CAAuB,kBAAvB;AACA,YAAI0E,gBAAJ;AAAA,YAAa4kB,gBAAb;AACA9lB,UAAEe,cAAF;AACAf,UAAEoa,eAAF;;AAEA,YAAI,CAACpa,EAAEmB,YAAF,CAAeC,OAAf,CAAuB,aAAvB,CAAD,IAA0C,CAACpB,EAAEmB,YAAF,CAAeC,OAAf,CAAuB,MAAvB,CAA/C,EAA+E;AAC3E;AACH;AACD,YAAId,uBAAJ;AAAA,YACIC,6BADJ;AAEA,YAAK/H,SAASG,sBAAT,CAAiC,kBAAjC,EAAsDuC,MAAtD,GAA+D,CAApE,EAAwE;AACpEoF,6BAAiB9H,SAASG,sBAAT,CAAiC,kBAAjC,EAAsD,CAAtD,CAAjB;AACH;AACD,YAAIH,SAASG,sBAAT,CAAiC,yBAAjC,EAA6DuC,MAA7D,GAAsE,CAA1E,EAA8E;AAC1EqF,mCAAuB/H,SAASG,sBAAT,CAAiC,yBAAjC,EAA6D,CAA7D,CAAvB;AACH;;AAED,YAAKqH,EAAEmB,YAAF,CAAeC,OAAf,CAAwB,aAAxB,CAAL,EAA+C;AAC3CF,sBAAUjB,gBAAiBD,EAAEmB,YAAF,CAAeC,OAAf,CAAwB,aAAxB,CAAjB,CAAV;AACAF,sBAAUA,QAAQtF,aAAR,EAAV;AACH,SAHD,MAGO;AACHkqB,sBAAU9lB,EAAEmB,YAAF,CAAeC,OAAf,CAAwB,MAAxB,CAAV;AACAF,sBAAU1I,SAASG,sBAAT,CAAiCmtB,OAAjC,EAA2C,CAA3C,CAAV;AACA5kB,oBAAQ1G,SAAR,CAAkBgC,MAAlB,CAA0B,kBAA1B;AACH;;AAED,YAAI8D,eAAe1H,KAAf,CAAqBC,OAArB,IAAgC,OAApC,EAA8C;AAC1C,gBAAIoD,WAAJ;AACA,gBAAIqE,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,WAAnC,EAAiD;AAC7CmC,qBAAKqE,eAAee,mBAAf,EAAL;AACApF,mBAAGlD,WAAH,CAAgBmI,OAAhB;AACH,aAHD,MAGO;AACH,oBAAIM,eAAelB,eAAee,mBAAf,EAAnB;AACApF,qBAAKuF,aAAarF,UAAlB;;AAEA,oBAAImE,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,eAAnC,EAAqD;AACjDmC,uBAAGwF,YAAH,CAAiBP,OAAjB,EAA0BM,YAA1B;AACH,iBAFD,MAEO,IAAIlB,eAAejC,OAAf,CAAuBvE,IAAvB,IAA+B,eAAnC,EAAqD;AACxD,wBAAI4H,mBAAmBF,aAAaG,WAApC;AACA1F,uBAAGwF,YAAH,CAAiBP,OAAjB,EAA0BQ,gBAA1B;AACH;AACJ;AACD,gBAAIE,UAAU3F,GAAGE,UAAjB;AACA,gBAAIyF,QAAQpH,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,oBAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0BF,OAA1B,EAAmC,oBAAnC,CAAZ;AACApK,4BAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AAEJ,SAtBD,MAsBO;AACH;AACH;;AAEDwD,uBAAe1H,KAAf,CAAqBC,OAArB,GAA+B,MAA/B;AACA0H,6BAAqB3H,KAArB,CAA2BC,OAA3B,GAAqC,MAArC;;AAEA0E,6BAAsB2D,OAAtB;;AAEA,eAAO,IAAP;AACH,KA3DD;AA4DAA,YAAQ6kB,WAAR,GAAsB,UAAS/lB,CAAT,EAAY;AAC9BkB,gBAAQ1G,SAAR,CAAkBgC,MAAlB,CAA0B,kBAA1B;AACH,KAFD;AAGH,CA7FD;ACAA,IAAIX,2BAA2B,SAA3BA,wBAA2B,CAAWqF,OAAX,EAAoB7G,aAApB,EAAkD;AAAA,QAAfE,IAAe,uEAAR,KAAQ;;AAC7E,QAAIoE,OAAOuC,QAAQtF,aAAR,EAAX;AAAA,QACIgB,KADJ;AAAA,QAEIqN,SAFJ;AAAA,QAGI1P,IAHJ;;AAKA,QAAKF,iBAAiBC,SAAjB,IAA8BC,QAAQ,IAA3C,EAAkD;AAC9CqC,gBAAQpE,SAASa,OAAT,CAAiB+J,SAAjB,CAA4BlC,QAAQvF,IAApC,CAAR;AACA,YAAIqqB,eAAextB,SAASG,sBAAT,CAAiC,iBAAjC,CAAnB;AACA,YAAIstB,oBAAoB,EAAxB;AACA,aAAK,IAAI9qB,IAAI,CAAb,EAAgBA,IAAI6qB,aAAa9qB,MAAjC,EAAyCC,GAAzC,EAA+C;AAC3C,gBAAImU,QAAQ,IAAIC,MAAJ,CAAY,kBAAkBrO,QAAQvF,IAA1B,GAAiC,SAA7C,EAAwD,GAAxD,CAAZ;AACA,gBAAI2G,SAAS0jB,aAAa7qB,CAAb,EAAgBP,SAAhB,CAA0BC,KAA1B,CAAiCyU,KAAjC,CAAb;AACA,gBAAIhN,MAAJ,EAAa;AACT2jB,kCAAkBte,IAAlB,CAAwBrF,OAAO,CAAP,CAAxB;AACH;AACJ;AACD,YAAI2jB,kBAAkB/qB,MAAlB,GAA2B,CAA/B,EAAmC;AAC/B,gBAAIgrB,kBAAkBje,KAAKC,GAAL,aAAa+d,iBAAb,CAAtB;AACArpB,oBAAQspB,kBAAkB,CAA1B;AACH,SAHD,MAGO;AACHtpB,oBAAQ,CAAR;AACH;AACJ,KAjBD,MAiBO,IAAKvC,iBAAiB,CAAEE,IAAxB,EAA+B;AAClCqC,gBAAQvC,cAAcyD,KAAd,CAAoB,GAApB,EAAyB,CAAzB,CAAR;AACH;;AAEDa,SAAKoY,YAAL,GAAoB,UAAUjO,KAAV,EAAiB;AACjC,aAAKtO,SAAL,CAAeC,GAAf,CAAmB,sBAAnB;AACA,YAAIuc,YAAYxe,SAASyB,aAAT,CAAwB,MAAxB,CAAhB;AAAA,YACIgd,UAAUze,SAASyB,aAAT,CAAwB,MAAxB,CADd;AAAA,YAEIksB,UAAU3tB,SAASyB,aAAT,CAAwB,MAAxB,CAFd;AAAA,YAGIid,UAAU1e,SAASyB,aAAT,CAAwB,MAAxB,CAHd;AAAA,YAGgDkB,UAHhD;;AAKA+b,gBAAQ1c,SAAR,CAAkBC,GAAlB,CAAsB,cAAtB;AACAuc,kBAAUxc,SAAV,CAAoBC,GAApB,CAAwB,WAAxB,EAAqC,iBAArC,EAAwD,oBAAxD;AACAwc,gBAAQzc,SAAR,CAAkBC,GAAlB,CAAsB,WAAtB,EAAmC,sBAAnC,EAA2D,uBAA3D;AACA0rB,gBAAQ3rB,SAAR,CAAkBC,GAAlB,CAAsB,WAAtB,EAAmC,gBAAnC,EAAqD,kBAArD;AACA0rB,gBAAQ9oB,SAAR,GAAoB,IAApB;AACA2Z,kBAAU1Z,OAAV,GAAoB,UAAUwL,KAAV,EAAiB;AACjC,gBAAIsd,MAAM,KAAKjqB,UAAL,CAAgBA,UAA1B;AAAA,gBACIiC,KAAKgoB,IAAIjqB,UADb;AAEAiC,eAAG+Q,WAAH,CAAeiX,GAAf;;AAEA,gBAAIA,IAAIzqB,IAAJ,IAAY,MAAhB,EAAyB;AACrB,oBAAIiG,UAAUxD,GAAGjC,UAAjB;AACA,oBAAIyF,QAAQpH,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,wBAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0BF,OAA1B,EAAmC,oBAAnC,CAAZ;AACApK,gCAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACJ;AAEJ,SAbD;AAcAma,gBAAQ3Z,OAAR,GAAkB,UAAUwL,KAAV,EAAiB;AAC/B,gBAAIvO,aAAJ;AACA,gBAAI2G,QAAQvF,IAAR,IAAgB,MAApB,EAA4B;AACxB,oBAAIM,KAAK6M,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCA,UAA5C;AAAA,oBACIkqB,OAAO,EADX;AAAA,oBAEIC,UAAUxd,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmC6K,gBAAnC,CAAoD,+BAApD,CAFd;;AAIA,qBAAK,IAAI7L,IAAI,CAAb,EAAgBA,IAAImrB,QAAQprB,MAA5B,EAAoCC,GAApC,EAAyC;AACrCkrB,yBAAK1e,IAAL,CAAU2e,QAAQnrB,CAAR,EAAWT,SAArB;AACH;;AAEDH,uBAAO,IAAI4F,SAAJ,CAAekmB,IAAf,EAAqB1nB,IAArB,CAAP;;AAEAA,qBAAKxC,UAAL,CAAgBsF,YAAhB,CAA8BlH,KAAKqB,aAAL,EAA9B,EAAoD+C,KAAKgD,WAAzD;AACH,aAZD,MAYO,IAAIT,QAAQvF,IAAR,IAAgB,MAApB,EAA4B;AAC/B,oBAAIM,KAAK6M,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCA,UAA5C;AACA5B,uBAAO,IAAI8F,SAAJ,CAAcyI,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCkM,UAAnC,CAA8C,CAA9C,EAAiD3N,SAA/D,EAA0EiE,IAA1E,CAAP;;AAEAA,qBAAKxC,UAAL,CAAgBsF,YAAhB,CAA8BlH,KAAKqB,aAAL,EAA9B,EAAoD+C,KAAKgD,WAAzD;AACH,aALM,MAKA,IAAKT,QAAQvF,IAAR,IAAgB,OAArB,EAA+B;AAClC,oBAAIM,KAAK6M,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCA,UAA5C;AACA5B,uBAAO,IAAI6F,UAAJ,CAAgB0I,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCiM,QAAnC,CAA4C,CAA5C,EAA+CA,QAA/C,CAAwD,CAAxD,EAA2DqB,GAA3E,EAAgF9K,IAAhF,CAAP;;AAEAA,qBAAKxC,UAAL,CAAgBsF,YAAhB,CAA8BlH,KAAKqB,aAAL,EAA9B,EAAoD+C,KAAKgD,WAAzD;AACH,aALM,MAKA;AACH,oBAAI1F,KAAK6M,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCA,UAA5C;AAAA,oBACIrC,OAAOgP,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAxB,CAAmCkM,UAAnC,CAA8C,CAA9C,EAAiD9M,aAAjD,CAAgE,GAAhE,EAAsEb,SADjF;AAEAH,uBAAO,IAAIV,WAAJ,CAAiBC,IAAjB,EAAuB6E,IAAvB,CAAP;;AAEAA,qBAAKxC,UAAL,CAAgBsF,YAAhB,CAA8BlH,KAAKqB,aAAL,EAA9B,EAAoD+C,KAAKgD,WAAzD;AACH;;AAEDpE,iCAAsBhD,KAAKqB,aAAL,EAAtB;AACH,SAjCD;AAkCA,YAAIoN,SAAS,IAAb;AAAA,YACI1G,eADJ;AAAA,YAEImG,aAFJ;AAGAnG,iBAAS0G,OAAOpO,SAAP,CAAiBC,KAAjB,CAAuB,0BAAvB,CAAT;AACA4N,eAAOnG,OAAO,CAAP,CAAP;AACA,YAAIyI,gBAAiBvT,YAAYuT,aAAZ,EAArB;AACAob,gBAAQ9Q,WAAR,GAAsB,UAAUvM,KAAV,EAAiB;AACnC,iBAAK3M,UAAL,CAAgBvD,KAAhB,CAAsB2tB,OAAtB,GAAgC,CAAhC;AACAvd,mBAAOxO,SAAP,CAAiBgC,MAAjB,CAAyB,sBAAzB;AACAwM,mBAAOxO,SAAP,CAAiBC,GAAjB,CAAsB,kBAAtB;;AAEAqO,kBAAM3H,YAAN,CAAmBqlB,YAAnB,CAAiCzb,cAActC,IAAd,CAAjC,EAAsD,CAAtD,EAAyD,CAAzD;AACAK,kBAAM3H,YAAN,CAAmBmU,OAAnB,CAA4B,MAA5B,EAAoC,kBAAkBhT,OAAO,CAAP,CAAlB,GAA8B,GAA9B,GAAoCA,OAAO,CAAP,CAAxE;AACAwG,kBAAM3H,YAAN,CAAmBmU,OAAnB,CAA4B,kBAA5B,EAAgD,kBAAkBhT,OAAO,CAAP,CAAlB,GAA8B,GAA9B,GAAoCA,OAAO,CAAP,CAApF;AACAwG,kBAAM3H,YAAN,CAAmBmU,OAAnB,CAA4B,iBAAiBhT,OAAO,CAAP,CAA7C,EAAwD,iBAAiBA,OAAO,CAAP,CAAzE;AACA,gBAAI8jB,MAAMtd,MAAMG,MAAN,CAAa9M,UAAb,CAAwBA,UAAlC;AACA,gBAAIiqB,IAAIzqB,IAAJ,IAAY,MAAhB,EAAyB;AACrB,oBAAIiG,UAAUxD,GAAGjC,UAAjB;AACA,oBAAIyF,QAAQpH,SAAR,CAAkBqH,QAAlB,CAA4B,iBAA5B,CAAJ,EAAsD;AAClD,wBAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0BF,OAA1B,EAAmC,oBAAnC,CAAZ;AACApK,gCAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACJ;AACJ,SAjBD;;AAmBA,YAAIoE,QAAQvF,IAAR,KAAiB,QAArB,EAA+B;AAC3B,gBAAI2J,IAAI3G,KAAKpD,aAAL,CAAoB,GAApB,CAAR;AAAA,gBACI0N,SAAS3D,EAAE/J,aAAF,CAAiB,KAAjB,CADb;AAEA+J,cAAEhI,OAAF,GAAY,UAAU0C,CAAV,EAAc;AACtBA,kBAAEe,cAAF;AACH,aAFD;AAGAvJ,wBAAY+V,kBAAZ,CAAgCtE,MAAhC;AACH,SAPD,MAOO,IAAI/H,QAAQvF,IAAR,KAAiB,MAArB,EAA6B;AAChC6P,oBAAQC,IAAR,CAAa;AACTxC,wBAAQtK,KAAK0J,UAAL,CAAgB,CAAhB,CADC;AAETqD,wBAAQ,IAFC;AAGTC,yBAAS,aAHA;AAITC,6BAAa,OAJJ;AAKTC,uBAAO,QALE;AAMTC,yBAAS,KANA;AAOTC,yCAAyB,qBAPhB;AAQTC,+BAAe,IARN;AASTC,yBAAS,uFATA;AAUTC,uBAAQ,eAAUC,EAAV,EAAe;AACnBA,uBAAGC,EAAH,CAAO,QAAP,EAAiB,UAASpM,CAAT,EAAY;AACzB,4BAAI+b,MAAMvkB,YAAYsK,YAAZ,CAA0BnD,IAA1B,EAAgC,UAAhC,CAAV;AACA,4BAAIod,IAAIvhB,SAAJ,CAAcqH,QAAd,CAAwB,iBAAxB,CAAJ,EAAkD;AAC9C,gCAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0Bia,GAA1B,EAA+B,oBAA/B,CAAZ;AACAvkB,wCAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACJ,qBAND;AAOH,iBAlBQ;AAmBTiQ,wCAAwB,gCAAUC,MAAV,EAAkB;AACtClO,2BAAOmO,aAAP,GAAuBD,MAAvB;AACA;AACAA,2BAAOZ,EAAP,CAAU,OAAV,EAAmB,UAAUpM,CAAV,EAAa;AAC5B,4BAAIkN,aAAa1U,SAASG,sBAAT,CAAgC,oBAAhC,EAAsD,CAAtD,EAAyDgH,WAA1E;AACA,4BAAIb,OAAOmO,aAAP,IACAzU,SAASC,cAAT,CAAwB,cAAxB,EAAwC0U,SAAxC,IAAqD,EADrD,IAEArO,OAAOmO,aAAP,CAAqBG,WAArB,CAAiCxU,KAAjC,CAAuCC,OAAvC,IAAkD,MAFtD,EAE8D;AAC1DL,qCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,OAA/D;AACA7U,qCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAApD,GAA6DJ,aAAa,CAAb,GAAiB1U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CkH,WAA9C,GAA4D,CAA9E,GAAmF,IAA/I;AACAnH,qCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAApD,GAA0D,OAA1D;AACH,yBAND,MAMO;AACHnK,qCAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoDyU,QAApD,GAA+D,QAA/D;AACA,mCAAO7U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD0U,KAA3D;AACA,mCAAO9U,SAASC,cAAT,CAAwB,oBAAxB,EAA8CG,KAA9C,CAAoD+J,GAA3D;AACH;AACJ,qBAbD;AAcH;AApCQ,aAAb;AAuCH,SAxCM,MAwCA;AACHsH,wBAAYtL,KAAKhG,sBAAL,CAA6B,wBAA7B,CAAZ;AACA,iBAAM,IAAIwC,KAAI,CAAd,EAAiBA,KAAI8O,UAAU/O,MAA/B,EAAuCC,IAAvC,EAA6C;AACzC3D,4BAAY+T,oBAAZ,CAAkCtB,UAAU9O,EAAV,CAAlC;AACH;AACJ;;AAED+b,gBAAQne,WAAR,CAAoBotB,OAApB;AACAjP,gBAAQne,WAAR,CAAoBke,OAApB;AACAC,gBAAQne,WAAR,CAAoBie,SAApB;AACA,aAAKje,WAAL,CAAkBme,OAAlB;AACH,KA/ID;;AAiJAvY,SAAK8Y,YAAL,GAAoB,UAAW3O,KAAX,EAAmB;AACnC,aAAKtO,SAAL,CAAegC,MAAf,CAAuB,sBAAvB;AACA,YAAIkb,OAAO,CAAX;AACA,eAAO5O,MAAMG,MAAN,CAAa1N,aAAb,CAA4B,eAA5B,KAAiDmc,OAAO,CAA/D,EAAmE;AAC/D5O,kBAAMG,MAAN,CAAa1N,aAAb,CAA4B,eAA5B,EAA8CiB,MAA9C;AACAkb;AACH;AACJ,KAPD;;AASA;AACA,QAAIxW,QAAQvF,IAAR,IAAgB,MAApB,EAA6B;AACzB,YAAI8qB,WAAW,IAAIC,gBAAJ,CAAsB,UAAUC,SAAV,EAAsB;AACvD,gBAAI5K,MAAMvkB,YAAYsK,YAAZ,CAA0BnD,IAA1B,EAAgC,UAAhC,CAAV;AACA,gBAAIod,IAAIvhB,SAAJ,CAAcqH,QAAd,CAAwB,iBAAxB,CAAJ,EAAkD;AAC9C,oBAAI/E,QAAQtF,YAAYsK,YAAZ,CAA0Bia,GAA1B,EAA+B,oBAA/B,CAAZ;AACAvkB,4BAAYuK,kBAAZ,CAAgCjF,KAAhC;AACH;AACJ,SANc,CAAf;AAOA,YAAI8pB,SAAS,EAAE3rB,YAAY,IAAd,EAAoB4rB,iBAAiB,CAAC,OAAD,CAArC,EAAb;AACAJ,iBAASK,OAAT,CAAkB5lB,QAAQtF,aAAR,EAAlB,EAA2CgrB,MAA3C;AACH;;AAED,QAAIG,6BAA6BpoB,KAAK/D,SAAL,CAAeC,KAAf,CAAqB,0BAArB,CAAjC;AACA,QAAKksB,0BAAL,EAAkC;AAC9BpoB,aAAKnE,SAAL,CAAegC,MAAf,CAAuBuqB,2BAA2B,CAA3B,CAAvB;AACH;AACD,QAAK,CAAEpoB,KAAKnE,SAAL,CAAeqH,QAAf,CAAyB,iBAAzB,CAAP,EAAsD;AAClDlD,aAAKnE,SAAL,CAAeC,GAAf,CAAoB,iBAApB;AACA,YAAI,CAAEkE,KAAKnE,SAAL,CAAeqH,QAAf,CAAyB,kBAAkBX,QAAQvF,IAA1B,GAAiC,GAAjC,GAAuCiB,KAAhE,CAAN,EAAgF;AAC5E+B,iBAAKnE,SAAL,CAAeC,GAAf,CAAoB,kBAAkByG,QAAQvF,IAA1B,GAAiC,GAAjC,GAAuCiB,KAA3D;AACH;AACJ,KALD,MAKO;AACH,YAAI,CAAE+B,KAAKnE,SAAL,CAAeqH,QAAf,CAAyB,kBAAkBX,QAAQvF,IAA1B,GAAiC,GAAjC,GAAuCiB,KAAhE,CAAN,EAAgF;AAC5E+B,iBAAKnE,SAAL,CAAeC,GAAf,CAAoB,kBAAkByG,QAAQvF,IAA1B,GAAiC,GAAjC,GAAuCiB,KAA3D;AACH;AACJ;AACD,QAAIyG,mBAAJ,CAAyBnC,OAAzB,EAAkCtE,KAAlC,EAAyCvC,aAAzC;;AAEA7B,aAASa,OAAT,CAAiB6J,SAAjB,CAA2BhC,QAAQvF,IAAnC;AACH,CAnND;ACAA","file":"admin.js","sourcesContent":["(function () {\n var WPTB_Builder = function () {\n var table_id = WPTB_Helper.detectMode();\n if ( table_id ) {\n var http = new XMLHttpRequest(),\n urlSet = ajaxurl + \"?action=get_table\" + '&id=' + table_id;\n http.open('GET', urlSet, true);\n http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n http.onreadystatechange = function (d) {\n if (this.readyState == 4 && this.status == 200) {\n var ans = JSON.parse(http.responseText);\n document.getElementById('wptb-setup-name').value = ans[0];\n \n if( ans[1] ) {\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'none';\n let wptbTableSetupEl = document.getElementsByClassName('wptb-table-setup')[0];\n wptbTableSetupEl.appendChild( WPTB_Parser( ans[1] ) );\n WPTB_Table();\n WPTB_LeftPanel();\n WPTB_Settings();\n } else {\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\n }\n \n return;\n }\n };\n http.send(null);\n } else {\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\n }\n document.counter = new ElementCounters();\n document.select = new MultipleSelect();\n\n var initializer = WPTB_Initializer();\n settings = WPTB_Settings();\n };\n\n document.addEventListener('DOMContentLoaded', WPTB_Builder);\n})();","var WPTB_Button = function( text, DOMElementProt ) {\n \n var DOMElement = document.createElement('div'),\n elButton = document.createElement('div'),\n el_B = document.createElement('a'),\n el_BDiv = document.createElement( 'div' ),\n kindIndexProt = undefined,\n copy = false;\n\n DOMElement.classList.add('wptb-button-container', 'wptb-size-M', 'wptb-');\n elButton.classList.add('wptb-button-wrapper');\n el_BDiv.classList.add('wptb-button');\n el_BDiv.innerHTML = text != undefined ? text : 'Button Text';\n \n // Creation of a new button when copying to avoid errors when assigning new event handlers.\n if ( DOMElementProt ) {\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\n kindIndexProt = wptbElementMutch[1];\n copy = true;\n }; \n var attributesContainer = [...DOMElementProt.attributes];\n if ( attributesContainer.length > 0 ) {\n for( let i = 0; i < attributesContainer.length; i++ ) {\n DOMElement.setAttribute(attributesContainer[i].name, attributesContainer[i].value);\n } \n }\n \n var wptbButtonWrapper = DOMElementProt.querySelector( '.wptb-button-wrapper' );\n if ( wptbButtonWrapper ) {\n var wptbButtonWrapAttributes = [...wptbButtonWrapper.attributes];\n if ( wptbButtonWrapAttributes.length > 0 ) {\n for( let i = 0; i < wptbButtonWrapAttributes.length; i++ ) {\n if ( wptbButtonWrapAttributes[i].name == 'style') {\n elButton.setAttribute( wptbButtonWrapAttributes[i].name, wptbButtonWrapAttributes[i].value );\n }\n } \n }\n }\n \n var wptbButton = DOMElementProt.querySelector( 'a' );\n if ( wptbButton ) {\n var wptbButtonAttributes = [...wptbButton.attributes];\n if ( wptbButtonAttributes.length > 0 ) {\n for( let i = 0; i < wptbButtonAttributes.length; i++ ) {\n if ( wptbButtonAttributes[i].name == 'style' || \n wptbButtonAttributes[i].name == 'href' || \n wptbButtonAttributes[i].name == 'target' ) {\n el_B.setAttribute( wptbButtonAttributes[i].name, wptbButtonAttributes[i].value );\n }\n } \n }\n }\n }\n \n elButton.appendChild(el_B);\n el_B.appendChild( el_BDiv );\n DOMElement.appendChild(elButton);\n \n \n \n this.kind = 'button';\n\n this.getDOMElement = function () {\n return DOMElement;\n };\n\n applyGenericItemSettings( this, kindIndexProt, copy );\n\n return this;\n};","var WPTB_Cell = function (callback, DOMElement) {\n\n function highlightRow(td) {\n var parentRow = td.parentNode,\n columnCount = parseInt(document.getElementById('wptb-columns-number').value),\n tds = document.getElementsByClassName('wptb-preview-table')[0].getElementsByTagName('td');\n for (var i = 0; i < tds.length; i++) {\n tds[i].classList.remove('wptb-highlighted-row-first', 'wptb-highlighted-row-last', 'wptb-highlighted-row-inner', 'wptb-highlighted-column-first', 'wptb-highlighted-column-last', 'wptb-highlighted-column-inner');\n }\n for (var i = 0; i < columnCount; i++) {\n\n var classToAdd = i == 0 ? 'wptb-highlighted-row-first' : i == columnCount - 1 ? 'wptb-highlighted-row-last' : 'wptb-highlighted-row-inner';\n var ttd = parentRow.getElementsByTagName('td')[i];\n if (ttd !== td) {\n ttd.classList.add(classToAdd);\n }\n }\n }\n\n function highlightColumn(td) {\n\n var index,\n parentRow = td.parentNode;\n columnCount = parseInt(document.getElementById('wptb-columns-number').value), rowCount = parseInt(document.getElementById('wptb-rows-number').value), table = document.getElementsByClassName('wptb-preview-table')[0];\n for (var i = 0; i < columnCount; i++) {\n if (parentRow.getElementsByTagName('td')[i] === td) {\n index = i;\n break;\n }\n }\n\n for (var i = 0; i < rowCount; i++) {\n var classToAdd = i == 0 ? 'wptb-highlighted-column-first' : i == rowCount - 1 ? 'wptb-highlighted-column-last' : 'wptb-highlighted-column-inner';\n var tr = table.getElementsByTagName('tr')[i];\n if (tr.getElementsByTagName('td')[index] !== td) {\n tr.getElementsByTagName('td')[index].classList.add(classToAdd);\n }\n }\n }\n \n if( ! DOMElement ) {\n DOMElement = document.createElement(\"td\");\n\n DOMElement.style.padding = jQuery('#wptb-table-padding-number').val() + 'px';\n\n var innerBorderWidth = jQuery('#wptb-table-inner-border-number').val();\n\n if (innerBorderWidth != '' && parseInt(innerBorderWidth) != 0) {\n DOMElement.style.border = innerBorderWidth + 'px solid ' + jQuery('#wptb-table-border-color').val();\n } \n\n DOMElement.classList.add('wptb-droppable', 'wptb-cell');\n }\n\n DOMElement.draggable = false;\n if ( callback ) {\n DOMElement.onclick = callback;\n }\n \n WPTB_innerElementSet( DOMElement );\n \n let wptbPhElement = DOMElement.getElementsByClassName( 'wptb-ph-element' );\n \n if ( wptbPhElement.length > 0 ) {\n for( let i = 0; i < wptbPhElement.length; i++ ) {\n\n let wptbSpaceBetween = DOMElement.getElementsByClassName( 'wptb-space-between' );\n\n if ( wptbSpaceBetween.length > 0 ) {\n for( let j = 0; j < wptbSpaceBetween.length; j++ ) {\n WPTB_Space( wptbSpaceBetween[j] );\n }\n }\n \n wptbPhElement[i].getDOMElement = function() {\n return wptbPhElement[i];\n }\n \n WPTB_innerElementSet( wptbPhElement[i] );\n \n let wptbElementTypeClass = wptbPhElement[i].className.match( /wptb-element-((.+-)\\d+)/i );\n if( wptbElementTypeClass && Array.isArray( wptbElementTypeClass ) ) {\n let wptbTypeElementArr = wptbElementTypeClass[1].split( '-' );\n wptbPhElement[i].kind = wptbTypeElementArr[0];\n applyGenericItemSettings( wptbPhElement[i], wptbElementTypeClass[1] );\n if ( wptbPhElement[i].kind == 'list' ) {\n let wptbListItems = wptbPhElement[i].getElementsByTagName( 'li' );\n if( wptbListItems.length > 0 ) {\n for ( let i = 0; i < wptbListItems.length; i++ ) {\n WPTB_ListItem( undefined, wptbListItems[i] );\n }\n }\n }\n }\n }\n }\n\n this.getDOMElement = function () {\n return DOMElement;\n };\n\n this.setCoords = function (y, x) {\n var el = this.getDOMElement();\n el.dataset.yIndex = y;\n el.dataset.xIndex = x;\n };\n\n this.getCoords = function () {\n var coords,\n el = this.getDOMElement();\n coords.x = el.dataset.xIndex;\n coords.y = el.dataset.yIndex;\n return coords;\n };\n\n this.appendElement = function (node) {\n getDOMElement().appendChild(node);\n };\n \n DOMElement.getCellDimensions = function() {\n let tdStyleObj = window.getComputedStyle( this, null );\n \n let tdPaddingLeft = tdStyleObj.getPropertyValue( 'padding-left' );\n let tdPaddingRight = tdStyleObj.getPropertyValue( 'padding-right' );\n \n let tdBorderLeftWidth = tdStyleObj.getPropertyValue( 'border-left-width' );\n let tdBorderRightWidth = tdStyleObj.getPropertyValue( 'border-right-width' );\n \n let tdPaddingTop = tdStyleObj.getPropertyValue( 'padding-top' );\n let tdPaddingBottom = tdStyleObj.getPropertyValue( 'padding-bottom' );\n \n let tdBorderTopWidth = tdStyleObj.getPropertyValue( 'border-top-width' );\n let tdBorderBottomWidth = tdStyleObj.getPropertyValue( 'border-bottom-width' );\n \n let width = parseFloat( this.offsetWidth, 10 ) - \n parseFloat( tdPaddingLeft, 10 ) - \n parseFloat( tdPaddingRight, 10 ) -\n parseFloat( tdBorderLeftWidth, 10 ) -\n parseFloat( tdBorderRightWidth, 10 );\n \n let height = parseFloat( this.offsetHeight, 10 ) - \n parseFloat( tdPaddingTop, 10 ) - \n parseFloat( tdPaddingBottom, 10 ) -\n parseFloat( tdBorderTopWidth, 10 ) -\n parseFloat( tdBorderBottomWidth, 10 );\n \n return {\n width: width, \n height: height\n };\n }\n\n return this;\n};","var WPTB_DropHandle = function (thisElem, e) {\n \n function newElementProxy(el) {\n if (el.includes('list')) {\n return new WPTB_List();\n } else if (el.includes('image')) {\n return new WPTB_Image();\n } else if (el.includes('text')) {\n return new WPTB_Text();\n } else if (el.includes('button')) {\n return new WPTB_Button();\n }\n }\n \n let wptbDropHandle,\n wptbDropBorderMarker;\n if ( document.getElementsByClassName( 'wptb-drop-handle' ).length == 0 ) {\n wptbDropHandle = document.createElement( 'div' );\n wptbDropHandle.classList.add( 'wptb-drop-handle' );\n \n wptbDropBorderMarker = document.createElement( 'div' );\n wptbDropBorderMarker.classList.add( 'wptb-drop-border-marker' );\n \n let wptbDropBorderMarkerTop = document.createElement( 'div' ),\n wptbDropBorderMarkerRight = document.createElement( 'div' ),\n wptbDropBorderMarkerBottom = document.createElement( 'div' ),\n wptbDropBorderMarkerLeft = document.createElement( 'div' );\n \n wptbDropBorderMarkerTop.classList.add( 'wptb-drop-border-marker-top' );\n wptbDropBorderMarkerRight.classList.add( 'wptb-drop-border-marker-right' );\n wptbDropBorderMarkerBottom.classList.add( 'wptb-drop-border-marker-bottom' );\n wptbDropBorderMarkerLeft.classList.add( 'wptb-drop-border-marker-left' );\n \n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerTop );\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerRight );\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerBottom );\n wptbDropBorderMarker.appendChild( wptbDropBorderMarkerLeft );\n \n let body = document.getElementsByTagName( 'body' );\n if ( body.length > 0 ) {\n body[0].appendChild( wptbDropHandle );\n body[0].appendChild( wptbDropBorderMarker );\n }\n \n wptbDropHandle.ondragenter = function () {\n\n }\n\n wptbDropHandle.ondragover = function (e) {\n e.preventDefault();\n }\n\n wptbDropHandle.ondragleave = function () {\n\n }\n wptbDropHandle.ondrop = function (e) {\n e.preventDefault();\n let element;\n \n if ( e.dataTransfer.getData('wptbElement') ) {\n element = newElementProxy( e.dataTransfer.getData('wptbElement') );\n element = element.getDOMElement();\n } else {\n element = document.getElementsByClassName( e.dataTransfer.getData('node') )[0];\n element.classList.remove( 'wptb-moving-mode' );\n element.classList.remove( 'wptb-moving-into-same-elem' );\n }\n \n let td;\n if( wptbDropHandle.dataset.text == 'Drop Here' ) {\n thisElem = wptbDropHandle.getDOMParentElement();\n if ( thisElem.nodeName.toLowerCase() == 'td' ) {\n td = wptbDropHandle.getDOMParentElement();\n td.appendChild( element );\n }\n } else {\n let innerElement = wptbDropHandle.getDOMParentElement();\n td = innerElement.parentNode;\n \n if( wptbDropHandle.dataset.text == 'Abowe Element' ) {\n td.insertBefore( element, innerElement );\n } else if( wptbDropHandle.dataset.text == 'Below Element' ) {\n let innerElementNext = innerElement.nextSibling;\n td.insertBefore( element, innerElementNext );\n }\n }\n \n let thisRow = td.parentNode\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n \n wptbDropHandle.style.display = 'none';\n wptbDropBorderMarker.style.display = 'none';\n \n WPTB_innerElementSet(element);\n }\n let wptbContainer = document.querySelector( '.wptb-container' );\n wptbContainer.onscroll = function() {\n wptbDropHandle.style.display = 'none';\n wptbDropBorderMarker.style.display = 'none';\n }\n } else {\n wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' )[0];\n wptbDropBorderMarker = document.getElementsByClassName( 'wptb-drop-border-marker' )[0];\n }\n if( thisElem && thisElem.nodeName.toLowerCase() == 'td' && \n thisElem.getElementsByClassName( 'wptb-ph-element' ).length != 0 ) {\n return;\n }\n \n let thisRow;\n if ( thisElem.localName == 'td' ) {\n thisRow = thisElem.parentNode;\n } else if ( thisElem.localName == 'div' && thisElem.classList.contains( 'wptb-ph-element' ) ) {\n thisRow = thisElem.parentNode.parentNode;\n }\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let indics = e.dataTransfer.types;\n let notDragEnter = false;\n for ( let i = 0; i < indics.length; i++ ) {\n let infArr = indics[i].match( /wptbelindic-([a-z]+)/i );\n if ( infArr && infArr[1] != 'text' ) {\n notDragEnter = true;\n break;\n }\n }\n if( notDragEnter ) {\n return;\n }\n }\n \n wptbDropHandle.style.width = thisElem.offsetWidth + 'px';\n let height = thisElem.offsetHeight,\n coordinatesElement = thisElem.getBoundingClientRect(),\n left = Number( coordinatesElement.left ),\n top;\n wptbDropHandle.style.left = left + 'px';\n \n if( e.dataTransfer.types.indexOf( 'wptb-moving-mode' ) != -1 ) {\n let elementDrag = document.getElementsByClassName( 'wptb-moving-mode' )[0];\n if( thisElem == elementDrag ) {\n wptbDropHandle.classList.add('wptb-moving-into-same-elem');\n wptbDropBorderMarker.classList.add('wptb-moving-into-same-elem');\n } else {\n wptbDropHandle.classList.remove('wptb-moving-into-same-elem');\n wptbDropBorderMarker.classList.remove('wptb-moving-into-same-elem');\n }\n }\n \n wptbDropHandle.getDOMParentElement = function() {\n return thisElem;\n }\n \n wptbDropHandle.style.display = 'block';\n wptbDropBorderMarker.style.display = 'block';\n if( thisElem.nodeName.toLowerCase() != 'td' ) {\n let y = e.offsetY==undefined?e.layerY:e.offsetY;\n top = Number( coordinatesElement.top ) - Number( 11 );\n wptbDropHandle.dataset.text = 'Abowe Element';\n if ( y > height/2 ) {\n top = Number( coordinatesElement.top ) + height - 1;\n wptbDropHandle.dataset.text = 'Below Element';\n }\n } else {\n wptbDropHandle.dataset.text = 'Drop Here';\n top = Number( coordinatesElement.top ) + height/2 - 5;\n }\n wptbDropHandle.style.top = top + 'px';\n\n wptbDropBorderMarker.style.top = coordinatesElement.top + 'px';\n wptbDropBorderMarker.style.left = coordinatesElement.left + 'px';\n\n wptbDropBorderMarkerTop = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-top' );\n wptbDropBorderMarkerTop.style.width = ( Number( thisElem.offsetWidth ) - Number( 1 ) ) + 'px';\n\n wptbDropBorderMarkerRight = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-right' );\n wptbDropBorderMarkerRight.style.height = ( Number( coordinatesElement.bottom ) - Number( coordinatesElement.top ) - 1 ) + 'px';\n wptbDropBorderMarkerRight.style.left = wptbDropBorderMarkerTop.style.width;\n\n wptbDropBorderMarkerBottom = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-bottom' );\n wptbDropBorderMarkerBottom.style.width = wptbDropBorderMarkerTop.style.width;\n wptbDropBorderMarkerBottom.style.top = wptbDropBorderMarkerRight.style.height;\n\n wptbDropBorderMarkerLeft = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-left' );\n wptbDropBorderMarkerLeft.style.height = wptbDropBorderMarkerRight.style.height;\n}","var ElementCounters = function () {\n\n\tvar priv = [];\n\tpriv['text'] = 0;\n\tpriv['image'] = 0;\n\tpriv['list'] = 0;\n\tpriv['button'] = 0;\n\n\tthis.increment = function (key) {\n\t\tif (!(key in priv)) {\n\t\t\treturn;\n\t\t}\n\t\tpriv[key]++;\n\t}\n\n\tthis.nextIndex = function (key) {\n\t\tif (!(key in priv)) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn priv[key] + 1;\n\t}\n\n\treturn this;\n\n};","var WPTB_ElementOptions = function ( element, index, kindIndexProt ) {\n\n var node = element.getDOMElement(), elemIdClass;\n\n prop = document.querySelector(\".wptb-\" + element.kind + \"-options-prototype\").cloneNode(true);\n prop.classList.remove(\"wptb-\" + element.kind + \"-options-prototype\"); // remove prototype from the class\n elemIdClass = 'wptb-options-' + element.kind + \"-\" + index;\n\n var properties = prop.getElementsByClassName('wptb-element-property');\n\n for (var i = 0; i < properties.length; i++) {\n properties[i].dataset.element = elemIdClass;\n }\n\n prop.classList.add(elemIdClass);\n document.getElementById(\"element-options-group\").appendChild(prop);\n \n if ( kindIndexProt ) {\n if ( element.kind == 'button' ) {\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt )[0],\n wptbButtonWrapper,\n wptbButtonA,\n wptbButton,\n wptbSize;\n \n if ( affectedEl ) {\n wptbSize = affectedEl.className.match(/wptb-size-([a-z]+)/i);\n }\n \n if( wptbSize && Array.isArray( wptbSize ) ) {\n var b = prop.getElementsByClassName('wptb-btn-size-btn');\n \n for ( var i = 0; i < b.length; i++ ) {\n b[i].classList.remove( 'selected' );\n \n if ( b[i].innerHTML == wptbSize[1] ) {\n b[i].classList.add( 'selected' );\n }\n }\n }\n \n if( affectedEl ) {\n wptbButtonWrapper = affectedEl.getElementsByClassName( 'wptb-button-wrapper' );\n \n wptbButtonA = affectedEl.getElementsByTagName( 'a' );\n \n wptbButton = affectedEl.getElementsByClassName( 'wptb-button' );\n }\n \n if ( wptbButtonWrapper ) {\n let buttonAlignment = wptbButtonWrapper[0].style.justifyContent,\n buttonAlignmentSelect = prop.querySelector( 'select[data-type=\"button-alignment\"]' ),\n selectOption = buttonAlignmentSelect.getElementsByTagName( 'option' ),\n selectOptionVal;\n \n if ( buttonAlignment == 'flex-start' ) {\n selectOptionVal = 'left';\n } else if ( buttonAlignment == 'center' || ! buttonAlignment ) {\n selectOptionVal = 'center';\n } else if ( buttonAlignment == 'flex-end' ) {\n selectOptionVal = 'right';\n }\n \n for ( let i = 0; i < selectOption.length; i++ ) {\n if ( selectOption[i].value == selectOptionVal ) {\n selectOption[i].selected = true;\n }\n }\n }\n \n if ( wptbButtonA.length > 0 ) {\n let buttonHref = wptbButtonA[0].getAttribute( 'href' ), \n buttonLinkTarget = wptbButtonA[0].getAttribute( 'target' ),\n buttonId = wptbButtonA[0].getAttribute( 'id' ),\n \n \n buttonHrefInput = prop.querySelector( 'input[data-type=\"button-link\"]' ),\n buttonLinkTargetInput = prop.querySelector( 'input[data-type=\"button-link-target\"]' ),\n buttonLinkTargetInputId = buttonLinkTargetInput.getAttribute( 'id' ),\n buttonLinkTargetInputLabel = buttonLinkTargetInput.parentNode.getElementsByTagName( 'label' )[0],\n \n buttotIdInput = prop.querySelector( 'input[data-type=\"button-id\"]' );\n\n buttonLinkTargetInputId = buttonLinkTargetInputId + '-' + kindIndexProt.split( '-' )[1];\n buttonLinkTargetInput.setAttribute( 'id', buttonLinkTargetInputId );\n buttonLinkTargetInputLabel.setAttribute( 'for', buttonLinkTargetInputId );\n\n buttonHrefInput.value = buttonHref;\n\n if( buttonLinkTarget && buttonLinkTarget == '_blank') {\n buttonLinkTargetInput.checked = true;\n }\n \n buttotIdInput.value = buttonId;\n }\n \n if( wptbButton ) {\n let buttonTextColor = wptbButton[0].style.color,\n buttonColor = wptbButton[0].style.backgroundColor,\n buttonTextColorInput = prop.querySelector( 'input[data-type=\"button-text-color\"]' ),\n buttonBackgroundColorInput = prop.querySelector( 'input[data-type=\"button-color\"]' );\n \n \n buttonTextColorInput.value = WPTB_Helper.rgbToHex( buttonTextColor );\n \n buttonBackgroundColorInput.value = WPTB_Helper.rgbToHex( buttonColor );\n \n }\n } else if ( element.kind == 'image' ) {\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\n if ( affectedEl.length > 0 ) {\n let elementsA = affectedEl[0].getElementsByTagName( 'a' );\n if ( elementsA.length > 0 ) {\n let a = elementsA[0];\n\n if ( a ) {\n a.onclick = function( e ) {\n e.preventDefault();\n }\n // set select according to the alignment of the image\n let aTextAlign = a.style.textAlign,\n imageAlignmentSelect = prop.querySelector( 'select[data-type=\"image-alignment\"]' ),\n selectOption = imageAlignmentSelect.getElementsByTagName( 'option' );\n\n for ( let i = 0; i < selectOption.length; i++ ) {\n if ( selectOption[i].value == aTextAlign ) {\n selectOption[i].selected = true;\n }\n }\n\n // set text link for input field of setting panel\n let imageLinkHref = a.getAttribute( 'href' ),\n inputImageLink = prop.querySelector( 'input[data-type=\"image-link\"]' );\n if ( imageLinkHref ) {\n inputImageLink.value = imageLinkHref;\n }\n\n // set checkbox for target of link \n let imageLinkTarget = a.getAttribute( 'target' ),\n imageLinkTargetInput = prop.querySelector( 'input[data-type=\"image-link-target\"]' ),\n imageLinkTargetInputId = imageLinkTargetInput.getAttribute( 'id' ),\n imageLinkTargetInputLabel = imageLinkTargetInput.parentNode.getElementsByTagName( 'label' )[0];\n\n imageLinkTargetInputId = imageLinkTargetInputId + '-' + kindIndexProt.split( '-' )[1];\n\n imageLinkTargetInput.setAttribute( 'id', imageLinkTargetInputId );\n imageLinkTargetInputLabel.setAttribute( 'for', imageLinkTargetInputId );\n\n if ( imageLinkTarget && imageLinkTarget == '_blank' ) {\n imageLinkTargetInput.checked = true;\n }\n\n let img = a.getElementsByTagName( 'img' );\n if ( img.length > 0 ) {\n // set value for input fields of image size\n let imgWidth = img[0].style.width;\n if ( imgWidth ) {\n let imageWidthInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"image-size\"]' ),\n imageWidthInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"image-size\"]' );\n\n imageWidthInputRange.value = parseInt( imgWidth );\n imageWidthInputNumber.value = parseInt( imgWidth );\n }\n\n // set value for input field of alternative text image\n let imgAlternativeText = img[0].getAttribute('alt'),\n imageAlternativeTextInput = prop.querySelector( 'input[type=\"text\"][data-type=\"alternative-text\"]' );\n\n imageAlternativeTextInput.value = imgAlternativeText;\n }\n }\n }\n }\n } else if ( element.kind == 'text' ) {\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\n if ( affectedEl.length > 0 ) {\n let elementFontSize = affectedEl[0].style.fontSize,\n elementTextColor = affectedEl[0].style.color;\n let textFontSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"font-size\"]' ),\n textFontSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"font-size\"]' ),\n textColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"color\"]' );\n\n textFontSizeInputRange.value = parseInt( elementFontSize );\n textFontSizeInputNumber.value = parseInt( elementFontSize );\n textColorInput.value = WPTB_Helper.rgbToHex( elementTextColor );\n }\n } else if ( element.kind == 'list' ) {\n let elementList = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\n if ( elementList.length > 0 ) {\n let elementListColor = elementList[0].querySelector( 'p' ).style.color;\n let listColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"list-text-color\"]' );\n listColorInput.value = WPTB_Helper.rgbToHex( elementListColor );\n \n let elementListItem = elementList[0].querySelectorAll( 'li' );\n if ( elementListItem.length > 0 ) {\n let listItemP = elementListItem[0].querySelector( 'p' );\n let listItemPClasses = listItemP.classList;\n //listItemPClasses = [...listItemPClasses];\n if ( listItemPClasses.length > 0 ) {\n let elementListClassSelect = prop.querySelector( 'select[data-type=\"list-class\"]' );\n if ( elementListClassSelect ) {\n elementListClassSelect.value = 'unordered';\n \n let listIconSelectLabel = elementListClassSelect.parentNode.nextSibling;\n for ( let i = 0; i < 10; i++ ) {\n if ( listIconSelectLabel.nodeType == '1' ) {\n break;\n } else {\n listIconSelectLabel = listIconSelectLabel.nextSibling;\n }\n }\n if ( listIconSelectLabel ) {\n let listIconSelectLabelId = listIconSelectLabel.getAttribute( 'id' );\n listIconSelectLabel.setAttribute( 'id', listIconSelectLabelId + '-' + kindIndexProt );\n listIconSelectLabel.style.display = 'flex';\n }\n \n let elementListStyleTypeSelect = prop.querySelector( 'select[data-type=\"list-style-type\"]' );\n if ( elementListStyleTypeSelect ) {\n elementListStyleTypeSelect.parentNode.style.display = 'flex';\n \n if( listItemPClasses.contains( 'wptb-list-style-type-disc' ) ) {\n elementListStyleTypeSelect.value = 'disc';\n } else if( listItemPClasses.contains( 'wptb-list-style-type-circle' ) ) {\n elementListStyleTypeSelect.value = 'circle';\n } else if( listItemPClasses.contains( 'wptb-list-style-type-square' ) ) {\n elementListStyleTypeSelect.value = 'square';\n } else if ( listItemPClasses.contains( 'wptb-list-style-type-none' ) ) {\n elementListStyleTypeSelect.value = 'none';\n }\n }\n }\n }\n }\n \n let elementListItemContent = elementList[0].getElementsByClassName( 'wptb-list-item-content' );\n if ( elementListItemContent.length > 0 ) {\n let listItemPTextAlignArr = [];\n for ( let i = 0; i < elementListItemContent.length; i++ ) {\n let p = elementListItemContent[i].querySelector( 'p' );\n if ( p ) {\n if ( p.style.textAlign ) {\n listItemPTextAlignArr.push( p.style.textAlign );\n } else {\n listItemPTextAlignArr.push( 'left' );\n }\n }\n \n }\n \n let listItemPTextAlignLeftCount = 0,\n listItemPTextAlignCenterCount = 0,\n listItemPTextAlignRightCount = 0;\n \n if ( listItemPTextAlignArr.length > 0 ) {\n for ( let i = 0; i < listItemPTextAlignArr.length; i++ ) {\n if ( listItemPTextAlignArr[i] ) {\n if ( listItemPTextAlignArr[i] == 'left' ) {\n listItemPTextAlignLeftCount++;\n } else if ( listItemPTextAlignArr[i] == 'center' ) {\n listItemPTextAlignCenterCount++;\n } else if ( listItemPTextAlignArr[i] == 'right' ) {\n listItemPTextAlignRightCount++;\n }\n }\n }\n }\n \n let elementListAlignmentSelect = prop.querySelector( 'select[data-type=\"list-alignment\"]' ),\n maxListItemTAlLeftC = Math.max( listItemPTextAlignLeftCount, listItemPTextAlignCenterCount, listItemPTextAlignRightCount );\n \n if ( listItemPTextAlignLeftCount == maxListItemTAlLeftC ) {\n elementListAlignmentSelect.value = 'left';\n } else if ( listItemPTextAlignCenterCount == maxListItemTAlLeftC ) {\n elementListAlignmentSelect.value = 'center';\n } else if ( listItemPTextAlignRightCount == maxListItemTAlLeftC ) {\n elementListAlignmentSelect.value = 'right';\n }\n }\n } \n }\n }\n\n node.onclick = function () {\n var infArr = this.className.match(/wptb-element-((.+-)\\d+)/i),\n optionsClass = '.wptb-' + infArr[2] + 'options' +\n '.wptb-options-' + infArr[1];\n\n document.getElementsByClassName('wptb-elements-container')[0].style.display = 'none';\n document.getElementsByClassName('wptb-settings-section')[0].style.display = 'none';\n document.getElementById(\"element-options-group\").style.display = 'block';\n\n var children = document.getElementById(\"element-options-group\").childNodes;\n for (var i = 0; i < children.length; i++) {\n if (children[i].style)\n children[i].style.display = 'none';\n }\n\n document.querySelector(optionsClass).style.display = 'block';\n\n //var listStyleType, textAlign;\n\n// switch (element.kind) {\n\n// case 'text':\n// jQuery(prop).find('[data-type=color]').wpColorPicker({ defaultColor: node.style.color });\n// prop.querySelector('[type=number][data-type=font-size]').value\n// = prop.querySelector('[type=range][data-type=font-size]').value\n// = node.style.fontSize.substring(0, node.style.fontSize.length - 2);\n// break;\n// case 'list':\n// textAlign = node.querySelector('li p').style.textAlign;\n// listStyleType = node.querySelector('li').style.listStyleType;\n// if ( prop.querySelector( 'select[data-type=list-class]' ) ) {\n// console.log(textAlign);\n// console.log(listStyleType);\n// console.log(listStyleType);\n// console.log(prop);\n// prop.querySelector('select[data-type=list-class]').selectedIndex = ( listStyleType == 'decimal' ? 0 : 1 );\n// }\n// if ( prop.querySelector('select[data-type=list-style-type]') ) {\n// prop.querySelector('select[data-type=list-style-type]').selectedIndex = (listStyleType == 'circle' ? 0 : (listStyleType == 'square' ? 1 : 2));\n// }\n// if ( prop.querySelector('select[data-type=list-alignment]') ) {\n// prop.querySelector('select[data-type=list-alignment]').selectedIndex = (textAlign == 'left' ? 0 : (textAlign == 'center' ? 1 : 2));\n// }\n// break;\n// case 'image':\n// break;\n// case 'button':\n// jQuery(prop).find('[data-type=button-color]').wpColorPicker({ defaultColor: node.style.backgroundColor });\n// break;\n//\n// }\n };\n\n if (element.kind == 'button') {\n //We must add this special kind of property, since it is triggered with click event\n var buttons = prop.getElementsByClassName('wptb-btn-size-btn');\n\n for (var i = 0; i < buttons.length; i++) {\n buttons[i].onclick = function () {\n var size = this.innerHTML,\n n_Class = this.dataset.element,\n infArr = n_Class.match(/wptb-options-(.+)-(\\d+)/i),\n type = infArr[1],\n num = infArr[2],\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];\n affectedEl.classList.remove('wptb-size-S');\n affectedEl.classList.remove('wptb-size-M');\n affectedEl.classList.remove('wptb-size-L');\n affectedEl.classList.remove('wptb-size-XL');\n affectedEl.classList.add('wptb-size-' + size);\n var b = this.parentNode.getElementsByClassName('wptb-btn-size-btn');\n for (var i = 0; i < b.length; i++) {\n b[i].classList.remove('selected');\n }\n this.classList.add('selected');\n }\n }\n }\n\n var optionControls = prop.getElementsByClassName('wptb-element-property');\n\n for (var i = 0; i < optionControls.length; i++) {\n if (optionControls[i].classList.contains('wptb-color-picker')) {\n jQuery(optionControls[i]).wpColorPicker({\n change: function (event, ui) {\n var parent = event.target, classe, type, ps, number;\n classe = parent.dataset.element.match(/wptb-options-(.+)-(\\d+)/i);\n type = classe[1];\n number = classe[2];\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + number)[0];\n if ( type == 'button' ) {\n if (parent.dataset.type == 'button-text-color') {\n affectedEl.getElementsByClassName('wptb-button')[0].style.color = ui.color.toString();\n } else {\n affectedEl.getElementsByClassName('wptb-button')[0].style.backgroundColor = ui.color.toString();\n }\n } else if( type == 'list' ) {\n let ps = affectedEl.querySelectorAll( 'p' );\n if( ps.length > 0 ) {\n for ( let i = 0; i < ps.length; i++ ) {\n ps[i].style.color = ui.color.toString();\n }\n }\n } else {\n affectedEl.style.color = ui.color.toString();\n }\n }\n });\n }\n\n if (optionControls[i].dataset.type === 'font-size') {\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-text-font-size-slider')[0];\n slider.oninput = function () {\n this.parentNode.parentNode.getElementsByClassName('wptb-text-font-size-number')[0].value = this.value;\n this.parentNode.parentNode.getElementsByClassName('wptb-text-font-size-number')[0].onchange();\n }\n }\n\n if (optionControls[i].dataset.type === 'image-size') {\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0];\n slider.oninput = function () {\n this.parentNode.parentNode.getElementsByClassName('wptb-image-width-number')[0].value = this.value;\n this.parentNode.parentNode.getElementsByClassName('wptb-image-width-number')[0].onchange();\n }\n }\n\n optionControls[i].onchange = function (event) {\n\n var n_Class = this.dataset.element,\n infArr = n_Class.match(/wptb-options-(.+)-(\\d+)/i),\n type = infArr[1],\n num = infArr[2],\n affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0],\n val = this.value;\n\n switch (this.dataset.type) {\n case 'src':\n var img = affectedEl.getElementsByTagName(\"img\")[0];\n img.src = this.value;\n break;\n case 'alternative-text':\n var img = affectedEl.getElementsByTagName('img')[0];\n img.alt = this.value;\n break;\n case 'image-link':\n affectedEl.getElementsByTagName('a')[0].href = WPTB_Helper.linkHttpCheckChange( this.value );\n break;\n case 'image-link-target':\n if (this.checked == true) {\n affectedEl.getElementsByTagName('a')[0].target = '_blank';\n } else {\n affectedEl.getElementsByTagName('a')[0].target = '_self';\n }\n break;\n case 'image-link-nofollow':\n if (this.checked == true) {\n affectedEl.getElementsByTagName('a')[0].rel = 'nofollow';\n } else {\n affectedEl.getElementsByTagName('a')[0].removeAttribute('rel');\n }\n break;\n case 'image-size':\n affectedEl.getElementsByTagName('a')[0].style.width = this.value + '%';\n affectedEl.getElementsByTagName('a')[0].style.height = 'auto';\n this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;\n break;\n case 'image-alignment':\n affectedEl.getElementsByClassName( 'wptb-image-wrapper' )[0].style.textAlign = this.value;\n break;\n case 'font-size':\n affectedEl.style.fontSize = val + 'px';\n break;\n case 'button-alignment':\n var jc = '';\n if (this.value == 'left') {\n jc = 'start';\n } else if (this.value == 'right') {\n jc = 'flex-end';\n } else {\n jc = 'center';\n }\n affectedEl.getElementsByClassName('wptb-button-wrapper')[0].style.justifyContent = jc;\n break;\n case 'button-link':\n if ( this.value ) {\n affectedEl.getElementsByTagName( 'a' )[0].href = WPTB_Helper.linkHttpCheckChange( this.value );\n } else {\n affectedEl.getElementsByTagName( 'a' )[0].removeAttribute( 'href' );\n }\n break;\n case 'button-link-target':\n if (this.checked == true) {\n affectedEl.getElementsByTagName('a')[0].target = '_blank';\n } else {\n affectedEl.getElementsByTagName('a')[0].target = '_self';\n }\n break;\n case 'button-link-nofollow':\n if (this.checked == true) {\n affectedEl.getElementsByTagName('a')[0].rel = 'nofollow';\n } else {\n affectedEl.getElementsByTagName('a')[0].removeAttribute( 'rel' );\n }\n break;\n case 'button-id':\n if( this.value ) {\n affectedEl.getElementsByTagName( 'a' )[0].id = this.value;\n } else {\n affectedEl.getElementsByTagName( 'a' )[0].removeAttribute( 'id' );\n }\n case 'button-color':\n break;\n case 'list-alignment':\n let listItems = affectedEl.querySelectorAll('li');\n for (var i = 0; i < listItems.length; i++) {\n let p = listItems[i].querySelector( 'p' );\n if ( p ) {\n p.style.textAlign = this.value;\n }\n }\n break;\n case 'list-class':\n let parentNode = event.target\n .parentNode\n .parentNode\n .querySelector('[data-type=list-style-type]')\n .parentNode,\n parentNodeSettingItem = parentNode.parentNode;\n if (val == 'unordered') {\n parentNode.style.display = 'flex';\n \n parentNodeSettingItem.querySelector( '.wptb-list-icon-select-label' ).style.display = 'flex';\n let listItem = affectedEl.querySelectorAll('li');\n for (var i = 0; i < listItem.length; i++) {\n let p = listItem[i].querySelector( 'p' );\n p.removeAttribute ( 'class' );\n p.classList.add( 'wptb-list-style-type-disc' );\n }\n parentNodeSettingItem.querySelector('[data-type=list-style-type]').value = 'disc';\n } else {\n parentNode.style.display = 'none';\n parentNodeSettingItem.querySelector( '.wptb-list-icon-select-label' ).style.display = 'none';\n var listItem = affectedEl.querySelectorAll('li');\n for (var i = 0; i < listItem.length; i++) {\n let p = listItem[i].querySelector( 'p' );\n p.removeAttribute ( 'class' );\n }\n }\n break;\n case 'list-style-type':\n var listItem = affectedEl.querySelectorAll('li');\n for (var i = 0; i < listItem.length; i++) {\n let p = listItem[i].querySelector( 'p' );\n p.removeAttribute ( 'class' );\n p.classList.add( 'wptb-list-style-type-' + val.toLowerCase() );\n }\n break;\n }\n }\n }\n};","var WPTB_Helper = {\n hexToRgb: function( hex ) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec( hex );\n return result ? 'rgb(' + parseInt( result[1], 16 ) + ',' + parseInt( result[2], 16 ) + ',' + parseInt( result[3], 16 ) + ')' : null;\n },\n rgbToHex: function ( rgb ) {\n var rgb = rgb.match( /^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i );\n\n return ( rgb && rgb.length === 4 ) ? \"#\" +\n ( \"0\" + parseInt( rgb[1],10 ).toString( 16 )).slice( -2 ) +\n ( \"0\" + parseInt( rgb[2],10 ).toString( 16 )).slice( -2 ) +\n ( \"0\" + parseInt( rgb[3],10 ).toString( 16 )).slice( -2 ) : '';\n },\n getDragImageCustom: function ( type ) {\n let hostName = location.protocol + '//' + location.hostname;\n let img = document.createElement( 'img' );\n img.src = hostName + '/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/' + type + '.png';\n return img;\n },\n dragImagesArr: function() {\n return {\n text: WPTB_Helper.getDragImageCustom( 'text' ),\n image: WPTB_Helper.getDragImageCustom( 'image' ),\n button: WPTB_Helper.getDragImageCustom( 'button' ),\n list: WPTB_Helper.getDragImageCustom( 'list' )\n };\n },\n listItemsRecalculateIndex: function( ulElem ) {\n let par = ulElem.querySelectorAll( 'p' );\n if ( par.length > 0 ) {\n for ( let i = 0; i < par.length; i++ ) {\n par[i].dataset.listStyleTypeIndex = Number( i ) + 1 + '.';\n }\n }\n },\n listItemsTinyMceInit: function( listItem ) {\n tinyMCE.init({\n target: listItem,\n inline: true,\n plugins: \"link, paste\",\n dialog_type: \"modal\",\n theme: 'modern',\n menubar: false,\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\n paste_as_text: true,\n toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',\n setup: function(ed) {\n ed.on('keydown', function(e) {\n let article = e.target.parentNode;\n if ( e.keyCode == 13 ) {\n e.preventDefault();\n let text = e.target.innerHTML;\n let duplicate = new WPTB_ListItem( text, article, true );\n \n article.parentNode.insertBefore( duplicate.getDOMElement(), article );\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\n e.target.querySelector( 'p' ).innerText = 'New List Item';\n //tinyMCE.execCommand('mceInsertContent', false, 'New List Item');\n WPTB_Helper.listItemsRecalculateIndex( article.parentNode );\n \n } else if ( e.keyCode == '8' || e.keyCode == '46' ) {\n let p = e.target.querySelector( 'p' );\n let pText = p.innerHTML.replace(/<[^>]+>/g, '');\n pText = pText.replace( /\\s+/g, ' ' ).trim();\n pText = pText.replace( /&nbsp;/g, '').trim();\n \n if( pText == '' ) {\n e.preventDefault();\n e.target.querySelector( 'p' ).innerText = '\\n';\n } else {\n let selectedText = WPTB_Helper.getSelectionText();\n selectedText = selectedText.replace( /\\s+/g, ' ' ).trim();\n selectedText = selectedText.replace( /&nbsp;/g, '' ).trim();\n if( selectedText == pText ) {\n e.preventDefault();\n e.target.querySelector( 'p' ).innerText = '\\n';\n }\n }\n }\n });\n \n ed.on( 'keyup', function( e ) {\n \n });\n },\n init_instance_callback: function (editor) {\n window.currentEditor = editor;\n editor.on('focus', function (e) {\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\n if (window.currentEditor &&\n document.getElementById('wptb_builder').scrollTop >= 55 &&\n window.currentEditor.bodyElement.style.display != 'none') {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\n } else {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\n }\n });\n }\n });\n },\n buttonsTinyMceInit: function( target ) {\n tinyMCE.init({\n target: target,\n inline: true,\n plugins: \"link\",\n dialog_type: \"modal\",\n theme: 'modern',\n menubar: false,\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\n toolbar: 'bold italic strikethrough',\n setup : function(ed) {\n ed.on('keydown', function(e) {\n if (e.keyCode == 13) {\n e.preventDefault();\n }\n });\n },\n init_instance_callback: function (editor) {\n window.currentEditor = editor;\n editor.on('focus', function (e) {\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\n if (window.currentEditor &&\n document.getElementById('wptb_builder').scrollTop >= 55 &&\n window.currentEditor.bodyElement.style.display != 'none') {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\n } else {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\n }\n });\n }\n });\n },\n linkHttpCheckChange: function( link ) {\n if ( link ) {\n if ( link.indexOf( 'http://' ) == -1 && link.indexOf( 'https://' ) == -1 ) {\n let linkArr = link.split( '/' ),\n linkClean;\n if ( Array.isArray( linkArr ) && linkArr.length > 0 ) {\n linkClean = linkArr[linkArr.length - 1];\n }\n return document.location.protocol + '//' + linkClean;\n } else { \n return link;\n }\n } else {\n return '';\n }\n },\n dataTitleColumnSet: function( table ) {\n let rows = table.rows,\n rowHead = rows[0];\n let computedStyleRowHead = getComputedStyle(rowHead);\n \n let rowHeadChildren = rowHead.children;\n let contentsForHeader = {};\n for( let i = 0; i < rowHeadChildren.length; i++ ) {\n let tdElements = rowHeadChildren[i].children;\n for( let j = 0; j < tdElements.length; j++ ) {\n let element = tdElements[j];\n if( element.classList.contains( 'wptb-ph-element' ) ) {\n let infArr = element.className.match( /wptb-element-(.+)-(\\d+)/i );\n if( infArr[1] == 'text' ) {\n let p = element.querySelector( 'p' ),\n textContent = p.textContent,\n textAlign = p.style.textAlign;\n contentsForHeader[rowHeadChildren[i].dataset.xIndex] = [textContent, element.style.fontSize, \n element.style.color, computedStyleRowHead.backgroundColor, textAlign];\n break;\n }\n }\n }\n if( ! contentsForHeader[rowHeadChildren[i].dataset.xIndex] ) {\n contentsForHeader[rowHeadChildren[i].dataset.xIndex] = ['', '', \n '', computedStyleRowHead.backgroundColor, ''];\n }\n }\n for ( let i = 1; i < rows.length; i++ ) {\n let thisRow = rows[i],\n thisRowChildren = thisRow.children;\n for( let j = 0; j < thisRowChildren.length; j++ ) {\n if ( contentsForHeader[thisRowChildren[j].dataset.xIndex] ) {\n thisRowChildren[j].dataset.wptbTitleColumn = contentsForHeader[thisRowChildren[j].dataset.xIndex][0];\n thisRowChildren[j].dataset.wptbTitleColumnFontSize = contentsForHeader[thisRowChildren[j].dataset.xIndex][1];\n thisRowChildren[j].dataset.wptbTitleColumnColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][2];\n thisRowChildren[j].dataset.wptbTitleBackgroundColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][3];\n thisRowChildren[j].dataset.wptbTitleAlign = contentsForHeader[thisRowChildren[j].dataset.xIndex][4];\n } else {\n thisRowChildren[j].dataset.wptbTitleColumn = '';\n thisRowChildren[j].dataset.wptbTitleColumnFontSize = '';\n thisRowChildren[j].dataset.wptbTitleColumnColor = '';\n thisRowChildren[j].dataset.wptbTitleBackgroundColor = '';\n thisRowChildren[j].dataset.wptbTitleAlign = '';\n }\n }\n }\n },\n findAncestor: function(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls));\n return el;\n },\n getSelectionText: function() {\n var txt = '';\n if (txt = window.getSelection) {\n txt = window.getSelection().toString();\n } else {\n txt = document.selection.createRange().text;\n }\n return txt;\n },\n settingsPanelClear: function() {\n document.getElementById( 'wptb-top-row-as-header' ).checked = false;\n document.getElementById( 'wptb-table-border-slider' ).value = 0;\n document.getElementById( 'wptb-table-border-number' ).value = 0;\n document.getElementById( 'wptb-inner-border-check' ).checked = false;\n document.getElementById( 'wptb-apply-inner-border' ).classList.remove( 'visible' );\n document.getElementById( 'wptb-table-inner-border-slider' ).value = 1;\n document.getElementById( 'wptb-table-inner-border-number' ).value = 1;\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-border-color' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-header-bg' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-even-row-bg' );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-odd-row-bg' );\n \n document.getElementById( 'wptb-table-cell-slider' ).value = 15;\n document.getElementById( 'wptb-table-cell-number' ).value = 15;\n },\n wpColorPickerClear: function( inputId ) {\n let input = document.getElementById( inputId );\n let wpPickerContainer = WPTB_Helper.findAncestor( input, 'wp-picker-container' );\n let parent = wpPickerContainer.parentNode;\n parent.removeChild( wpPickerContainer );\n let newInput = document.createElement( 'input' );\n newInput.setAttribute( 'id', inputId );\n newInput.value = \"\";\n parent.appendChild( newInput );\n },\n detectMode: function() {\n var url = window.location.href,\n regex = new RegExp('[?&]table(=([^&#]*)|&|#|$)'),\n results = regex.exec(url);\n if (!results) return false;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n },\n getColumnWidth: function( table, cell ) {\n let xIndex = cell.dataset.xIndex;\n let xIndexes = table.querySelectorAll( '[data-x-index=\"' + xIndex + '\"]' );\n let cellWidth = cell.getCellDimensions().width;\n for( let i = 0; i < xIndexes.length; i++ ) {\n if( cellWidth > xIndexes[i].getCellDimensions().width ) {\n cellWidth = xIndexes[i].getCellDimensions().width;\n }\n }\n return cellWidth;\n },\n getRowHeight: function( table, cell ) {\n let yIndex = cell.dataset.yIndex;\n let yIndexes = table.querySelectorAll( '[data-y-index=\"' + yIndex + '\"]' );\n let cellHeight = cell.getCellDimensions().height;\n for( let i = 0; i < yIndexes.length; i++ ) {\n if( cellHeight > yIndexes[i].getCellDimensions().height ) {\n cellHeight = yIndexes[i].getCellDimensions().height;\n }\n }\n return cellHeight;\n }\n}\n","var WPTB_Image = function ( src, DOMElementProt ) {\n let DOMElement,\n elImage,\n kindIndexProt = undefined,\n copy = false;\n if ( DOMElementProt == undefined ) {\n DOMElement = document.createElement( 'div' );\n elImage = document.createElement( 'div' );\n\t let anchor = document.createElement( 'a' ),\n\t img = document.createElement( 'img' );\n anchor.style.display = 'inline-block';\n anchor.appendChild( img );\n DOMElement.classList.add( 'wptb-image-container' );\n elImage.classList.add( 'wptb-image-wrapper' );\n elImage.appendChild( anchor );\n DOMElement.appendChild( elImage );\n \n anchor.onclick = function( e ) {\n e.preventDefault();\n }\n \n file_frame = wp.media.frames.file_frame = wp.media({\n\t\ttitle: 'Select a image to upload',\n\t\tbutton: {\n\t\t\ttext: 'Use this image'\n\t\t},\n\t\tmultiple: false\n });\n // When an image is selected, run a callback.\n file_frame.on('select', function () {\n attachment = file_frame.state().get('selection').first().toJSON();\n img.src = attachment.url;\n });\n // Finally, open the modal\n if (src == undefined) {\n file_frame.open();\n } else {\n img.src = src;\n }\n } else {\n DOMElement = DOMElementProt.cloneNode( true );\n \n DOMElement.getElementsByTagName( 'a' )[0].onclick = function(e) {\n e.preventDefault();\n };\n \n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\n kindIndexProt = wptbElementMutch[1];\n copy = true;\n };\n }\n \n this.kind = 'image';\n this.getDOMElement = function () {\n return DOMElement;\n };\n\tapplyGenericItemSettings( this, kindIndexProt, copy );\n\n\treturn this;\n};","var WPTB_Initializer = function () {\n\n const MIN_COLUMNS = 1,\n MIN_ROWS = 1,\n MAX_COLUMNS = 10,\n MAX_ROWS = 10;\n\n var tableGenerator = document.body;\n columnsDecrementButton = tableGenerator.getElementsByClassName('wptb-input-number-decrement')[0],\n columnsIncrementButton = tableGenerator.getElementsByClassName('wptb-input-number-increment')[0],\n rowsDecrementButton = tableGenerator.getElementsByClassName('wptb-input-number-decrement')[1],\n rowsIncrementButton = tableGenerator.getElementsByClassName('wptb-input-number-increment')[1],\n columnsInput = document.getElementById('wptb-columns-number'),\n rowsInput = document.getElementById('wptb-rows-number');\n \n columnsDecrementButton.onclick = function () {\n if (columnsInput.value > MIN_COLUMNS) {\n columnsInput.value--;\n }\n };\n\n columnsIncrementButton.onclick = function () {\n if (columnsInput.value < MAX_COLUMNS) {\n columnsInput.value++;\n }\n };\n\n rowsDecrementButton.onclick = function () {\n if (rowsInput.value > MIN_ROWS) {\n rowsInput.value--;\n }\n };\n\n rowsIncrementButton.onclick = function () {\n if (rowsInput.value < MAX_ROWS) {\n rowsInput.value++;\n }\n };\n\n document.getElementById('wptb-generate-table').onclick = function () {\n var columns = document.getElementById('wptb-columns-number').value,\n rows = document.getElementById('wptb-rows-number').value;\n\n WPTB_Table(columns, rows);\n }\n \n// if( document.getElementsByClassName( 'wptb-preview-table' ).length == 0 ) {\n// WPTB_LeftPanel();\n// }\n\n};\n","var WPTB_LeftPanel = function () {\n\n var table = document.getElementsByClassName('wptb-preview-table')[0],\n wptbElementButtons = document.getElementsByClassName('wptb-element');\n \n function wptbTdBgColorSavedSet( inputId, trNumber ) {\n if ( trNumber > 3 ) return;\n if( table ) {\n let tableRows = table.getElementsByTagName('tr');\n if ( tableRows.length > trNumber ) {\n let trBackgroundColor = tableRows[trNumber].style.backgroundColor;\n var wptbEvenRowBg = document.getElementById(inputId);\n if ( wptbEvenRowBg && trBackgroundColor ) {\n wptbEvenRowBg.value = WPTB_Helper.rgbToHex( trBackgroundColor );\n }\n }\n }\n \n }\n \n wptbTdBgColorSavedSet( 'wptb-even-row-bg', 1 );\n jQuery('#wptb-even-row-bg').wpColorPicker({\n change: function ( event, ui ) {\n var tableRows = table.getElementsByTagName('tr');\n for ( let i = 1; i < tableRows.length; i += 2 ) {\n tableRows[i].style.backgroundColor = ui.color.toString();\n }\n },\n clear: function(){\n var tableRows = table.getElementsByTagName('tr');\n for ( let i = 1; i < tableRows.length; i += 2 ) {\n tableRows[i].style.backgroundColor = '';\n let tds = tableRows[i].getElementsByTagName('td');\n for ( let j = 0; j < tds.length; j++ ) {\n tds[j].style.backgroundColor = '';\n }\n }\n },\n\n });\n \n wptbTdBgColorSavedSet( 'wptb-odd-row-bg', 2 );\n jQuery('#wptb-odd-row-bg').wpColorPicker({\n change: function ( event, ui ) {\n var tableRows = table.getElementsByTagName('tr');\n for ( let i = 2; i < tableRows.length; i += 2 ) {\n tableRows[i].style.backgroundColor = ui.color.toString();\n }\n },\n clear: function(){\n var tableRows = table.getElementsByTagName('tr');\n for ( let i = 2; i < tableRows.length; i += 2 ) {\n tableRows[i].style.backgroundColor = '';\n let tds = tableRows[i].getElementsByTagName( 'td' );\n for ( var j = 0; j < tds.length; j++ ) {\n tds[j].style.backgroundColor = '';\n }\n }\n },\n });\n \n wptbTdBgColorSavedSet( 'wptb-table-header-bg', 0 );\n jQuery('#wptb-table-header-bg').wpColorPicker({\n change: function (event, ui) {\n var tableHeader = table.getElementsByTagName('tr')[0];\n tableHeader.style.backgroundColor = ui.color.toString();\n },\n clear: function(){\n var tableHeader = table.getElementsByTagName('tr')[0];\n tableHeader.style.backgroundColor = '';\n let tds = tableHeader.getElementsByTagName('td');\n for (var j = 0; j < tds.length; j++) {\n tds[j].style.backgroundColor = '';\n }\n },\n });\n \n function tableTopRowAsHeadSavedSet( table ) {\n let wptbTopRowAsHeader = document.getElementById( 'wptb-top-row-as-header' );\n \n if( table && table.classList.contains( 'wptb-table-preview-head' ) ) {\n wptbTopRowAsHeader.checked = true;\n } else {\n wptbTopRowAsHeader.checked = false;\n }\n }\n tableTopRowAsHeadSavedSet( table );\n \n function tableBorderColorWidthSavedSet() {\n let table = document.getElementsByClassName('wptb-preview-table');\n if ( table.length > 0 ) {\n let tableBorderColor = table[0].style.borderColor;\n if ( tableBorderColor ) {\n let tableBorderColorInput = document.getElementById( 'wptb-table-border-color' );\n if ( tableBorderColorInput ) {\n tableBorderColorInput.value = WPTB_Helper.rgbToHex( tableBorderColor );\n }\n }\n \n let tableBorderWidth = table[0].style.borderWidth;\n if ( tableBorderWidth ) {\n let wptbTableBorderWidthSlider = document.getElementById('wptb-table-border-slider'),\n wptbTableBorderWidthNumber = document.getElementById('wptb-table-border-number');\n \n if ( wptbTableBorderWidthSlider ) {\n wptbTableBorderWidthSlider.value = parseInt( tableBorderWidth );\n }\n if ( wptbTableBorderWidthNumber ) {\n wptbTableBorderWidthNumber.value = parseInt( tableBorderWidth );\n }\n }\n \n \n let tableTd = table[0].querySelector( 'td' );\n let applyInnerBorder = tableTd.style.borderWidth;\n if ( applyInnerBorder ) {\n let innerBorderCheckInput = document.getElementById( 'wptb-inner-border-check' );\n let wptbApplyInnerBorder = document.getElementById( 'wptb-apply-inner-border' );\n if ( applyInnerBorder && parseInt( applyInnerBorder ) > 0 ) {\n if ( innerBorderCheckInput ) {\n innerBorderCheckInput.checked = true;\n \n if ( wptbApplyInnerBorder ) {\n wptbApplyInnerBorder.classList.add( 'visible' );\n let wptbTableInnerBorderSlider = document.getElementById( 'wptb-table-inner-border-slider' );\n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\n wptbTableInnerBorderSlider.value = parseInt( applyInnerBorder );\n wptbTableInnerBorderNumber.value = parseInt( applyInnerBorder );\n }\n }\n } else {\n innerBorderCheckInput.checked = false;\n }\n }\n \n if ( ( tableBorderWidth && parseInt( tableBorderWidth ) > 0 ) || ( applyInnerBorder && parseInt( applyInnerBorder ) > 0 ) ) {\n document.getElementById( 'wptb-table-border-color-set-area' ).style.display = '';\n }\n }\n }\n \n tableBorderColorWidthSavedSet();\n\n jQuery('#wptb-table-border-color').wpColorPicker({\n change: function (event, ui) {\n var tableCells = table.getElementsByTagName('td');\n table.style.border = document.querySelector('#wptb-table-border-number').value + 'px solid ' + ui.color.toString();\n\n for (var i = 0; i < tableCells.length; i++) {\n let tableInnerborderNumber = document.querySelector('#wptb-table-inner-border-number').value;\n if ( document.getElementById('wptb-inner-border-check').checked ) {\n tableCells[i].style.border = ( tableInnerborderNumber != 0 ? tableInnerborderNumber : 1 ) + 'px solid ' + ui.color.toString();\n }\n }\n },\n clear: function() {\n var tableCells = table.getElementsByTagName('td');\n table.style.borderColor = '';\n\n for (var i = 0; i < tableCells.length; i++) {\n tableCells[i].style.borderColor = '';\n }\n }\n });\n\n function addInnerBorderSize(value) {\n var tableCells = table.getElementsByTagName('td');\n for (var i = 0; i < tableCells.length; i++) {\n tableCells[i].style.borderWidth = document.querySelector('#wptb-table-inner-border-number').value + 'px';\n tableCells[i].style.borderStyle = 'solid';\n }\n }\n\n function addCellPadding(value) {\n var tableCells = table.getElementsByTagName('td');\n for (var i = 0; i < tableCells.length; i++) {\n tableCells[i].style.padding = value + 'px';\n }\n }\n\n function addInnerBorder( checked ) {\n var styles, color = document.querySelector('#wptb-table-border-color').value != undefined ?\n document.querySelector('#wptb-table-border-color').value : 'rgb(0,0,0)';\n if ( document.querySelector( '#wptb-table-inner-border-slider' ).value == 0 || document.querySelector( '#wptb-table-inner-border-number' ).value == 0 ) {\n document.querySelector( '#wptb-table-inner-border-slider' ).value = 1;\n document.querySelector( '#wptb-table-inner-border-number' ).value = 1;\n }\n let width = document.querySelector( '#wptb-table-inner-border-slider' ).value + 'px';\n let wptbPreviewTable = document.getElementsByClassName('wptb-preview-table');\n if( wptbPreviewTable.length > 0 ) {\n if (checked == 'checked') {\n document.getElementById('wptb-apply-inner-border').style.marginBottom = '0px';\n var tableCells = wptbPreviewTable[0].getElementsByTagName( 'td' );\n for (var i = 0; i < tableCells.length; i++) {\n tableCells[i].style.border = width + ' solid ' + color;\n }\n document.getElementById( 'wptb-apply-inner-border' ).classList.add( 'visible' );\n } else {\n document.getElementById( 'wptb-apply-inner-border' ).classList.remove( 'visible' );\n var tableCells = wptbPreviewTable[0].getElementsByTagName( 'td' );\n for (var i = 0; i < tableCells.length; i++) {\n tableCells[i].style.border = '0px solid ' + color;\n tableCells[i].style.border = null;\n }\n }\n }\n \n }\n\n function addBorderSize( value ) {\n table.style.borderWidth = value + 'px';\n table.style.borderStyle = 'solid';\n }\n \n function cellPaddingSavedSet() {\n let table = document.getElementsByClassName('wptb-preview-table');\n \n if ( table.length > 0 ) {\n let td = table[0].querySelector( 'td' );\n \n if ( td ) {\n let padding = td.style.padding;\n \n if ( padding ) {\n let wptbTableCellSlider = document.getElementById('wptb-table-cell-slider'),\n wptbTableCellNumber = document.getElementById('wptb-table-cell-number');\n \n if ( wptbTableCellSlider ) {\n wptbTableCellSlider.value = parseInt( padding );\n }\n if ( wptbTableCellNumber ) {\n wptbTableCellNumber.value = parseInt( padding );\n }\n }\n }\n }\n }\n \n cellPaddingSavedSet();\n \n function numberImputSize( wptbNumberInputs, maxCount, maxValue ) {\n wptbNumberInputs.onkeydown = function() {\n let thisValue = this.value;\n thisValue = String( thisValue );\n if ( thisValue[0] == 0 ) {\n this.value = \"\";\n } else {\n thisValue = thisValue.substring( 0, maxCount );\n this.value = thisValue;\n }\n }\n wptbNumberInputs.onkeyup = function() {\n let thisValue = this.value;\n thisValue = String( thisValue );\n if ( thisValue > maxValue ) {\n this.value = maxValue;\n }\n }\n }\n \n let wptbTableBorderNumber = document.getElementById( 'wptb-table-border-number' );\n numberImputSize( wptbTableBorderNumber, 1, 50 );\n \n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\n numberImputSize( wptbTableInnerBorderNumber, 1, 50 );\n \n let wptbTableCellNumber = document.getElementById( 'wptb-table-cell-number' );\n numberImputSize( wptbTableCellNumber, 1, 50 );\n \n let wptbTextfontSizeNumber = document.getElementById( 'wptb-text-font-size-number' );\n numberImputSize( wptbTextfontSizeNumber, 1, 50 );\n \n let wptbImageWidthNumber = document.getElementById( 'wptb-image-width-number' );\n numberImputSize( wptbImageWidthNumber, 2, 100 );\n \n let wptbTableColumnWidthNumber = document.getElementById( 'wptb-table-column-width-number' );\n numberImputSize( wptbTableColumnWidthNumber, 2, 500 );\n \n let wptbTableRowHeightNumber = document.getElementById( 'wptb-table-row-height-number' );\n numberImputSize( wptbTableRowHeightNumber, 2, 200 );\n \n \n \n document.getElementById('wptb-table-cell-slider').oninput = function () {\n document.getElementById('wptb-table-cell-number').value = this.value;\n addCellPadding(this.value);\n table.tdDefaultWidth();\n };\n\n document.getElementById('wptb-table-cell-number').onchange = function () {\n document.getElementById('wptb-table-cell-slider').value = this.value;\n addCellPadding(this.value);\n table.tdDefaultWidth();\n };\n\n document.getElementById('wptb-table-border-slider').oninput = function () {\n document.getElementById('wptb-table-border-number').value = this.value;\n addBorderSize(this.value);\n table.tdDefaultWidth();\n \n let wptbInnerBorderCheck = document.getElementById('wptb-inner-border-check').checked,\n tableBorderColorSetArea = document.getElementById( 'wptb-table-border-color-set-area' );\n if ( this.value == 0 && wptbInnerBorderCheck == false ) {\n tableBorderColorSetArea.style.display = 'none';\n } else {\n tableBorderColorSetArea.style.display = '';\n }\n };\n\n document.getElementById('wptb-table-border-number').onchange = function () {\n document.getElementById('wptb-table-border-slider').value = this.value;\n addBorderSize(this.value);\n table.tdDefaultWidth();\n };\n\n document.getElementById('wptb-table-inner-border-slider').oninput = function () {\n document.getElementById('wptb-table-inner-border-number').value = this.value;\n addInnerBorderSize(this.value);\n table.tdDefaultWidth();\n };\n\n document.getElementById('wptb-table-inner-border-number').onchange = function () {\n document.getElementById('wptb-table-inner-border-slider').value = this.value;\n addInnerBorderSize(this.value);\n table.tdDefaultWidth();\n };\n\n document.getElementById('wptb-inner-border-check').onchange = function () {\n if( table ) {\n let val = this.checked ? 'checked' : 'unchecked';\n addInnerBorder( val );\n let borderWidth = document.getElementById('wptb-table-border-slider').value,\n tableBorderColorSetArea = document.getElementById( 'wptb-table-border-color-set-area' );\n if( val == 'unchecked' && borderWidth == 0 ) {\n tableBorderColorSetArea.style.display = 'none';\n } else {\n tableBorderColorSetArea.style.display = '';\n }\n }\n \n };\n \n document.getElementById( 'wptb-table-column-width-slider' ).oninput = function () {\n document.getElementById( 'wptb-table-column-width-number' ).value = this.value;\n table.addColumnWidth( this.value );\n };\n \n document.getElementById( 'wptb-table-column-width-number' ).onchange = function () {\n document.getElementById( 'wptb-table-column-width-slider' ).value = this.value;\n table.addColumnWidth( this.value );\n };\n \n document.getElementById( 'wptb-table-column-width-auto-fixed' ).onchange = function () {\n if( this.checked ) {\n let highlighted = table.querySelector( '.wptb-highlighted' );\n let width = WPTB_Helper.getColumnWidth( table, highlighted );\n table.addColumnWidth( width );\n } else {\n table.addColumnWidth( false, true );\n let highlighted = table.querySelector( '.wptb-highlighted' );\n let width = WPTB_Helper.getColumnWidth( table, highlighted );\n document.getElementById( 'wptb-table-column-width-number' ).value = width;\n document.getElementById( 'wptb-table-column-width-slider' ).value = width;\n }\n };\n\n document.getElementById( 'wptb-table-row-height-slider' ).oninput = function () {\n document.getElementById( 'wptb-table-row-height-number' ).value = this.value;\n table.addRowHeight( this.value );\n };\n\n document.getElementById( 'wptb-table-row-height-number' ).onchange = function () {\n document.getElementById( 'wptb-table-row-height-slider' ).value = this.value;\n table.addRowHeight( this.value );\n };\n \n document.getElementById( 'wptb-table-row-height-auto-fixed' ).onchange = function () {\n if( this.checked ) {\n let highlighted = table.querySelector( '.wptb-highlighted' );\n let height = WPTB_Helper.getRowHeight( table, highlighted );\n table.addRowHeight( height );\n } else {\n table.addRowHeight( false, true );\n let highlighted = table.querySelector( '.wptb-highlighted' );\n let height = WPTB_Helper.getRowHeight( table, highlighted );\n document.getElementById( 'wptb-table-row-height-number' ).value = height;\n document.getElementById( 'wptb-table-row-height-slider' ).value = height;\n }\n };\n \n function createMobileHeadForTable( table, thisEvent ) {\n \n if( thisEvent.checked ) {\n WPTB_Helper.dataTitleColumnSet( table );\n \n table.classList.add( 'wptb-table-preview-head' );\n table.rows[0].classList.add( 'wptb-table-head' );\n } else {\n let rows = table.rows;\n table.classList.remove( 'wptb-table-preview-head' );\n rows[0].classList.remove( 'wptb-table-head' );\n \n for ( let i = 1; i < rows.length; i++ ) {\n let thisRow = rows[i],\n thisRowChildren = thisRow.children;\n for( let j = 0; j < thisRowChildren.length; j++ ) {\n thisRowChildren[j].removeAttribute( 'data-wptb-title-column' );\n thisRowChildren[j].removeAttribute( 'data-wptb-title-column-font-size' );\n thisRowChildren[j].removeAttribute( 'data-wptb-title-column-color' );\n thisRowChildren[j].removeAttribute( 'data-wptb-title-background-color' );\n thisRowChildren[j].removeAttribute( 'data-wptb-title-align' );\n }\n }\n }\n }\n \n document.getElementById( 'wptb-top-row-as-header' ).onchange = function () {\n createMobileHeadForTable( table, this );\n }\n\n for (var i = 0; i < wptbElementButtons.length; i++) {\n wptbElementButtons[i].ondragstart = function (e) {\n e.dataTransfer.setData('wptbElement', this.dataset.wptbElement);\n e.dataTransfer.setData( 'wptbElIndic-' + this.dataset.wptbElement, 'wptbElIndic-' + this.dataset.wptbElement );\n }\n }\n \n if( table ) {\n document.getElementById('wptb-activate-cell-management-mode').onclick = table.toggleTableEditMode;\n document.getElementById( 'wptb-table-edit-mode-close' ).onclick = table.toggleTableEditMode;\n document.getElementById( 'wptb-left-scroll-panel-curtain-close' ).onclick = table.toggleTableEditMode;\n document.getElementById('wptb-add-end-row').onclick = table.addRowToTheEnd;\n document.getElementById('wptb-add-start-row').onclick = table.addRowToTheStart;\n document.getElementById('wptb-add-row-before').onclick = table.addRowBefore;\n document.getElementById('wptb-add-row-after').onclick = table.addRowAfter;\n document.getElementById('wptb-add-end-column').onclick = table.addColumnEnd;\n document.getElementById('wptb-add-start-column').onclick = table.addColumnStart;\n document.getElementById('wptb-add-column-before').onclick = table.addColumnBefore;\n document.getElementById('wptb-add-column-after').onclick = table.addColumnAfter;\n document.getElementById('wptb-delete-column').onclick = table.deleteColumn;\n document.getElementById('wptb-delete-row').onclick = table.deleteRow;\n document.getElementById('wptb-merge-cells').onclick = table.mergeCells;\n document.getElementById('wptb-split-cell').onclick = table.splitCell;\n }\n \n document.querySelector( '.wptb-left-panel-extend' ).onclick = function() {\n let wptbContainer = document.querySelector( '.wptb-container' );\n if( wptbContainer ) {\n if ( wptbContainer.classList.contains( 'collapsed' ) ) {\n wptbContainer.classList.remove( 'collapsed' );\n } else {\n wptbContainer.classList.add( 'collapsed' );\n }\n }\n };\n \n // this code hides the \"element parameters\" area \n // when clicked outside this element and its \"tinymce\" toolbar \n let wptbBuilderPanel = document.getElementsByClassName( 'wptb-builder-panel' )[0];\n wptbBuilderPanel.addEventListener( 'click', function( e ) {\n if( ! e.target.classList.contains( 'wptb-ph-element' ) && ! WPTB_Helper.findAncestor( e.target, 'wptb-ph-element' ) && \n ! e.target.classList.contains( 'wptb-fixed-toolbar' ) && ! WPTB_Helper.findAncestor( e.target, 'wptb-fixed-toolbar' ) ) {\n document.getElementsByClassName( 'wptb-elements-container' )[0].style.display = 'table';\n document.getElementsByClassName( 'wptb-settings-section' )[0].style.display = 'block';\n document.getElementById( 'element-options-group' ).style.display = 'none';\n let wpcdFixedToolbar = document.getElementById( 'wpcd_fixed_toolbar' );\n if( wpcdFixedToolbar.hasAttribute( 'data-toolbar-active-id' ) ) {\n document.getElementById( wpcdFixedToolbar.getAttribute( 'data-toolbar-active-id' ) ).classList.remove( 'toolbar-active' );\n }\n } \n }, false);\n \n};","var WPTB_List = function ( innerElements, DOMElementProt ) {\n\n var el_L = document.createElement('ul'), item,\n DOMElement = document.createElement('div'),\n kindIndexProt = undefined,\n copy = false;\n DOMElement.classList.add( 'wptb-list-item-container' );\n\n this.kind = 'list';\n\n if (innerElements === '') {\n //Case for edit mode list\n } else if ( !innerElements ) {\n for (var i = 0; i < 3; i++) {\n item = new WPTB_ListItem( '<p>List Item ' + (i + 1) + '</p>');\n el_L.appendChild(item.getDOMElement());\n }\n } else {\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\n kindIndexProt = wptbElementMutch[1];\n copy = true;\n };\n \n for ( var i = 0; i < innerElements.length; i++ ) {\n let listItem = DOMElementProt.querySelector( 'li' );\n item = new WPTB_ListItem( innerElements[i], listItem, true );\n el_L.appendChild(item.getDOMElement());\n }\n }\n DOMElement.appendChild(el_L);\n //window.addElementOptions('list', elList);\n\n this.getDOMElement = function () {\n return DOMElement;\n }\n applyGenericItemSettings( this, kindIndexProt, copy );\n WPTB_Helper.listItemsRecalculateIndex( el_L );\n\n return this;\n};","var WPTB_ListItem = function ( text, DOMElementProt, copy ) {\n let wptbListItemReturn;\n if ( DOMElementProt == undefined || ( DOMElementProt && copy )) {\n if (text == undefined) text = 'New List Item';\n var DOMElement = document.createElement('li'),\n //divdot = document.createElement('div'),\n divcontent = document.createElement('div');\n //libullet = document.createElement('li');\n //divdot.classList.add('wptb-list-item-style-dot');\n divcontent.classList.add('wptb-list-item-content');\n //libullet.classList.add('wptb-bullet');\n if ( DOMElementProt ) {\n let styleDot = DOMElementProt.getAttribute( 'style' );\n if ( styleDot ) {\n DOMElement.setAttribute( 'style', styleDot );\n }\n }\n //DOMElement.appendChild(divdot);\n DOMElement.appendChild(divcontent);\n //divdot.appendChild(libullet);\n divcontent.innerHTML = text;\n divcontent.onkeyup = window.listItemKeyListener;\n \n wptbListItemReturn = true;\n } else {\n var DOMElement = DOMElementProt;\n var divcontent = DOMElement.getElementsByClassName( 'wptb-list-item-content' )[0];\n \n divcontent.onkeyup = window.listItemKeyListener;\n \n wptbListItemReturn = false;\n }\n \n DOMElement.onmouseenter = function (event) {\n\n var btnDelete = document.createElement('span'),\n btnCopy = document.createElement('span'),\n actions = document.createElement('span'),\n previous,\n i;\n actions.classList.add('wptb-actions');\n btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');\n btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');\n this.classList.add('wptb-directlyhovered');\n\n btnDelete.onclick = function () {\n var action = this.parentNode, \n item = this.parentNode.parentNode,\n parent = item.parentNode;\n item.removeChild( action );\n parent.removeChild( item );\n WPTB_Helper.listItemsRecalculateIndex( parent );\n };\n\n btnCopy.onclick = function (event) {\n var listItem = event.target.parentNode.parentNode,\n content = listItem.querySelector('.wptb-list-item-content'),\n html = content.innerHTML;\n var duplicate = new WPTB_ListItem( html, listItem, true );\n listItem.parentNode.insertBefore( duplicate.getDOMElement(), DOMElement );\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\n setTimeout( function(){\n divcontent.innerHTML = html;\n WPTB_Helper.listItemsRecalculateIndex( listItem.parentNode );\n }, 5 );\n };\n\n actions.append(btnCopy, btnDelete);\n this.appendChild(actions);\n };\n\n DOMElement.onmouseleave = function (event) {\n this.removeAttribute( 'class' );\n let iter = 0;\n while( event.target.querySelector( '.wptb-actions' ) && iter < 5 ) {\n event.target.querySelector( '.wptb-actions' ).remove();\n iter++;\n }\n };\n\n this.getDOMElement = function () {\n return DOMElement;\n };\n \n if ( wptbListItemReturn ) {\n return this;\n }\n};","var MultipleSelect = function () {\n\n\tvar selectedCells = [],\n\t\tmultipleCellMode = false;\n\n\tthis.activateMultipleSelectMode = function () {\n\t\tselectedCells = [];\n\t\tvar tds = document.getElementsByClassName('wptb-preview-table')[0].getElementsByTagName('td');\n\t\tfor (var i = 0; i < tds.length; i++) {\n\t\t\ttds[i].classList.remove('wptb-highlighted');\n\t\t}\n\t\tmultipleCellMode = true;\n\t}\n\n\tthis.deactivateMultipleSelectMode = function () {\n\t\tmultipleCellMode = false;\n\t}\n\n\tthis.isActivated = function () {\n\t\treturn multipleCellMode;\n\t}\n\n\tthis.pushSelectedCell = function (cell) {\n\t\tif (!multipleCellMode) {\n\t\t\treturn;\n\t\t}\n\t\tselectedCells.push(cell);\n\t\tcell.classList.add('wptb-highlighted');\n\t};\n\n\tthis.selectedCells = function () {\n\t\treturn selectedCells;\n\t}\n\n\tthis.flushSelectedCells = function () {\n\t\tselectedCells = [];\n\t}\n\n\tthis.getFirst = function () {\n\t\tvar minXIndex = 1000, minYIndex = 1000, first;\n\t\tfor (var i = selectedCells.length - 1; i >= 0; i--) {\n\t\t\tif (minXIndex >= selectedCells[i].dataset.xIndex\n\t\t\t\t&& minYIndex >= selectedCells[i].dataset.yIndex) {\n\t\t\t\tfirst = selectedCells[i];\n\t\t\t\tminXIndex = selectedCells[i].dataset.xIndex;\n\t\t\t\tminYIndex = selectedCells[i].dataset.yIndex;\n\t\t\t}\n\t\t}\n\t\treturn first;\n\t}\n\n\tthis.getLast = function () {\n\t\tvar maxXIndex = -1, maxYIndex = -1, last;\n\t\tfor (var i = selectedCells.length - 1; i >= 0; i--) {\n\t\t\tif (maxXIndex <= selectedCells[i].dataset.xIndex\n\t\t\t\t&& maxYIndex <= selectedCells[i].dataset.yIndex) {\n\t\t\t\tlast = selectedCells[i];\n\t\t\t\tmaxXIndex = selectedCells[i].dataset.xIndex;\n\t\t\t\tmaxYIndex = selectedCells[i].dataset.yIndex;\n\t\t\t}\n\t\t}\n\t\treturn last;\n\t}\n\n\tthis.removeAllButFirst = function () {\n\t\tvar td = this.getFirst();\n\t\tfor (var i = 1; i < selectedCells.length; i++) {\n\t\t\tselectedCells[i].classList.add('wptb-fused-cell-' + td.dataset.xIndex + '-' + td.dataset.yIndex);\n\t\t}\n\t}\n\n\treturn this;\n\n};","var WPTB_Parser = function (code) {\n let div = document.createElement( 'div' );\n div.innerHTML = code;\n \n let table = div.children[0];\n let columnTitleMobile = [...table.querySelectorAll( '.wptb-column-title-mobile-container' )];\n \n for( let i = 0; i < columnTitleMobile.length; i++ ) {\n let parent = columnTitleMobile[i].parentNode;\n parent.removeChild( columnTitleMobile[i] );\n }\n \n let tds = table.querySelectorAll( 'td' );\n for ( let i = 0; i < tds.length; i++ ) {\n tds[i].classList.add( 'wptb-droppable' );\n tds[i].classList.remove( 'wptb-column-title-mobile-not-elements' );\n }\n \n return table;\n}","var WPTB_Parser2 = function (code) {\n if( Array.isArray( code ) ) {\n let elementHtml;\n \n if ( code.length == 1) {\n return elementHtml.appendChild( document.createTextNode( code[0] ) );\n }\n if( 0 in code ) {\n let tagName = code[0];\n elementHtml = document.createElement( tagName );\n \n if ( 1 in code ) {\n if( Array.isArray( code[1] ) ) {\n let attributes = code[1];\n \n for( let i = 0; i < attributes.length; i++ ) {\n if( Array.isArray( attributes[i] ) ) {\n elementHtml.setAttribute(attributes[i][0], attributes[i][1]);\n }\n }\n }\n }\n \n if ( 2 in code ) {\n if ( Array.isArray( code[2] ) ) {\n for ( let i = 0; i < code[2].length; i++ ) {\n if ( typeof code[2][i] === 'string' && tagName.toLowerCase() == 'p' ) {\n elementHtml.appendChild( document.createTextNode( code[2][i] ) );\n continue;\n }\n if ( ! WPTB_Parser( code[2][i] ) ) continue;\n elementHtml.appendChild( WPTB_Parser( code[2][i] ) );\n }\n } else if( typeof code[2] === 'string' ) {\n elementHtml.appendChild( document.createTextNode( code[2] ) );\n }\n \n }\n }\n \n return elementHtml;\n } else {\n return false;\n }\n \n}","var WPTB_Settings = function () {\n var elems = document.getElementsByClassName('wptb-element');\n\n for ( var i = 0; i < elems.length; i++ ) {\n elems[i].ondragstart = function ( event ) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData( 'wptbElement', event.target.dataset.wptbElement );\n event.dataTransfer.setData( 'wptbElIndic-' + event.target.dataset.wptbElement, 'wptbElIndic-' + event.target.dataset.wptbElement );\n }\n elems[i].ondragend = function () {\n let wptbDropHandle = document.querySelector( '.wptb-drop-handle' ),\n wptbDropBorderMarker = document.querySelector( '.wptb-drop-border-marker' );\n if ( wptbDropHandle || wptbDropBorderMarker ) {\n wptbDropHandle.style.display = 'none';\n wptbDropBorderMarker.style.display = 'none';\n }\n }\n };\n \n let shortcodePopupWindow = document.getElementsByClassName( 'wptb-popup-window-modal' )[0];\n document.getElementsByClassName( 'wptb-embed-btn' )[0].onclick = function () {\n if( ! this.classList.contains( 'wptb-embed-disable' ) ) {\n shortcodePopupWindow.classList.add( 'wptb-popup-show' );\n }\n }\n \n document.getElementsByClassName( 'wptb-popup-dark-area' )[0].onclick = function () {\n shortcodePopupWindow.classList.remove( 'wptb-popup-show' );\n }\n \n document.getElementsByClassName( 'wptb-popup-window-close-icon' )[0].onclick = function () {\n shortcodePopupWindow.classList.remove( 'wptb-popup-show' );\n }\n\n document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function () {\n let bar = document.querySelector( '.wptb-edit-bar' );\n if ( bar && bar.classList.contains( 'visible' ) ) {\n let table = document.getElementsByClassName( 'wptb-preview-table' )[0];\n table.toggleTableEditMode();\n }\n\n let http = new XMLHttpRequest(),\n url = ( wptb_admin_object ? wptb_admin_object.ajaxurl : ajaxurl ) + \"?action=save_table\",\n t = document.getElementById( 'wptb-setup-name' ).value.trim(),\n messagingArea,\n code = document.getElementsByClassName( 'wptb-preview-table' );\n if( code.length > 0 ) {\n code = WPTB_Stringifier( code[0] );\n code = code.outerHTML;\n } else { \n code = '';\n }\n \n if ( t === '' || code === '' ) {\n let messagingAreaText = '';\n if( t === '' ) messagingAreaText += 'You must assign a name to the table before saving it.</br>';\n if( code === '' ) messagingAreaText += 'Table wasn\\'t created';\n messagingArea = document.getElementById( 'wptb-messaging-area' );\n messagingArea.innerHTML = '<div class=\"wptb-error wptb-message\">Error: ' + messagingAreaText + '</div>';\n messagingArea.classList.add( 'wptb-warning' );\n setTimeout(function () {\n messagingArea.removeChild( messagingArea.firstChild );\n }, 4000 );\n return;\n }\n\n let params = {\n title: t,\n content: code,\n security_code: wptb_admin_object.security_code\n };\n if (( rs = WPTB_Helper.detectMode() ) || ( rs = document.wptbId )) {\n params.id = rs;\n }\n params = JSON.stringify( params );\n\n http.open('POST', url, true);\n http.setRequestHeader( 'Content-type', 'application/json; charset=utf-8' );\n\n http.onreadystatechange = function (action) {\n if ( this.readyState == 4 && this.status == 200 ) {\n var data = JSON.parse( http.responseText );\n messagingArea = document.getElementById( 'wptb-messaging-area' );\n\n if ( data[0] == 'saved' ) {\n document.wptbId = data[1];\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully saved.</div>';\n document.getElementsByClassName( 'wptb-embed-btn' )[0].classList.remove( 'wptb-embed-disable' );\n document.getElementById( 'wptb-embed-shortcode' ).value = '[wptb id=' + data[1] + ']';\n } else if( data[0] == 'edited' ) {\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully updated.</div>';\n } else {\n messagingArea.innerHTML = '<div class=\"wptb-error wptb-message\">Safety problems</div>';\n }\n messagingArea.classList.add( 'wptb-success' );\n setTimeout( function () {\n messagingArea.removeChild( messagingArea.firstChild );\n }, 4000 );\n }\n }\n http.send( params );\n }\n};\n","var WPTB_Space = function ( elSpaceBetween ) {\n\n function newElementProxy(el) {\n if (el.includes('list')) {\n return new WPTB_List();\n } else if (el.includes('image')) {\n return new WPTB_Image();\n } else if (el.includes('text')) {\n return new WPTB_Text();\n } else if (el.includes('button')) {\n return new WPTB_Button();\n }\n }\n let spaceBetween;\n if ( ! elSpaceBetween ) {\n spaceBetween = document.createElement('div'), spaceBetween.classList.add('wptb-space-between');\n } else {\n spaceBetween = elSpaceBetween;\n }\n\n spaceBetween.ondragenter = function () {\n this.classList.add('visible');\n };\n spaceBetween.ondragover = function (event) {\n event.preventDefault();\n };\n\n spaceBetween.ondragleave = function () {\n this.classList.remove('visible');\n };\n\n spaceBetween.ondrop = function (event) {\n event.stopPropagation();\n\n var p = event.target.nextSibling,\n td = event.target,\n element, t_space, spaceParent;\n\n while ( !td.classList.contains('wptb-droppable') ) {\n td = td.parentNode;\n }\n\n if (event.dataTransfer.getData('wptbElement')) {\n element = newElementProxy(event.dataTransfer.getData('wptbElement'));\n this.classList.remove('visible');\n\n if (p == null) {\n td.appendChild(element.getDOMElement());\n td.appendChild(new WPTB_Space());\n } else {\n td.insertBefore(element.getDOMElement(), p);\n td.insertBefore(new WPTB_Space(), p);\n }\n\n } else {\n alert(event.dataTransfer.getData('node'));\n element = document.getElementsByClassName(event.dataTransfer.getData('node'))[0];\n t_space = element.nextSibling;\n spaceParent = element.parentNode;\n if (t_space != undefined) {\n spaceParent.removeChild(t_space);\n }\n\n if (p == null) {\n td.appendChild(element);\n td.appendChild(new WPTB_Space());\n } else {\n td.insertBefore(element, p);\n td.insertBefore(new WPTB_Space(), p);\n }\n\n }\n this.classList.remove('visible');\n };\n \n if ( ! elSpaceBetween ) {\n return spaceBetween;\n }\n};","var WPTB_Stringifier = function ( codeMain ) {\n if ( codeMain ) {\n let code = codeMain.cloneNode( true );\n code.classList.add( 'wptb-table-preview-static-indic' );\n code.dataset.tableColumns = codeMain.columns;\n code.style.width = null;\n code.style.minWidth = null;\n code.style.maxWidth = null;\n \n let tds = code.getElementsByTagName( 'td' );\n if ( tds.length > 0 ) {\n for ( let i = 0; i < tds.length; i++ ) {\n \n if ( codeMain.querySelector( 'wptb-table-preview-head' ) ) {\n tds[i].removeAttribute( 'data-x-index' );\n }\n tds[i].removeAttribute( 'data-y-index' );\n tds[i].removeAttribute( 'draggable' );\n tds[i].classList.remove( 'wptb-droppable' );\n let innerElements = tds[i].getElementsByClassName( 'wptb-ph-element' );\n \n if ( innerElements.length > 0 ) {\n for ( let j = 0; j < innerElements.length; j++ ) {\n innerElements[j].classList.remove( 'wptb-directlyhovered' );\n \n let mceContentBodys = innerElements[j].querySelectorAll( '.mce-content-body' );\n if( mceContentBodys.length > 0 ) {\n for ( let k = 0; k < mceContentBodys.length; k++ ) {\n mceContentBodys[k].classList.remove( 'mce-content-body' );\n }\n }\n \n let dataMceStyle = innerElements[j].querySelectorAll( '[data-mce-style]' );\n if ( dataMceStyle.length > 0 ) {\n for ( let k = 0; k < dataMceStyle.length; k++ ) {\n dataMceStyle[k].removeAttribute( 'data-mce-style' );\n }\n }\n \n let contentEditable = innerElements[j].querySelectorAll( '[contenteditable]' );\n if ( contentEditable.length > 0 ) {\n for ( let k = 0; k < contentEditable.length; k++ ) {\n contentEditable[k].removeAttribute( 'contenteditable' );\n }\n }\n \n let spellCheck = innerElements[j].querySelectorAll( '[spellcheck]' );\n if ( spellCheck.length > 0 ) {\n for ( let k = 0; k < spellCheck.length; k++ ) {\n spellCheck[k].removeAttribute( 'spellcheck' );\n }\n }\n \n let mceIds = innerElements[j].querySelectorAll( '[id^=mce_]' );\n if ( mceIds.length > 0 ) {\n for ( let k = 0; k < mceIds.length; k++ ) {\n mceIds[k].removeAttribute( 'id' );\n }\n }\n \n let wptbActions = innerElements[j].querySelectorAll( '.wptb-actions' );\n let wptbActionsLength = wptbActions.length;\n while ( wptbActionsLength > 0 ) {\n wptbActions[0].parentNode.removeChild( wptbActions[0] );\n wptbActionsLength--;\n } \n }\n }\n \n if( tds[i].hasAttribute( 'data-wptb-title-column' ) ) {\n let columnNameDivContainer = document.createElement( 'div' ),\n columnNameDiv = document.createElement( 'div' );\n columnNameDivContainer.classList.add( 'wptb-column-title-mobile-container' );\n columnNameDiv.classList.add( 'wptb-column-title-mobile' );\n columnNameDiv.dataset.wptbTitleColumn = tds[i].dataset.wptbTitleColumn;\n columnNameDiv.setAttribute( 'style', 'font-size:' + tds[i].dataset.wptbTitleColumnFontSize + '; \\n\\\n color:' + tds[i].dataset.wptbTitleColumnColor + '; background-color:' + tds[i].dataset.wptbTitleBackgroundColor + '; text-align:' + tds[i].dataset.wptbTitleAlign + ';' );\n columnNameDiv.style.padding = tds[i].style.padding;\n if( tds[i].children.length == 0 ) {\n tds[i].classList.add( 'wptb-column-title-mobile-not-elements' );\n }\n columnNameDivContainer.appendChild( columnNameDiv );\n tds[i].insertBefore( columnNameDivContainer, tds[i].firstChild );\n }\n }\n }\n \n return code;\n }\n}","var WPTB_Stringifier2 = function ( node, start = false ) {\n\n\tif ( node == undefined ) {\n\t\treturn '';\n\t} else if ( node.tagName == undefined && node.nodeType == 3 ) {\n return node.nodeValue;\n }\n \n let code = [],\n children,\n int_elem_arr = false,\n attributes = [...node.attributes],\n attributes_list = [],\n internal_elements = [];\n if ( ( node.parentNode.classList.contains( 'wptb-list-item-content' ) || \n node.parentNode.classList.contains( 'mce-content-body' ) ) && \n node.tagName.toLowerCase() == 'p' ) {\n children = node.childNodes;\n int_elem_arr = true;\n } else if( node.children.length > 0 ) {\n children = node.children;\n } else {\n children = node.childNodes;\n }\n if ( attributes.length > 0 ) {\n for ( let i = 0; i < attributes.length; i++ ) {\n attributes_list[i] = [attributes[i].name, attributes[i].value];\n }\n } else {\n attributes_list = '';\n }\n \n if ( children.length > 0 ) {\n for ( let i = 0; i < children.length; i++) {\n let inter_elem = WPTB_Stringifier(children[i]);\n \n if ( Array.isArray( inter_elem ) || int_elem_arr ) {\n internal_elements[i] = inter_elem;\n } else if ( typeof inter_elem === 'string' && inter_elem ) {\n internal_elements = inter_elem;\n }\n }\n } else {\n internal_elements = '';\n }\n \n \n code.push(node.tagName.toLowerCase(), attributes_list , internal_elements);\n \n return code;\n}","var array = [], WPTB_Table = function (columns, rows) {\n\n /* The members of the class */\n var settings = document.getElementsByClassName('wptb-settings-items'),\n wptbTableSetup = document.getElementsByClassName(\"wptb-table-setup\")[0],\n table, row, cell,\n maxAmountOfCells,\n maxAmountOfRows;\n\n //HERE ARE THE PRIVATE FUNCTIONS\n /*\n * This function toggles buttons visibility in cell edit mode\n * (according to the amount of currently selected cells), and\n * highlights visually the clicked cell if it is not highlighted, or\n * removes highlight if clicked cell is already highlighted. \n * It too toggles the bits of our abstract representation.\n * @param Event this is the event instance of the click performed over a cell.\n */\n var mark = function ( event ) {\n var rs = this.rowSpan,\n cs = this.colSpan,\n markedCells,\n noCells = document.getElementsByClassName('wptb-no-cell-action'),\n singleCells = document.getElementsByClassName('wptb-single-action'),\n multipleCells = document.getElementsByClassName('wptb-multiple-select-action'),\n cellSettings = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ),\n position = getCoords(this),\n row = position[0],\n column = position[1];\n if ( ! document.select.isActivated() ) {\n return;\n }\n if (this.className.match(/wptb-highlighted/)) {\n this.classList.remove('wptb-highlighted');\n for (var i = 0; i < rs; i++) {\n for (var j = 0; j < cs; j++) {\n array[row + i][column + j] = 0;\n }\n }\n } else {\n this.classList.add('wptb-highlighted');\n for (var i = 0; i < rs; i++) {\n for (var j = 0; j < cs; j++) {\n array[row + i][column + j] = 1;\n }\n }\n }\n\n markedCells = document.getElementsByClassName('wptb-highlighted').length;\n if (markedCells === 0) {\n for (var i = 0; i < multipleCells.length; i++) {\n multipleCells[i].classList.remove('visible');\n multipleCells[i].setAttribute('disabled', 'disabled');\n }\n for (var i = 0; i < noCells.length; i++) {\n noCells[i].classList.add('visible');\n noCells[i].removeAttribute('disabled');\n }\n for (var i = 0; i < singleCells.length; i++) {\n singleCells[i].classList.remove('visible');\n singleCells[i].setAttribute('disabled', 'disabled');\n }\n cellSettings.classList.remove( 'visible' );\n } else if (markedCells === 1) {\n for (var i = 0; i < multipleCells.length; i++) {\n multipleCells[i].classList.remove('visible');\n multipleCells[i].setAttribute('disabled', 'disabled');\n }\n for (var i = 0; i < noCells.length; i++) {\n noCells[i].classList.remove('visible');\n noCells[i].setAttribute('disabled', 'disabled');\n }\n for (var i = 0; i < singleCells.length; i++) {\n singleCells[i].classList.add('visible');\n singleCells[i].removeAttribute('disabled');\n }\n let cellHighlighted = document.querySelector( '.wptb-highlighted' );\n if( cellHighlighted ) {\n let wptbTableColumnWidthSlider = document.getElementById( 'wptb-table-column-width-slider' );\n let wptbTableColumnWidthNumber = document.getElementById( 'wptb-table-column-width-number' );\n let tableColumnWidthAutoFixedCheckbox = document.getElementById( 'wptb-table-column-width-auto-fixed' );\n let width = cellHighlighted.style.width;\n if( width ) {\n wptbTableColumnWidthSlider.value = parseFloat( width, 10 );\n wptbTableColumnWidthNumber.value = parseFloat( width, 10 );\n tableColumnWidthAutoFixedCheckbox.checked = true;\n } else if( cellHighlighted.dataset.wptbFixedWidth ) {\n wptbTableColumnWidthSlider.value = cellHighlighted.dataset.wptbFixedWidth;\n wptbTableColumnWidthNumber.value = cellHighlighted.dataset.wptbFixedWidth;\n tableColumnWidthAutoFixedCheckbox.checked = true;\n } else {\n let cellWidth = WPTB_Helper.getColumnWidth( table, cellHighlighted );\n wptbTableColumnWidthSlider.value = cellWidth;\n wptbTableColumnWidthNumber.value = cellWidth;\n tableColumnWidthAutoFixedCheckbox.checked = false;\n }\n \n \n let wptbTableRowHeightSlider = document.getElementById( 'wptb-table-row-height-slider' );\n let wptbTableRowHeightNumber = document.getElementById( 'wptb-table-row-height-number' );\n let tableRowHeightAutoFixedCheckbox = document.getElementById( 'wptb-table-row-height-auto-fixed' );\n let height = cellHighlighted.style.height;\n if( height ) {\n wptbTableRowHeightSlider.value = parseFloat( height, 10 );\n wptbTableRowHeightNumber.value = parseFloat( height, 10 );\n tableRowHeightAutoFixedCheckbox.checked = true;\n } else if( cellHighlighted.dataset.wptbFixedHeight ) {\n wptbTableRowHeightSlider.value = cellHighlighted.dataset.wptbFixedHeight;\n wptbTableRowHeightNumber.value = cellHighlighted.dataset.wptbFixedHeight;\n tableRowHeightAutoFixedCheckbox.checked = true;\n } else {\n let cellHeight = WPTB_Helper.getRowHeight( table, cellHighlighted );\n wptbTableRowHeightSlider.value = cellHeight;\n wptbTableRowHeightNumber.value = cellHeight;\n tableRowHeightAutoFixedCheckbox.checked = false;\n }\n }\n cellSettings.classList.add( 'visible' );\n } else {\n for (var i = 0; i < multipleCells.length; i++) {\n if (table.isSquare(array)) {\n multipleCells[i].classList.add('visible');\n multipleCells[i].removeAttribute('disabled');\n } else {\n multipleCells[i].classList.remove('visible');\n multipleCells[i].setAttribute('disabled', 'disabled');\n }\n }\n for (var i = 0; i < noCells.length; i++) {\n noCells[i].classList.remove('visible');\n noCells[i].setAttribute('disabled', 'disabled');\n }\n for (var i = 0; i < singleCells.length; i++) {\n singleCells[i].classList.remove('visible');\n singleCells[i].setAttribute('disabled', 'disabled');\n }\n cellSettings.classList.remove( 'visible' );\n }\n };\n\n /* \n * This function fills an array with 1's according to the actual design\n * of HTML table.\n * @returns an array of arrays containing an abstract representation\n * of HTML table.\n * @deprecated\n * */\n\n var realTimeArray = function () {\n var carried = [], tds, cols, matriz = [];\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n carried[i] = 0;\n }\n\n for (var i = 0; i < table.rows.length; i++) {\n cols = [];\n\n var tds = table.rows[i].getElementsByTagName('td');\n\n for (items = 0; items < tds.length; items++) {\n\n for (var k = 0; k < tds[items].colSpan; k++) {\n cols.push(1);\n }\n\n if (tds[items].rowSpan > 1) {\n for (var k = 0; k < tds[items].colSpan; k++) {\n carried[items + k] = {\n justAssigned: true,\n amount: tds[items].rowSpan\n };\n }\n }\n }\n\n for (var k = 0; k < maxAmountOfCells; k++) {\n if (typeof carried[k] == 'object' && carried[k].amount > 0) {\n carried[k].amount--;\n if (carried[k].justAssigned) {\n carried[k].justAssigned = false;\n } else {\n cols.push(1);\n }\n }\n }\n\n matriz.push(cols);\n\n }\n return matriz;\n };\n\n /*\n * This function gets the number and position of cell spaces in current row that are occuped \n * by upper rowspanned cells.\n * @param number the number of row where we wish to calculate the carried rowspans up to.\n * @return an array with the remaining rowspans in each column.\n */\n var carriedRowspans = function (row) {\n var carried = [], tds, cols;\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n carried[i] = 0;\n }\n\n if (row == -1) {\n return carried;\n }\n\n for (var i = 0; i <= row; i++) {\n cellsBuffer = table.rows[i].getElementsByTagName('td');\n cellPointer = 0;\n\n for (var xPosition = 0; xPosition < maxAmountOfCells; xPosition += stepsToMove) {\n stepsToMove = 1;\n\n if (carried[xPosition]) {\n carried[xPosition]--;\n } else {\n celda = cellsBuffer[cellPointer++];\n if (celda.rowSpan > 1) {\n for (k = 0; k < celda.colSpan; k++) {\n carried[xPosition + k] = celda.rowSpan - 1;\n }\n stepsToMove = celda.colSpan;\n } else if (celda.colSpan > 1) {\n stepsToMove = celda.colSpan;\n }\n }\n }\n\n }\n return carried;\n };\n\n /*\n * A helpful function for showing\n * the abstract table in console.\n * @param Array our abstract table.\n */\n var drawTable = function (a) {\n var string = 'DRAWING TABLE:\\n';\n for (var i = 0; i < a.length; i++) {\n\n for (var j = 0; j < a[i].length; j++) {\n string += ' ' + a[i][j];\n }\n string += '\\n';\n }\n table.isSquare(a);\n };\n\n /*\n * It resets all the bits of our abstract representation\n * to 0 and removes the highlighting class of all cells.\n */\n\n var undoSelect = function () {\n var noCells = document.getElementsByClassName('wptb-no-cell-action'),\n singleCells = document.getElementsByClassName('wptb-single-action'),\n multipleCells = document.getElementsByClassName('wptb-multiple-select-action'),\n tds = table.getElementsByClassName('wptb-highlighted');\n while (tds.length) {\n tds[0].classList.remove('wptb-highlighted');\n }\n for (var i = 0; i < array.length; i++) {\n for (var j = 0; j < array[i].length; j++) {\n array[i][j] = 0;\n }\n }\n for (var i = 0; i < multipleCells.length; i++) {\n multipleCells[i].classList.remove('visible');\n multipleCells[i].setAttribute('disabled', 'disabled');\n }\n for (var i = 0; i < noCells.length; i++) {\n noCells[i].classList.add('visible');\n noCells[i].removeAttribute('disabled');\n }\n for (var i = 0; i < singleCells.length; i++) {\n singleCells[i].classList.remove('visible');\n singleCells[i].setAttribute('disabled', 'disabled');\n }\n };\n\n /*\n * This fills the abstract representation of our table with \n * zeros, at the start. the max amount of cells is the greatest sum\n * of all colspans for row.\n */\n\n var fillTableArray = function () {\n var colspansSums = [], a = [];\n\n //calculate max amount of cells inside a row\n for (var i = 0; i < table.rows.length; i++) {\n var cells = table.rows[i].getElementsByTagName('td'),\n colspanSumInRow = 0;\n for (var j = 0; j < cells.length; j++) {\n colspanSumInRow += cells[j].colSpan;\n }\n colspansSums.push(colspanSumInRow);\n }\n\n maxAmountOfCells = Math.max.apply(null, colspansSums);\n //calculate max rows\n var maxAmountOfRows = table.rows.length;\n\n // fill with zeros from both values\n for (var i = 0; i < maxAmountOfRows; i++) {\n a[i] = [];\n for (var j = 0; j < maxAmountOfCells; j++) {\n a[i].push(0);\n }\n }\n drawTable(a);\n return a;\n };\n\n /*\n * This function gets the sum of all colspans in a row.\n * @param number the number of row to be used as reference.\n */\n var getActualPointsInRow = function (row) {\n var tds = table.rows[row].getElementsByTagName('td'),\n points = 0;\n for (var i = 0; i < tds.length; i++) {\n points += tds[i].colSpan;\n }\n return points;\n }\n\n /*\n * This function gets us the exact coordinates of\n * an exact cell, in a more reliable way than xIndex and yIndex,\n * these last ones were meant to be used for getting the cell trough them.\n * @param DOMElement the cell to get the coordinates.\n */\n var getCoords = function (search) {\n var skipInCols = [], cell;\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n skipInCols[i] = 0;\n }\n\n for (var i = 0; i < table.rows.length; i++) {\n var cellsBuffer = table.rows[i].getElementsByTagName('td');\n cellPointer = 0;\n for (var xPosition = 0; xPosition < maxAmountOfCells; xPosition += stepsToMove) {\n stepsToMove = 1;\n\n if (skipInCols[xPosition]) {\n skipInCols[xPosition]--;\n } else {\n var td = cellsBuffer[cellPointer++];\n if (td == search) {\n return [i, xPosition];\n }\n if (td.rowSpan > 1) {\n for ( let k = 0; k < td.colSpan; k++ ) {\n skipInCols[xPosition + k] = td.rowSpan - 1;\n }\n stepsToMove = td.colSpan;\n } else if (td.colSpan > 1) {\n stepsToMove = td.colSpan;\n }\n }\n }\n }\n };\n\n jQuery('#wptb-table-header-bg').val('');\n jQuery('#wptb-even-row-bg').val('');\n jQuery('#wptb-odd-row-bg').val('');\n jQuery('#wptb-table-border-color').val('');\n jQuery('#wptb-table-inner-border-number,#wptb-table-inner-border-slider').val('0');\n jQuery('#wptb-table-border-number,#wptb-table-border-slider').val('0');\n jQuery('#wptb-table-padding-number,#wptb-table-padding-slider').val('15');\n\n if (columns || rows) {\n //END OF PRIVATE FUNCTIONS\n for (var i = 0; i < settings.length; i++) {\n if (settings[i].id !== 'wptb-apply-inner-border') {\n settings[i].classList.add('visible');\n }\n }\n\n //Create a HTML Table element.\n table = document.createElement( 'table' );\n table.classList.add( 'wptb-preview-table' );\n table.dataset.reconstraction = 1;\n //Add the data rows.\n for (var i = 0; i < rows; i++) {\n\n row = table.insertRow(-1);\n row.classList.add( 'wptb-row' );\n\n for (var j = 0; j < columns; j++) {\n cell = new WPTB_Cell(mark);\n cell.setCoords(i, j);\n row.appendChild(cell.getDOMElement());\n }\n }\n } else {\n let wptb_preview_table = document.getElementsByClassName( 'wptb-preview-table' );\n\n if (wptb_preview_table.length > 0) {\n table = wptb_preview_table[0];\n\n let cells = table.getElementsByTagName('td');\n\n if (cells.length > 0) {\n for (let i = 0; i < cells.length; i++) {\n WPTB_Cell(mark, cells[i]);\n }\n }\n }\n }\n\n /*\n * This just toggles visibility of cell edit bar, and toggles \n * cell selecting mode.\n */\n\n table.toggleTableEditMode = function () {\n let bar = document.getElementsByClassName('wptb-edit-bar'),\n cellModeBackground = document.getElementById('wptb-cell_mode_background'),\n leftScrollPanelCurtain = document.getElementById('wptb-left-scroll-panel-curtain'),\n leftScrollPanelCellSettings = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ),\n wptbPreviewTable = document.getElementsByClassName('wptb-preview-table');\n if (wptbPreviewTable.length > 0) {\n wptbPreviewTable = wptbPreviewTable[0];\n }\n\n if ( bar.length > 0 ) {\n for ( let i = 0; i < bar.length; i++ ) {\n if ( bar[i].classList.contains( 'visible' ) ) {\n document.select.deactivateMultipleSelectMode();\n bar[i].classList.remove( 'visible' );\n cellModeBackground.classList.remove( 'visible' );\n leftScrollPanelCurtain.classList.remove( 'visible' );\n leftScrollPanelCellSettings.classList.remove( 'visible' );\n wptbPreviewTable.classList.remove( 'wptb-preview-table-manage-cells' );\n let wptbPreviewTableTds = wptbPreviewTable.getElementsByTagName( 'td' );\n if ( wptbPreviewTableTds.length > 0 ) {\n for ( let i = 0; i < wptbPreviewTableTds.length; i++ ) {\n wptbPreviewTableTds[i].classList.remove( 'wptb-highlighted' );\n }\n }\n } else {\n document.select.activateMultipleSelectMode();\n bar[i].classList.add( 'visible' );\n cellModeBackground.classList.add( 'visible' );\n leftScrollPanelCurtain.classList.add( 'visible' );\n wptbPreviewTable.classList.add( 'wptb-preview-table-manage-cells' );\n }\n }\n\n }\n }\n\n /*\n * For assigning to each cell xIndex and y Index attributes,\n * these are the column number and row number of cell in table. \n */\n\n table.recalculateIndexes = function ( start ) {\n let trs = this.getElementsByTagName('tr'), tds, maxCols = 0, maxColsFull = 0,\n tdsArr = [];\n let wptbTopRowAsHeader = document.getElementById( 'wptb-top-row-as-header' );\n \n for (var i = 0; i < trs.length; i++) {\n if ( i == 0 ) {\n if ( start == undefined ) {\n trs[i].style.backgroundColor = jQuery('#wptb-table-header-bg').val();\n }\n if( wptbTopRowAsHeader.checked ) {\n if( start == undefined ) {\n this.classList.add( 'wptb-table-preview-head' ); \n trs[i].classList.add( 'wptb-table-head' )\n } ;\n } else {\n if( start == undefined ) {\n this.classList.remove( 'wptb-table-preview-head' );\n trs[i].classList.remove( 'wptb-table-head' );\n }\n }\n } else {\n if (i % 2 == 0) {\n if ( start == undefined ) {\n trs[i].style.backgroundColor = jQuery('#wptb-odd-row-bg').val();\n }\n trs[i].classList.remove( 'wptb-table-head' );\n } else {\n if ( start == undefined ) {\n trs[i].style.backgroundColor = jQuery('#wptb-even-row-bg').val();\n }\n trs[i].classList.remove( 'wptb-table-head' );\n }\n }\n\n tdsArr[i];\n tds = trs[i].getElementsByTagName('td');\n\n if (tdsArr[i] == undefined) {\n tdsArr[i] = [];\n }\n\n let jMainIter = 0;\n for (var j = 0; j < tds.length; j++) {\n if (tdsArr[i][j] != undefined) {\n for (let y = 0; y < 100; y++) {\n if (tdsArr[i][jMainIter] != undefined) {\n jMainIter++;\n continue;\n }\n tdsArr[i][jMainIter] = tds[j];\n tds[j].dataset.xIndex = jMainIter;\n break;\n }\n } else {\n tdsArr[i][j] = tds[j];\n tds[j].dataset.xIndex = jMainIter;\n }\n tds[j].dataset.yIndex = i;\n\n if (tds[j].colSpan > 1) {\n for (let k = 1; k < tds[j].colSpan; k++) {\n jMainIter++;\n tdsArr[i][jMainIter] = 'tdDummy';\n }\n }\n\n if (tds[j].rowSpan > 1) {\n for (let x = 1; x < tds[j].rowSpan; x++) {\n if (tdsArr[i + x] == undefined) {\n tdsArr[i + x] = [];\n }\n for (let z = 0; z < tds[j].colSpan; z++) {\n tdsArr[i + x][jMainIter - tds[j].colSpan + 1 + z ] = 'tdDummy';\n }\n }\n }\n jMainIter++;\n if( i == 0 ) {\n maxColsFull = jMainIter;\n }\n }\n if (j > maxCols) {\n maxCols = j;\n }\n }\n this.columns = maxCols;\n this.maxCols = maxColsFull;\n }\n \n table.addColumnWidth = function( value, cleaner ) {\n let highlighted = table.getElementsByClassName( 'wptb-highlighted' );\n if( highlighted.length > 0 ) {\n for( let k = 0; k < highlighted.length; k++ ) {\n let dataXIndex = highlighted[k].dataset.xIndex;\n if( dataXIndex ) {\n function tableTdsFor( dataXIndex, colspan ) {\n let tableRows = table.rows;\n let widthIsSet = false;\n let arrayTdsFromPreviousRow = [];\n for( let i = 0; i < tableRows.length; i++ ) {\n let row = tableRows[i];\n let tds = row.children;\n for( let j = 0; j < tds.length; j++ ) {\n let td = tds[j];\n if( td.dataset.xIndex == dataXIndex ) {\n if( value ) {\n if( td.colSpan == colspan ) {\n td.style.width = value + 'px';\n td.removeAttribute( 'data-wptb-fixed-width' );\n widthIsSet = true;\n let tableColumnWidthAutoFixedCheckbox = document.getElementById( 'wptb-table-column-width-auto-fixed' );\n if( ! tableColumnWidthAutoFixedCheckbox.checked ) {\n tableColumnWidthAutoFixedCheckbox.checked = true;\n }\n } else {\n td.style.width = null;\n td.dataset.wptbFixedWidth = value;\n if( i == tableRows.length - 1 && ! widthIsSet ) {\n tableTdsFor( dataXIndex, colspan + 1 );\n }\n }\n } else if( cleaner ) {\n td.style.width = null;\n td.removeAttribute( 'data-wptb-fixed-width' );\n } else {\n if( td.dataset.wptbFixedWidth ) {\n if( td.colSpan == colspan ) {\n td.style.width = td.dataset.wptbFixedWidth + 'px';\n td.removeAttribute( 'data-wptb-fixed-width' );\n } \n } else if( td.style.width ) {\n for( let z = 0; z < arrayTdsFromPreviousRow.length; z++ ) {\n arrayTdsFromPreviousRow[z].style.width = td.style.width;\n }\n arrayTdsFromPreviousRow = [];\n } else {\n arrayTdsFromPreviousRow.push( td );\n }\n }\n break;\n } \n }\n }\n }\n \n tableTdsFor( dataXIndex, 1 );\n }\n }\n \n table.tdDefaultWidth();\n }\n }\n \n table.tdDefaultWidth = function() {\n let rows = table.rows;\n \n let tableTdsSumMaxWidth = 0;\n let tableTdsSumMaxWidthFixed = 0;\n let tableTdsSumMaxWidthAuto = 0;\n \n let wptbTableSetup = document.getElementsByClassName( 'wptb-table-setup' )[0];\n let wptbTableSetupWidth = wptbTableSetup.offsetWidth;\n \n let arrayCellsWidthFixedHelper = [];\n let arrayCellsWidthAutoHelper = [];\n let tdPaddingCommon = 0;\n let tableTdBorderCommonWidth = 0;\n let cssForTdsWidthAuto = '';\n \n for( let i = 0; i < rows.length; i++ ) {\n let tds = rows[i].children;\n for( let j = 0; j < tds.length; j++ ) {\n let td = tds[j];\n \n if( ! arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] && ! arrayCellsWidthAutoHelper[parseInt( td.dataset.xIndex )] ) {\n if( td.style.width ) {\n arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] = parseFloat( td.style.width );\n td.removeAttribute( 'data-wptb-css-td-auto-width' );\n } else {\n if( ! td.dataset.wptbFixedWidth ) {\n arrayCellsWidthAutoHelper[parseInt( td.dataset.xIndex )] = 100;\n td.dataset.wptbCssTdAutoWidth = true;\n }\n }\n \n if( window.getComputedStyle( td, null ) ) {\n let tdStyleObj = window.getComputedStyle( td, null );\n let tdPaddingLeft = tdStyleObj.getPropertyValue( 'padding-left' );\n let tdPaddingRight = tdStyleObj.getPropertyValue( 'padding-right' );\n tdPaddingCommon = parseFloat( tdPaddingLeft, 10 ) + parseFloat( tdPaddingRight, 10 );\n\n let tableTdBorderLeftWidth = tdStyleObj.getPropertyValue( 'border-left-width' );\n let tableTdBorderRightWidth = tdStyleObj.getPropertyValue( 'border-right-width' );\n tableTdBorderCommonWidth = parseFloat( tableTdBorderLeftWidth, 10 ) + parseFloat( tableTdBorderRightWidth, 10 );\n if( arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] ) {\n arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] += tdPaddingCommon;\n arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] += tableTdBorderCommonWidth;\n } else {\n arrayCellsWidthAutoHelper[parseInt( td.dataset.xIndex )] += tdPaddingCommon;\n arrayCellsWidthAutoHelper[parseInt( td.dataset.xIndex )] += tableTdBorderCommonWidth;\n }\n }\n } else if( arrayCellsWidthAutoHelper[parseInt( td.dataset.xIndex )] ) {\n if( ! td.dataset.wptbFixedWidth ) {\n td.dataset.wptbCssTdAutoWidth = true;\n }\n } else if( arrayCellsWidthFixedHelper[parseInt( td.dataset.xIndex )] ) {\n td.removeAttribute( 'data-wptb-css-td-auto-width' );\n }\n }\n }\n \n for( let i = 0; i < arrayCellsWidthFixedHelper.length; i++ ) {\n if( arrayCellsWidthFixedHelper[i] ) {\n tableTdsSumMaxWidthFixed += arrayCellsWidthFixedHelper[i];\n }\n }\n \n let CellsWidthAutoCount = 0;\n for( let i = 0; i < arrayCellsWidthAutoHelper.length; i++ ) {\n if( arrayCellsWidthAutoHelper[i] ) {\n tableTdsSumMaxWidthAuto += arrayCellsWidthAutoHelper[i];\n CellsWidthAutoCount++;\n }\n }\n \n let tableFullStyleObj = window.getComputedStyle( table, null );\n let borderLeftWidth = tableFullStyleObj.getPropertyValue( 'border-left-width' );\n let borderRightWidth = tableFullStyleObj.getPropertyValue( 'border-right-width' );\n let tableBorderCommon = parseFloat( borderLeftWidth, 10 ) + parseFloat( borderRightWidth, 10 );\n tableTdsSumMaxWidth = tableTdsSumMaxWidthFixed + tableTdsSumMaxWidthAuto + tableBorderCommon;\n \n table.dataset.wptbTableTdsSumMaxWidth = tableTdsSumMaxWidth;\n if( CellsWidthAutoCount ) {\n table.dataset.wptbCellsWidthAutoCount = CellsWidthAutoCount;\n if( table.mergingСellsHorizontally ) {\n table.dataset.wptbFixedWidthSize = tableTdsSumMaxWidthFixed - tableBorderCommon;\n } else {\n table.removeAttribute( 'data-wptb-fixed-width-size' );\n }\n } else {\n table.removeAttribute( 'data-wptb-fixed-width-size' );\n table.removeAttribute( 'data-wptb-cells-width-auto-count' );\n }\n \n let styleElementCreate = false;\n let tableTdWidthAuto;\n if( tableTdsSumMaxWidth < wptbTableSetupWidth ) {\n if( CellsWidthAutoCount ) {\n table.style.minWidth = '100%';\n if( table.mergingСellsHorizontally ) {\n table.style.width = null;\n let tableTdsWidthAutoCommon = wptbTableSetupWidth - tableTdsSumMaxWidthFixed - tableBorderCommon;\n tableTdWidthAuto = tableTdsWidthAutoCommon / CellsWidthAutoCount;\n tableTdWidthAuto = tableTdWidthAuto - tdPaddingCommon - tableTdBorderCommonWidth;\n styleElementCreate = true;\n } else {\n table.style.width = '100%';\n }\n } else {\n table.style.width = null;\n table.style.minWidth = null;\n table.style.maxWidth = tableTdsSumMaxWidth + 'px';\n }\n } else {\n table.style.maxWidth = null;\n table.style.minWidth = tableTdsSumMaxWidth + 'px';\n table.style.width = null;\n tableTdWidthAuto = '100'\n styleElementCreate = true;\n }\n \n let head = document.head;\n if( head ) {\n let cssForTdsWidthAutoOld = head.querySelector( 'style[data-wptb-td-auto-width=\"true\"]' );\n if( cssForTdsWidthAutoOld ) {\n head.removeChild( cssForTdsWidthAutoOld );\n }\n }\n \n if( styleElementCreate ) {\n cssForTdsWidthAuto = document.createElement( 'style' );\n cssForTdsWidthAuto.setAttribute( 'data-wptb-td-auto-width', true );\n cssForTdsWidthAuto.innerHTML = '[data-wptb-css-td-auto-width=true]{width:' + tableTdWidthAuto + 'px}';\n if( head ) {\n head.appendChild( cssForTdsWidthAuto );\n }\n }\n }\n \n table.addRowHeight = function( value, cleaner ) {\n let highlighted = table.getElementsByClassName( 'wptb-highlighted' );\n if( highlighted.length > 0 ) {\n for( let k = 0; k < highlighted.length; k++ ) {\n let dataYIndex = highlighted[k].dataset.yIndex;\n if( dataYIndex ) {\n function tableTdsFor( dataYIndex, rowspan ) {\n let tableRows = table.rows;\n let heightIsSet = false;\n let arrayTdsPrevious = [];\n for( let i = 0; i < tableRows.length; i++ ) {\n let row = tableRows[i];\n let tds = row.children;\n for( let j = 0; j < tds.length; j++ ) {\n let td = tds[j];\n if( td.dataset.yIndex == dataYIndex ) {\n if( value ) {\n if( td.rowSpan == rowspan ) {\n td.style.height = value + 'px';\n td.removeAttribute( 'data-wptb-fixed-heidht' );\n heightIsSet = true;\n let tableColumnHeightAutoFixedCheckbox = document.getElementById( 'wptb-table-row-height-auto-fixed' );\n if( ! tableColumnHeightAutoFixedCheckbox.checked ) {\n tableColumnHeightAutoFixedCheckbox.checked = true;\n }\n continue;\n } else {\n td.style.height = null;\n td.dataset.wptbFixedHeight = value;\n if( j == tds.length - 1 && ! heightIsSet ) {\n tableTdsFor( dataYIndex , rowspan + 1 );\n }\n }\n } else if( cleaner ) {\n td.style.height = null;\n td.removeAttribute( 'data-wptb-fixed-heidht' );\n } else {\n if( td.dataset.wptbFixedHeight ) {\n if( td.rowSpan = rowspan ) {\n td.style.height = td.dataset.wptbFixedHeight + 'px';\n td.removeAttribute( 'data-wptb-fixed-width' );\n }\n } else if( td.style.height ) {\n for( let z = 0; z < arrayTdsPrevious.length; z++ ) {\n arrayTdsPrevious[z].style.height = td.style.height;\n }\n arrayTdsPrevious = [];\n } else {\n arrayTdsPrevious.push( td );\n }\n }\n } \n }\n }\n }\n \n tableTdsFor( dataYIndex, 1 );\n }\n }\n }\n }\n \n table.reconstraction = function() {\n let tds = table.getElementsByTagName( 'td' );\n table.mergingСellsHorizontally = false;\n table.mergingCellsVertically = false;\n table.dataset.reconstraction = 1;\n let forBreak = 0;\n for( let i = 0; i < tds.length; i++ ) {\n if( tds[i].colSpan > 1 ) {\n table.dataset.reconstraction = 0;\n table.mergingСellsHorizontally = true;\n forBreak++;\n }\n \n if( tds[i].rowSpan > 1 ) {\n table.dataset.reconstraction = 0;\n table.mergingCellsVertically = true;\n forBreak++;\n }\n \n if( forBreak == 2 ) {\n break;\n }\n }\n }\n\n /*\n * As simple as it is: adds a column to the end of table.\n */\n table.addColumnEnd = function () {\n let td,\n currentTable = document.getElementsByClassName('wptb-preview-table'),\n currentTableTd,\n currentTdStyle;\n if (currentTable.length > 0) {\n currentTableTd = currentTable[0].querySelector('td');\n }\n\n if (currentTableTd) {\n currentTdStyle = currentTableTd.getAttribute('style');\n }\n \n for (var i = 0; i < table.rows.length; i++) {\n td = new WPTB_Cell(mark);\n \n if (currentTdStyle) {\n td.getDOMElement().setAttribute('style', currentTdStyle);\n td.getDOMElement().style.width = null;\n }\n \n table.rows[i].appendChild(td.getDOMElement());\n array[i].push(0);\n }\n \n maxAmountOfCells++;\n table.recalculateIndexes();\n table.tdDefaultWidth();\n table.addRowHeight();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * As simple as it looks: adds a column to the start of table.\n */\n\n table.addColumnStart = function () {\n let td,\n firstCell,\n currentTable = document.getElementsByClassName('wptb-preview-table'),\n currentTableTd,\n currentTdStyle;\n if ( currentTable.length > 0 ) {\n currentTableTd = currentTable[0].querySelector('td');\n }\n\n if ( currentTableTd ) {\n currentTdStyle = currentTableTd.getAttribute('style');\n }\n \n for (var i = 0; i < table.rows.length; i++) {\n td = new WPTB_Cell(mark);\n if (currentTdStyle) {\n td.getDOMElement().setAttribute('style', currentTdStyle);\n td.getDOMElement().style.width = null;\n }\n firstCell = table.rows[i].getElementsByTagName('td')[0];\n if (firstCell) {\n table.rows[i].insertBefore(td.getDOMElement(), firstCell);\n } else {\n table.rows[i].appendChild(td.getDOMElement());\n }\n array[i].push(0);\n }\n\n maxAmountOfCells++;\n table.recalculateIndexes();\n table.tdDefaultWidth();\n table.addRowHeight();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * Well, not so simple as previous functions.\n * It adds a column after a certain column of reference.\n * @param integer the column number to be used as reference.\n *\tIf empty, then the first highlighted cell is used as reference.\n */\n\n table.addColumnAfter = function (c_pos) {\n let rows = table.rows,\n cellPointer,\n cellsBuffer,\n cell = document.querySelector('.wptb-highlighted'),\n cellStyle = cell.getAttribute('style'),\n pos = c_pos != undefined && typeof c_pos === 'number' ? c_pos : getCoords(cell)[1];\n \n \n \n if( maxAmountOfCells - pos - cell.colSpan + 1 == 1 ) {\n table.addColumnEnd();\n } else {\n let pendingInsertion = false,\n stepsToMove,\n td, bro,\n carriedRowspans = [],\n currentCell;\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n carriedRowspans.push(0);\n }\n\n for (var i = 0; i < rows.length; i++) {\n cellPointer = 0;\n cellsBuffer = rows[i].getElementsByTagName('td');\n pendingInsertion = false;\n for (var xPosition = 0;\n xPosition < maxAmountOfCells;\n xPosition += stepsToMove) {\n stepsToMove = 1;\n\n if (pendingInsertion) {\n td = new WPTB_Cell(mark);\n if (cellStyle) {\n td.getDOMElement().setAttribute('style', cellStyle);\n td.getDOMElement().style.width = null;\n }\n if (currentCell && rows[i].contains(currentCell)) {\n bro = currentCell.nextSibling;\n if (bro) {\n rows[i].insertBefore(td.getDOMElement(), bro);\n } else {\n rows[i].appendChild(td.getDOMElement());\n }\n } else {\n rows[i].insertBefore(td.getDOMElement(), cellsBuffer[0]);\n }\n break;\n } else if (carriedRowspans[xPosition] > 0) {\n // If no pending insertion, let's check if no rowspan from upper cells is pending in current position\n if (pos == xPosition) {\n pendingInsertion = true;\n }\n } else {\n currentCell = cellsBuffer[cellPointer++];\n if (currentCell.rowSpan > 1) {\n stepsToMove = currentCell.colSpan;\n for (var k = 0; k < currentCell.colSpan; k++) {\n carriedRowspans[xPosition + k] = currentCell.rowSpan;\n if (xPosition + k == pos) {\n pendingInsertion = true;\n }\n }\n } else if (currentCell.colSpan > 1) {\n stepsToMove = currentCell.colSpan;\n for (var k = 0; k < currentCell.colSpan; k++) {\n if (xPosition + k == pos) {\n pendingInsertion = true;\n }\n }\n } else if (xPosition == pos) {\n pendingInsertion = true;\n }\n }\n }\n\n for (var l = 0; l < maxAmountOfCells; l++) {\n if (carriedRowspans[l] > 0)\n carriedRowspans[l]--;\n }\n\n }\n\n for (var i = 0; i < array.length; i++) {\n array[i].push(0);\n }\n maxAmountOfCells++;\n drawTable(array);\n table.recalculateIndexes();\n table.addColumnWidth();\n table.addRowHeight();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n }\n };\n\n /*\n * For preventing us to take a lot of time,\n * This is just calling the function addColumnAfter, but\n * using the previous column to current one as reference.\n * @see addColumnAfter\n */\n\n table.addColumnBefore = function () {\n var cell = document.querySelector('.wptb-highlighted'),\n pos = getCoords(cell)[1];\n\n if (pos === 0) {\n table.addColumnStart();\n } else {\n table.addColumnAfter(pos - 1);\n }\n };\n\n /*\n * Luckily, thisfunction is simple, \n * it just add a row to the end of table.\n */\n\n table.addRowToTheEnd = function () {\n let r = table.insertRow(-1),\n td,\n aux,\n currentTable = document.getElementsByClassName('wptb-preview-table'),\n currentTableTd,\n currentTdStyle;\n r.classList.add( 'wptb-row' );\n if (currentTable.length > 0) {\n currentTableTd = currentTable[0].querySelector('td');\n }\n\n if (currentTableTd) {\n currentTdStyle = currentTableTd.getAttribute('style');\n }\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n td = new WPTB_Cell(mark);\n if (currentTdStyle) {\n td.getDOMElement().setAttribute('style', currentTdStyle);\n }\n r.appendChild(td.getDOMElement());\n }\n aux = Array.from(array[0]);\n array.push(aux);\n drawTable(array);\n table.recalculateIndexes();\n table.addColumnWidth();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * Yet another simple function, \n * it just add a row to the start of table.\n */\n\n table.addRowToTheStart = function () {\n let r = table.insertRow(0),\n td,\n aux,\n currentTable = document.getElementsByClassName('wptb-preview-table'),\n currentTableTd,\n currentTdStyle;\n r.classList.add( 'wptb-row' );\n if (currentTable.length > 0) {\n currentTableTd = currentTable[0].querySelector('td');\n }\n\n if (currentTableTd) {\n currentTdStyle = currentTableTd.getAttribute('style');\n }\n\n for (var i = 0; i < maxAmountOfCells; i++) {\n td = new WPTB_Cell(mark);\n if (currentTdStyle) {\n td.getDOMElement().setAttribute('style', currentTdStyle);\n }\n r.appendChild(td.getDOMElement());\n }\n aux = Array.from(array[0]);\n array.push(aux);\n drawTable(array);\n table.recalculateIndexes();\n table.addColumnWidth();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /* \n * This function adds a row before the current one.\n * Since the biggest factor of problem is a not-started but ongoing rowspan,\n * the most of the troubles is not here.\n */\n\n table.addRowBefore = function () {\n let cell = document.querySelector('.wptb-highlighted'),\n cellStyle = cell.getAttribute('style'),\n row = getCoords(cell)[0],\n cellNew;\n for( let i = row - 1; i >= 0; i-- ) {\n let rowChildren = table.rows[i].children;\n let rowChildrenLength = rowChildren.length;\n if( rowChildrenLength > 0 ) {\n for( let j = 0; j < rowChildrenLength; j++ ) {\n if( rowChildren[j].rowSpan == 1 ) {\n row = i;\n cellNew = true;\n break;\n }\n }\n }\n if ( cellNew ) {\n break;\n }\n }\n\n if (row === 0) {\n table.addRowToTheStart();\n } else {\n table.addRowAfter( row, cellStyle );\n }\n };\n\n /*\n * Well... by the name convention of the previous 3 functions,\n * it's pretty obvious that this functions attaches a new\n * row after highlighted cell row. The greatest obstacle it was\n * the possibility of a TR not having the exact amount of columns\n * occuped by actual node but rowspanned upper cells. For that purpose\n * it was created the function realTimeArray.\n * @see realTimeArray\n */\n\n table.addRowAfter = function ( row, cellStyle ) {\n let cellRowSpan,\n rowAfter,\n aux;\n \n if ( ( row == undefined || typeof row !== 'number' ) && cellStyle == undefined ) {\n let cell = document.querySelector('.wptb-highlighted');\n cellStyle = cell.getAttribute('style'),\n row = getCoords(cell)[0],\n cellRowSpan = cell.rowSpan,\n rowAfter = row + cellRowSpan - 1;\n } else {\n rowAfter = row;\n }\n \n \n let cellsColSpan = 0;\n if ( rowAfter < table.rows.length -1 ) {\n for( let i = 0; i <= rowAfter ; i++ ) {\n let tableRowsIChildren = table.rows[i].children,\n tableRIChildrenLength = tableRowsIChildren.length;\n if( tableRIChildrenLength > 0 ) {\n for( let j = 0; j < tableRIChildrenLength; j++ ) {\n let rowIRowSpan = tableRowsIChildren[j].rowSpan;\n\n if ( rowIRowSpan - 1 + i > rowAfter ) {\n tableRowsIChildren[j].rowSpan++;\n }\n }\n }\n }\n \n let rNext = table.rows[rowAfter + 1],\n rNextChildren = rNext.children,\n rNextChildrenLength = rNextChildren.length;\n \n if( rNextChildrenLength > 0 ) {\n for ( let i = 0; i < rNextChildrenLength; i++ ) {\n cellsColSpan += rNextChildren[i].colSpan;\n }\n }\n } else {\n cellsColSpan = array[0].length;\n }\n \n let r = table.insertRow( rowAfter + 1 );\n r.classList.add( 'wptb-row' );\n \n for ( j = 0; j < cellsColSpan; j++ ) {\n let td = new WPTB_Cell( mark );\n td.getDOMElement().setAttribute( 'style', cellStyle );\n td.getDOMElement().style.width = null;\n td.getDOMElement().style.height = null;\n r.appendChild( td.getDOMElement() );\n }\n\n aux = Array.from(array[0]);\n array.push(aux);\n drawTable(array);\n table.recalculateIndexes();\n table.addColumnWidth();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * This function checks the current selected cells\n * make a rectangular shape.\n * @param Array the abstract table.\n * @return false, if not making a rectangle, or\n *\tArray an array containing number of rows and columns, if selection makes a rectangle.\n */\n\n table.isSquare = function (a) {\n var rowStart = -1,\n columnStart = -1,\n rowEnd = -1,\n columnEnd = -1,\n height,\n width,\n itemsEstimate = 0,\n items = 0;\n\n for (var i = 0; i < a.length; i++) {\n for (var j = 0; j < a[i].length; j++) {\n if (a[i][j] == 1) {\n if ( j < columnStart || columnStart == -1 ) {\n columnStart = j;\n }\n if ( i < rowStart || rowStart == -1 ) {\n rowStart = i;\n }\n }\n }\n \n }\n\n for (var i = a.length - 1; i > -1; i--) {\n for (var j = a[i].length - 1; j > -1; j--) {\n if (a[i][j] == 1) {\n if ( j > columnEnd ) {\n columnEnd = j;\n }\n if ( i > rowEnd ) {\n rowEnd = i;\n }\n }\n }\n }\n\n for (var i = rowStart; i < rowEnd; i++) {\n for (var j = columnStart; j < columnEnd; j++) {\n if (a[i][j] == 0 || a[i][j] == undefined) {\n return false;\n }\n }\n }\n\n for (var i = 0; i < a.length; i++) {\n for (var j = 0; j < a[i].length; j++) {\n if (a[i][j] == 1) {\n items++;\n }\n }\n }\n\n height = rowEnd - rowStart + 1;\n width = columnEnd - columnStart + 1;\n itemsEstimate = height * width;\n\n if (itemsEstimate !== items) {\n return false;\n }\n return [height, width];\n };\n\n /*\n * This function merges all selected cells.\n * Well, actually sets the colspan and rowspan of first \n * upper left cell in selection and deletes the another selected cells.\n */\n\n table.mergeCells = function () {\n var dimensions = table.isSquare(array),\n rowspan = dimensions[0],\n colspan = dimensions[1],\n first = document.querySelector('.wptb-highlighted'),\n tds = [].slice.call(document.getElementsByClassName('wptb-highlighted'), 1),\n tdsChildrenNew = [];\n\n for (let i = 0; i < tds.length; i++) {\n let tdsInternalElements = tds[i].getElementsByClassName('wptb-ph-element');\n if (tdsInternalElements.length > 0) {\n let tdsIntElemLength = tdsInternalElements.length;\n for (let j = 0; j < tdsIntElemLength; j++) {\n tdsChildrenNew.push(tdsInternalElements[j]);\n }\n }\n let p = tds[i].parentNode;\n p.removeChild(tds[i]);\n }\n if (tdsChildrenNew.length > 0) {\n for (let i = 0; i < tdsChildrenNew.length; i++) {\n first.appendChild(tdsChildrenNew[i]);\n }\n }\n\n first.colSpan = colspan;\n first.rowSpan = rowspan;\n table.recalculateIndexes();\n table.reconstraction();\n let firstWidth = first.style.width;\n let firstDataFixedWidth = first.dataset.wptbFixedWidth;\n if( firstWidth ) {\n table.addColumnWidth( parseFloat( firstWidth, 10 ) );\n } else if( firstDataFixedWidth ) {\n table.addColumnWidth();\n } else {\n table.addColumnWidth( false, true );\n }\n \n let firstHeight = first.style.height;\n let firstDataFixedHeight = first.dataset.wptbFixedHeight;\n if( firstHeight ) {\n table.addRowHeight( parseFloat( firstHeight, 10 ) );\n } else if( firstDataFixedHeight ) {\n table.addRowHeight();\n } else {\n table.addRowHeight( false, true );\n }\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * This functions makes the exact inverse as above.\n * It resets colspan and rowspan and appends \n * the same amount in cells to the table.\n * @bug\n */\n\n table.splitCell = function () {\n var cell = document.getElementsByClassName('wptb-highlighted')[0],\n rowspan = cell.rowSpan,\n colspan = cell.colSpan,\n cellStyles = cell.getAttribute('style'),\n row = getCoords(cell)[0],\n thisRow = table.rows[row],\n cellXIndex =cell.dataset.xIndex;\n \n cell.rowSpan = 1;\n cell.colSpan = 1;\n \n for (let i = 1; i < colspan; i++) {\n let td = new WPTB_Cell(mark);\n td.getDOMElement().setAttribute('style', cellStyles);\n td.getDOMElement().classList.add( 'wptb-highlighted' );\n if ( cell.nextSibling ) {\n thisRow.insertBefore( td.getDOMElement(), cell.nextSibling );\n } else {\n thisRow.appendChild( td.getDOMElement() );\n }\n \n }\n\n if (rowspan > 1) {\n for (let i = 1; i < rowspan; i++) {\n let rowChildInsertBefore = undefined,\n rowNext = table.rows[row + i],\n rowChildren = rowNext.children,\n rowChildrenLength = rowChildren.length;\n \n if ( rowChildrenLength > 0 ) {\n for ( let k = 0; k < rowChildrenLength; k++ ) {\n if ( Number( rowChildren[k].dataset.xIndex ) > Number( cellXIndex ) ) {\n rowChildInsertBefore = rowChildren[k];\n break;\n } \n }\n }\n for ( let j = 0; j < colspan; j++ ) {\n let td = new WPTB_Cell( mark );\n td.getDOMElement().setAttribute( 'style', cellStyles );\n if ( rowChildInsertBefore != undefined ) {\n rowNext.insertBefore( td.getDOMElement(), rowChildInsertBefore );\n } else {\n rowNext.appendChild( td.getDOMElement() );\n }\n }\n }\n }\n\n table.recalculateIndexes();\n table.reconstraction();\n table.addColumnWidth();\n table.addRowHeight();\n WPTB_Helper.dataTitleColumnSet( table );\n undoSelect();\n };\n\n /*\n * Searches for rowspanned cells up to row number meeting it.\n * @param number the number of row where the function\n * must search up to.\n */\n\n table.findRowspannedCells = function (row) {\n var array = [],\n difference;\n actualPoints = getActualPointsInRow(row);\n if (actualPoints === maxAmountOfCells) {\n return [];\n }\n difference = maxAmountOfCells - actualPoints;\n\n for (var i = row - 1; i >= 0 && difference; i--) {\n var tds = table.rows[i].getElementsByTagName('td');\n for (var i = 0; i < tds.length; i++) {\n if (tds[i].rowSpan > 1) {\n array.push(tds[i]);\n difference -= tds[i].colSpan;\n }\n }\n }\n return array;\n\n }\n\n /*\n * This function explores the table and adds \n * a cell for each lacking one for each row\n * to meet an even amount of cells.\n */\n\n table.addLackingCells = function () {\n var sumRows = [];\n for (var i = 0; i < table.rows.length; i++) {\n sumRows.push(0);\n }\n\n for (var i = 0; i < table.rows.length; i++) {\n var tds = table.rows[i].getElementsByTagName('td');\n for (var j = 0; j < tds.length; j++) {\n if (tds[j].rowSpan > 1) {\n for (var k = 1; k < tds[j].rowSpan; k++) {\n sumRows[i + k]++;\n }\n }\n }\n }\n\n for (var i = 0; i < table.rows.length; i++) {\n var tds = table.rows[i].getElementsByTagName('td'),\n totalColspan = 0;\n for (var j = 0; j < tds.length; j++) {\n totalColspan += tds[j].colSpan;\n }\n totalColspan += sumRows[i];\n difference = maxAmountOfCells - totalColspan;\n for (var j = 0; j < difference; j++) {\n var td = new WPTB_Cell(mark);\n table.rows[i].appendChild(td.getDOMElement());\n //table.rows[i].insertBefore( td.getDOMElement(), rows[i].nextSibling );\n }\n }\n };\n\n /*\n * This function deletes the row of currently\n * selected cell. \n */\n\n table.deleteRow = function () {\n let cell = document.querySelector('.wptb-highlighted'),\n cellStyles = cell.getAttribute('style'),\n rowspan = cell.rowSpan,\n row = getCoords(cell)[0],\n thisRow,\n aux;\n \n if ( rowspan == undefined ) rowspan = 1;\n \n for ( let i = 0; i < rowspan; i++ ) {\n thisRow = table.rows[row];\n let thisRowChildren = thisRow.children,\n nextRow = table.rows[row + 1],\n nextRowChildren,\n nextRowChildrenLength,\n tdArr = [];\n\n if( nextRow != undefined ) {\n nextRowChildren = nextRow.children;\n nextRowChildrenLength = nextRowChildren.length;\n for (let j = 0; j < thisRowChildren.length; j++) {\n if ( thisRowChildren[j].rowSpan > 1 ) {\n let td = new WPTB_Cell(mark);\n td.getDOMElement().setAttribute('style', cellStyles);\n td.getDOMElement().colSpan = thisRowChildren[j].colSpan;\n td.getDOMElement().rowSpan = thisRowChildren[j].rowSpan - 1;\n\n let nextRowChildrenK = undefined;\n for ( let k = 0; k < nextRowChildrenLength; k++ ) {\n if ( Number( nextRowChildren[k].dataset.xIndex ) > Number( thisRowChildren[j].dataset.xIndex ) ) {\n nextRowChildrenK = nextRowChildren[k];\n break;\n } \n }\n\n if ( nextRowChildrenK ) {\n tdArr.push( [td, nextRowChildrenK] );\n } else {\n tdArr.push( [td] );\n }\n }\n }\n\n if ( tdArr.length > 0 ) {\n for ( let k = 0; k < tdArr.length; k++ ) {\n if ( tdArr[k][1] != undefined ) {\n nextRow.insertBefore( tdArr[k][0].getDOMElement(), tdArr[k][1] );\n } else {\n nextRow.appendChild( tdArr[k][0].getDOMElement() );\n }\n }\n }\n }\n \n let tableRows = table.rows;\n if ( tableRows.length > 0 ) {\n for ( let j = 0; j < row; j++ ) {\n let jRowChildren = tableRows[j].children;\n if ( jRowChildren.length > 0 ) {\n for ( let x = 0; x < jRowChildren.length; x++ ) {\n if ( jRowChildren[x].rowSpan - 1 >= row - j ) {\n jRowChildren[x].rowSpan--;\n }\n }\n }\n }\n }\n aux = Array.from(array[0]);\n array.pop(aux);\n drawTable(array);\n table.getElementsByTagName('tbody')[0].removeChild(table.rows[row]);\n \n if( table.rows.length == 0 ) {\n table.toggleTableEditMode();\n wptbTableSetup.innerHTML = '';\n WPTB_Helper.settingsPanelClear();\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\n }\n \n table.recalculateIndexes();\n WPTB_Helper.dataTitleColumnSet( table );\n }\n undoSelect();\n }\n\n /*\n * This function deletes the column of currently\n * selected cell. Again, this is way more complicated than\n * delete row case.\n */\n\n table.deleteColumn = function () {\n let cell = document.querySelector('.wptb-highlighted'),\n cellXIndex = cell.dataset.xIndex,\n colspan = cell.colSpan;\n \n for ( let i = 0; i < colspan; i++ ) {\n for ( let j = 0; j < table.rows.length; j++ ) {\n let rowChildren = table.rows[j].children;\n let rowChildrenLength = rowChildren.length;\n if( rowChildrenLength > 0 ) {\n for ( let k = rowChildrenLength - 1; k >= 0; k-- ) {\n if ( Number( rowChildren[k].dataset.xIndex ) == Number( cellXIndex ) ) {\n if ( rowChildren[k].colSpan > 1 ) {\n rowChildren[k].colSpan--;\n } else {\n table.rows[j].removeChild( rowChildren[k] );\n }\n break;\n } else if( Number( rowChildren[k].dataset.xIndex ) < Number( cellXIndex ) && \n Number( rowChildren[k].dataset.xIndex ) + \n Number( rowChildren[k].colSpan -1 ) >= cellXIndex ) {\n if ( rowChildren[k].colSpan > 1 ) {\n rowChildren[k].colSpan--;\n }\n break;\n }\n }\n }\n }\n \n for ( let j = 0; j < table.rows.length; j++ ) {\n if (array[j] != undefined)\n array[j].pop();\n }\n \n maxAmountOfCells--;\n \n if( table.querySelectorAll( 'td' ).length == 0 ) {\n table.toggleTableEditMode();\n wptbTableSetup.innerHTML = '';\n WPTB_Helper.settingsPanelClear();\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'table';\n }\n \n table.recalculateIndexes();\n table.tdDefaultWidth();\n WPTB_Helper.dataTitleColumnSet( table );\n }\n undoSelect();\n };\n\n document.getElementsByClassName('wptb-table-generator')[0].style.display = 'none';\n\n array = fillTableArray();\n\n undoSelect();\n drawTable(array);\n\n wptbTableSetup.appendChild(table);\n //if (columns || rows) {\n table.recalculateIndexes( true );\n //}\n table.reconstraction();\n table.tdDefaultWidth();\n \n wptbTableSetup.onresize = function() {\n table.tdDefaultWidth();\n };\n\n WPTB_LeftPanel();\n \n // this code gets the ID of the active element in the toolbar \n // and stores it in the data attribute of the common container element \"wpcd_fixed_toolbar\"\n// let wptbPhElement = document.getElementsByClassName( 'wptb-ph-element' );\n// let wpcdFixedToolbar = document.getElementById( 'wpcd_fixed_toolbar' );\n// for ( let i = 0; i < wptbPhElement.length; i++ ) {\n// wptbPhElement[i].addEventListener( 'click', function( e ) {\n// let wptbToolbar = document.getElementById( 'wpcd_fixed_toolbar' ).children;\n// for ( let j = 0; j < wptbToolbar.length; j++ ) {\n// let elementStyles = window.getComputedStyle( wptbToolbar[j], 'null' );\n// if( elementStyles.getPropertyValue( 'display' ) == 'block' ) {\n// wpcdFixedToolbar.dataset.toolbarActiveId = wptbToolbar[j].getAttribute( 'id' );\n// }\n// }\n// }, false );\n// }\n \n// let wptbPanelLeft = document.getElementsByClassName( 'wptb-panel-left' );\n// if( wptbPanelLeft.length > 0 ) {\n// wptbPanelLeft[0].addEventListener( 'click', function( e ) {\n// let toolbarActiveElementId = wpcdFixedToolbar.dataset.toolbarActiveId;\n// document.getElementById( toolbarActiveElementId ).style.display = '';\n// }, false );\n// }\n \n// let body = document.getElementsByTagName( 'body' );\n// if( body.length > 0 ) {\n// body[0].addEventListener( 'click', function( e ) {\n// if ( e.target.classList.contains( 'wptb-panel-left' ) || WPTB_Helper.findAncestor( e.target, 'wptb-panel-left' ) ) {\n// let toolbarActiveElementId = wpcdFixedToolbar.dataset.toolbarActiveId;\n// document.getElementById( toolbarActiveElementId ).style.display = '';\n// }\n// }, false );\n// }\n};","var WPTB_Text = function ( text , DOMElementProt ) {\n let DOMElement = document.createElement('div'),\n elText2 = document.createElement('div'),\n elP = document.createElement('p'),\n kindIndexProt = undefined,\n copy = false;\n \n DOMElement.classList.add( 'wptb-text-container' );\n\n elP.innerHTML = text != undefined ? text : 'Text';\n elText2.appendChild(elP);\n DOMElement.appendChild(elText2);\n if ( DOMElementProt ) {\n let wptbElementMutch = DOMElementProt.className.match( /wptb-element-((.+-)\\d+)/i );\n if ( wptbElementMutch && Array.isArray( wptbElementMutch ) ) {\n kindIndexProt = wptbElementMutch[1];\n copy = true;\n };\n\n let attributes = [...DOMElementProt.attributes];\n for( let i = 0; i < attributes.length; i++ ) {\n DOMElement.setAttribute(attributes[i].name, attributes[i].value);\n }\n } \n\n this.kind = 'text';\n this.getDOMElement = function () {\n return DOMElement;\n };\n applyGenericItemSettings( this, kindIndexProt, copy );\n\n return this;\n};","var WPTB_innerElementSet = function ( element ) {\n \n function newElementProxy(el) {\n if (el == 'list') {\n return new WPTB_List();\n } else if (el == 'image') {\n return new WPTB_Image();\n } else if (el == 'text') {\n return new WPTB_Text();\n } else if (el == 'button') {\n return new WPTB_Button();\n }\n }\n \n element.ondragenter = function (e) {\n var div;\n if ( e.dataTransfer.types.indexOf( 'wptbelement' ) == -1 && e.dataTransfer.types.indexOf( 'wptb-moving-mode' ) == -1 ) {\n return;\n }\n WPTB_DropHandle(this, e);\n \n element.classList.add( 'wptb-ondragenter' );\n }\n element.ondragover = function (e) {\n e.preventDefault();\n WPTB_DropHandle(this, e);\n }\n element.ondragleave = function () {\n \n }\n element.ondrop = function(e) {\n this.classList.remove( 'wptb-ondragenter' );\n let element, classId;\n e.preventDefault();\n e.stopPropagation();\n\n if (!e.dataTransfer.getData('wptbElement') && !e.dataTransfer.getData('node')) {\n return;\n }\n let wptbDropHandle,\n wptbDropBorderMarker;\n if ( document.getElementsByClassName( 'wptb-drop-handle' ).length > 0 ) {\n wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' )[0];\n }\n if( document.getElementsByClassName( 'wptb-drop-border-marker' ).length > 0 ) {\n wptbDropBorderMarker = document.getElementsByClassName( 'wptb-drop-border-marker' )[0];\n }\n\n if ( e.dataTransfer.getData( 'wptbElement' ) ) {\n element = newElementProxy( e.dataTransfer.getData( 'wptbElement' ) );\n element = element.getDOMElement();\n } else {\n classId = e.dataTransfer.getData( 'node' );\n element = document.getElementsByClassName( classId )[0];\n element.classList.remove( 'wptb-moving-mode' );\n }\n \n if( wptbDropHandle.style.display == 'block' ) {\n let td;\n if( wptbDropHandle.dataset.text == 'Drop Here' ) {\n td = wptbDropHandle.getDOMParentElement();\n td.appendChild( element );\n } else {\n let innerElement = wptbDropHandle.getDOMParentElement();\n td = innerElement.parentNode;\n\n if( wptbDropHandle.dataset.text == 'Abowe Element' ) {\n td.insertBefore( element, innerElement );\n } else if( wptbDropHandle.dataset.text == 'Below Element' ) {\n let innerElementNext = innerElement.nextSibling;\n td.insertBefore( element, innerElementNext );\n }\n }\n let thisRow = td.parentNode\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n \n } else {\n return;\n }\n \n wptbDropHandle.style.display = 'none';\n wptbDropBorderMarker.style.display = 'none';\n\n WPTB_innerElementSet( element );\n\n return true;\n }\n element.onmouseover = function(e) {\n element.classList.remove( 'wptb-ondragenter' );\n }\n}","var applyGenericItemSettings = function ( element, kindIndexProt, copy = false ) {\n var node = element.getDOMElement(),\n index,\n listItems,\n copy;\n \n if ( kindIndexProt == undefined || copy == true ) {\n index = document.counter.nextIndex( element.kind );\n let wptbElements = document.getElementsByClassName( 'wptb-ph-element' );\n let elementIndexesArr = [];\n for( let i = 0; i < wptbElements.length; i++ ) {\n var regex = new RegExp( 'wptb-element-' + element.kind + '-(\\\\d+)', \"i\" );\n let infArr = wptbElements[i].className.match( regex );\n if( infArr ) {\n elementIndexesArr.push( infArr[1] );\n }\n }\n if( elementIndexesArr.length > 0 ) {\n let elementIndexMax = Math.max( ...elementIndexesArr );\n index = elementIndexMax + 1;\n } else { \n index = 1;\n }\n } else if ( kindIndexProt && ! copy ) {\n index = kindIndexProt.split('-')[1];\n }\n \n node.onmouseenter = function (event) {\n this.classList.add('wptb-directlyhovered');\n let btnDelete = document.createElement( 'span' ),\n btnCopy = document.createElement( 'span' ),\n btnMove = document.createElement( 'span' ),\n actions = document.createElement( 'span' ), i;\n\n actions.classList.add('wptb-actions');\n btnDelete.classList.add('dashicons', 'dashicons-trash', 'wptb-delete-action');\n btnCopy.classList.add('dashicons', 'dashicons-admin-page', 'wptb-duplicate-action');\n btnMove.classList.add(\"dashicons\", \"dashicons-move\", 'wptb-move-action');\n btnMove.draggable = true;\n btnDelete.onclick = function (event) {\n let act = this.parentNode.parentNode,\n el = act.parentNode;\n el.removeChild(act);\n \n if( act.kind == 'text' ) {\n let thisRow = el.parentNode\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n }\n \n };\n btnCopy.onclick = function (event) {\n let copy;\n if (element.kind == 'list') {\n var td = event.target.parentNode.parentNode.parentNode,\n temp = [],\n srcList = event.target.parentNode.parentNode.querySelectorAll('ul li .wptb-list-item-content');\n\n for (var i = 0; i < srcList.length; i++) {\n temp.push(srcList[i].innerHTML);\n }\n\n copy = new WPTB_List( temp, node );\n\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\n } else if (element.kind == 'text') {\n var td = event.target.parentNode.parentNode.parentNode;\n copy = new WPTB_Text(event.target.parentNode.parentNode.childNodes[0].innerHTML, node);\n\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\n } else if ( element.kind == 'image' ) {\n var td = event.target.parentNode.parentNode.parentNode;\n copy = new WPTB_Image( event.target.parentNode.parentNode.children[0].children[0].src, node );\n\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\n } else {\n var td = event.target.parentNode.parentNode.parentNode,\n text = event.target.parentNode.parentNode.childNodes[0].querySelector( 'p' ).innerHTML;\n copy = new WPTB_Button( text, node );\n\n node.parentNode.insertBefore( copy.getDOMElement(), node.nextSibling );\n }\n \n WPTB_innerElementSet( copy.getDOMElement() );\n };\n let parent = this,\n infArr,\n type;\n infArr = parent.className.match(/wptb-element-(.+)-(\\d+)/i);\n type = infArr[1];\n let dragImagesArr = WPTB_Helper.dragImagesArr();\n btnMove.ondragstart = function (event) {\n this.parentNode.style.opacity = 0;\n parent.classList.remove( 'wptb-directlyhovered' );\n parent.classList.add( 'wptb-moving-mode' );\n \n event.dataTransfer.setDragImage( dragImagesArr[type], 0, 0 );\n event.dataTransfer.setData( 'node', 'wptb-element-' + infArr[1] + '-' + infArr[2] );\n event.dataTransfer.setData( 'wptb-moving-mode', 'wptb-element-' + infArr[1] + '-' + infArr[2] );\n event.dataTransfer.setData( 'wptbElIndic-' + infArr[1], 'wptbElIndic-' + infArr[1] );\n let act = event.target.parentNode.parentNode;\n if( act.kind == 'text' ) {\n let thisRow = el.parentNode\n if( thisRow.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( thisRow, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n }\n };\n\n if (element.kind === 'button') {\n let a = node.querySelector( 'a' ),\n target = a.querySelector( 'div' );\n a.onclick = function( e ) {\n e.preventDefault();\n }\n WPTB_Helper.buttonsTinyMceInit( target );\n } else if (element.kind === 'text') {\n tinyMCE.init({\n target: node.childNodes[0],\n inline: true,\n plugins: \"link, paste\",\n dialog_type: \"modal\",\n theme: 'modern',\n menubar: false,\n fixed_toolbar_container: '#wpcd_fixed_toolbar',\n paste_as_text: true,\n toolbar: 'bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify',\n setup : function( ed ) {\n ed.on( 'change', function(e) {\n let row = WPTB_Helper.findAncestor( node, 'wptb-row' );\n if( row.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( row, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n });\n },\n init_instance_callback: function (editor) {\n window.currentEditor = editor;\n //editor.fire('focus');\n editor.on('focus', function (e) {\n var totalWidth = document.getElementsByClassName('wptb-builder-panel')[0].offsetWidth;\n if (window.currentEditor &&\n document.getElementById('wptb_builder').scrollTop >= 55 &&\n window.currentEditor.bodyElement.style.display != 'none') {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'fixed';\n document.getElementById('wpcd_fixed_toolbar').style.right = (totalWidth / 2 - document.getElementById('wpcd_fixed_toolbar').offsetWidth / 2) + 'px';\n document.getElementById('wpcd_fixed_toolbar').style.top = '100px';\n } else {\n document.getElementById('wpcd_fixed_toolbar').style.position = 'static';\n delete document.getElementById('wpcd_fixed_toolbar').style.right;\n delete document.getElementById('wpcd_fixed_toolbar').style.top;\n }\n });\n }\n });\n \n } else {\n listItems = node.getElementsByClassName( 'wptb-list-item-content' );\n for ( let i = 0; i < listItems.length; i++ ) {\n WPTB_Helper.listItemsTinyMceInit( listItems[i] );\n }\n }\n\n actions.appendChild(btnMove);\n actions.appendChild(btnCopy);\n actions.appendChild(btnDelete);\n this.appendChild( actions );\n };\n\n node.onmouseleave = function ( event ) {\n this.classList.remove( 'wptb-directlyhovered' );\n let iter = 0;\n while( event.target.querySelector( '.wptb-actions' ) && iter < 5 ) {\n event.target.querySelector( '.wptb-actions' ).remove();\n iter++;\n }\n };\n \n // Change data-title-column if the title was changed\n if( element.kind == 'text' ) {\n var observer = new MutationObserver( function( mutations ) {\n let row = WPTB_Helper.findAncestor( node, 'wptb-row' );\n if( row.classList.contains( 'wptb-table-head' ) ) {\n let table = WPTB_Helper.findAncestor( row, 'wptb-preview-table' );\n WPTB_Helper.dataTitleColumnSet( table );\n }\n });\n var config = { attributes: true, attributeFilter: ['style'] };\n observer.observe( element.getDOMElement(), config );\n }\n\n let node_wptb_element_kind_num = node.className.match(/wptb-element-(.+)-(\\d+)/i);\n if ( node_wptb_element_kind_num ) {\n node.classList.remove( node_wptb_element_kind_num[0] );\n }\n if ( ! node.classList.contains( 'wptb-ph-element' ) ) {\n node.classList.add( 'wptb-ph-element' );\n if( ! node.classList.contains( 'wptb-element-' + element.kind + '-' + index ) ) {\n node.classList.add( 'wptb-element-' + element.kind + '-' + index );\n }\n } else {\n if( ! node.classList.contains( 'wptb-element-' + element.kind + '-' + index ) ) {\n node.classList.add( 'wptb-element-' + element.kind + '-' + index );\n }\n }\n new WPTB_ElementOptions( element, index, kindIndexProt );\n\n document.counter.increment(element.kind);\n};",""]}
inc/admin/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}document.addEventListener("DOMContentLoaded",function(){var e=WPTB_Helper.detectMode();if(e){var n=new XMLHttpRequest,t=ajaxurl+"?action=get_table&id="+e;n.open("GET",t,!0),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.onreadystatechange=function(e){if(4!=this.readyState||200!=this.status);else{var t=JSON.parse(n.responseText);document.getElementById("wptb-setup-name").value=t[0],t[1]?(document.getElementsByClassName("wptb-table-generator")[0].style.display="none",document.getElementsByClassName("wptb-table-setup")[0].appendChild(WPTB_Parser(t[1])),WPTB_Table(),WPTB_LeftPanel(),WPTB_Settings()):document.getElementsByClassName("wptb-table-generator")[0].style.display="table"}},n.send(null)}else document.getElementsByClassName("wptb-table-generator")[0].style.display="table";document.counter=new ElementCounters,document.select=new MultipleSelect,WPTB_Initializer(),settings=WPTB_Settings()});var WPTB_Button=function(e,t){var n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("a"),l=document.createElement("div"),o=void 0,s=!1;if(n.classList.add("wptb-button-container","wptb-size-M","wptb-"),a.classList.add("wptb-button-wrapper"),l.classList.add("wptb-button"),l.innerHTML=null!=e?e:"Button Text",t){var i=t.className.match(/wptb-element-((.+-)\d+)/i);i&&Array.isArray(i)&&(o=i[1],s=!0);var d=[].concat(_toConsumableArray(t.attributes));if(0<d.length)for(var c=0;c<d.length;c++)n.setAttribute(d[c].name,d[c].value);var m=t.querySelector(".wptb-button-wrapper");if(m){var p=[].concat(_toConsumableArray(m.attributes));if(0<p.length)for(var u=0;u<p.length;u++)"style"==p[u].name&&a.setAttribute(p[u].name,p[u].value)}var b=t.querySelector("a");if(b){var g=[].concat(_toConsumableArray(b.attributes));if(0<g.length)for(var y=0;y<g.length;y++)"style"!=g[y].name&&"href"!=g[y].name&&"target"!=g[y].name||r.setAttribute(g[y].name,g[y].value)}}return a.appendChild(r),r.appendChild(l),n.appendChild(a),this.kind="button",this.getDOMElement=function(){return n},applyGenericItemSettings(this,o,s),this},WPTB_Cell=function(e,s){if(!s){(s=document.createElement("td")).style.padding=jQuery("#wptb-table-padding-number").val()+"px";var t=jQuery("#wptb-table-inner-border-number").val();""!=t&&0!=parseInt(t)&&(s.style.border=t+"px solid "+jQuery("#wptb-table-border-color").val()),s.classList.add("wptb-droppable","wptb-cell")}s.draggable=!1,e&&(s.onclick=e),WPTB_innerElementSet(s);var i=s.getElementsByClassName("wptb-ph-element");if(0<i.length)for(var n=function(e){var t=s.getElementsByClassName("wptb-space-between");if(0<t.length)for(var n=0;n<t.length;n++)WPTB_Space(t[n]);i[e].getDOMElement=function(){return i[e]},WPTB_innerElementSet(i[e]);var a=i[e].className.match(/wptb-element-((.+-)\d+)/i);if(a&&Array.isArray(a)){var r=a[1].split("-");if(i[e].kind=r[0],applyGenericItemSettings(i[e],a[1]),"list"==i[e].kind){var l=i[e].getElementsByTagName("li");if(0<l.length)for(var o=0;o<l.length;o++)WPTB_ListItem(void 0,l[o])}}},a=0;a<i.length;a++)n(a);return this.getDOMElement=function(){return s},this.setCoords=function(e,t){var n=this.getDOMElement();n.dataset.yIndex=e,n.dataset.xIndex=t},this.getCoords=function(){var e,t=this.getDOMElement();return e.x=t.dataset.xIndex,e.y=t.dataset.yIndex,e},this.appendElement=function(e){getDOMElement().appendChild(e)},this},WPTB_DropHandle=function(i,e){var d=void 0,c=void 0;if(0==document.getElementsByClassName("wptb-drop-handle").length){(d=document.createElement("div")).classList.add("wptb-drop-handle"),(c=document.createElement("div")).classList.add("wptb-drop-border-marker");var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div");t.classList.add("wptb-drop-border-marker-top"),n.classList.add("wptb-drop-border-marker-right"),a.classList.add("wptb-drop-border-marker-bottom"),r.classList.add("wptb-drop-border-marker-left"),c.appendChild(t),c.appendChild(n),c.appendChild(a),c.appendChild(r);var l=document.getElementsByTagName("body");0<l.length&&(l[0].appendChild(d),l[0].appendChild(c)),d.ondragenter=function(){},d.ondragover=function(e){e.preventDefault()},d.ondragleave=function(){},d.ondrop=function(e){e.preventDefault();var t,n=void 0;e.dataTransfer.getData("wptbElement")?n=(n=(t=e.dataTransfer.getData("wptbElement")).includes("list")?new WPTB_List:t.includes("image")?new WPTB_Image:t.includes("text")?new WPTB_Text:t.includes("button")?new WPTB_Button:void 0).getDOMElement():((n=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).classList.remove("wptb-moving-mode"),n.classList.remove("wptb-moving-into-same-elem"));var a=void 0;if("Drop Here"==d.dataset.text)"td"==(i=d.getDOMParentElement()).nodeName.toLowerCase()&&(a=d.getDOMParentElement()).appendChild(n);else{var r=d.getDOMParentElement();if(a=r.parentNode,"Abowe Element"==d.dataset.text)a.insertBefore(n,r);else if("Below Element"==d.dataset.text){var l=r.nextSibling;a.insertBefore(n,l)}}var o=a.parentNode;if(o.classList.contains("wptb-table-head")){var s=WPTB_Helper.findAncestor(o,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(s)}d.style.display="none",c.style.display="none",WPTB_innerElementSet(n)},document.querySelector(".wptb-container").onscroll=function(){d.style.display="none",c.style.display="none"}}else d=document.getElementsByClassName("wptb-drop-handle")[0],c=document.getElementsByClassName("wptb-drop-border-marker")[0];if(!i||"td"!=i.nodeName.toLowerCase()||0==i.getElementsByClassName("wptb-ph-element").length){var o=void 0;if("td"==i.localName?o=i.parentNode:"div"==i.localName&&i.classList.contains("wptb-ph-element")&&(o=i.parentNode.parentNode),o.classList.contains("wptb-table-head")){for(var s=e.dataTransfer.types,m=!1,p=0;p<s.length;p++){var u=s[p].match(/wptbelindic-([a-z]+)/i);if(u&&"text"!=u[1]){m=!0;break}}if(m)return}d.style.width=i.offsetWidth+"px";var b=i.offsetHeight,g=i.getBoundingClientRect(),y=Number(g.left),f=void 0;if(d.style.left=y+"px",-1!=e.dataTransfer.types.indexOf("wptb-moving-mode")){var v=document.getElementsByClassName("wptb-moving-mode")[0];i==v?(d.classList.add("wptb-moving-into-same-elem"),c.classList.add("wptb-moving-into-same-elem")):(d.classList.remove("wptb-moving-into-same-elem"),c.classList.remove("wptb-moving-into-same-elem"))}if(d.getDOMParentElement=function(){return i},d.style.display="block",c.style.display="block","td"!=i.nodeName.toLowerCase()){var h=null==e.offsetY?e.layerY:e.offsetY;f=Number(g.top)-Number(11),d.dataset.text="Abowe Element",b/2<h&&(f=Number(g.top)+b-1,d.dataset.text="Below Element")}else d.dataset.text="Drop Here",f=Number(g.top)+b/2-5;d.style.top=f+"px",c.style.top=g.top+"px",c.style.left=g.left+"px",wptbDropBorderMarkerTop=c.querySelector(".wptb-drop-border-marker-top"),wptbDropBorderMarkerTop.style.width=Number(i.offsetWidth)-Number(1)+"px",wptbDropBorderMarkerRight=c.querySelector(".wptb-drop-border-marker-right"),wptbDropBorderMarkerRight.style.height=Number(g.bottom)-Number(g.top)-1+"px",wptbDropBorderMarkerRight.style.left=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom=c.querySelector(".wptb-drop-border-marker-bottom"),wptbDropBorderMarkerBottom.style.width=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom.style.top=wptbDropBorderMarkerRight.style.height,wptbDropBorderMarkerLeft=c.querySelector(".wptb-drop-border-marker-left"),wptbDropBorderMarkerLeft.style.height=wptbDropBorderMarkerRight.style.height}},ElementCounters=function(){var t=[];return t.text=0,t.image=0,t.list=0,t.button=0,this.increment=function(e){e in t&&t[e]++},this.nextIndex=function(e){if(e in t)return t[e]+1},this},WPTB_ElementOptions=function(e,t,n){var a,r=e.getDOMElement();prop=document.querySelector(".wptb-"+e.kind+"-options-prototype").cloneNode(!0),prop.classList.remove("wptb-"+e.kind+"-options-prototype"),a="wptb-options-"+e.kind+"-"+t;for(var l=prop.getElementsByClassName("wptb-element-property"),o=0;o<l.length;o++)l[o].dataset.element=a;if(prop.classList.add(a),document.getElementById("element-options-group").appendChild(prop),n)if("button"==e.kind){var s=document.getElementsByClassName("wptb-element-"+n)[0],i=void 0,d=void 0,c=void 0,m=void 0;if(s&&(m=s.className.match(/wptb-size-([a-z]+)/i)),m&&Array.isArray(m)){var p=prop.getElementsByClassName("wptb-btn-size-btn");for(o=0;o<p.length;o++)p[o].classList.remove("selected"),p[o].innerHTML==m[1]&&p[o].classList.add("selected")}if(s&&(i=s.getElementsByClassName("wptb-button-wrapper"),d=s.getElementsByTagName("a"),c=s.getElementsByClassName("wptb-button")),i){var u=i[0].style.justifyContent,b=prop.querySelector('select[data-type="button-alignment"]').getElementsByTagName("option"),g=void 0;"flex-start"==u?g="left":"center"!=u&&u?"flex-end"==u&&(g="right"):g="center";for(var y=0;y<b.length;y++)b[y].value==g&&(b[y].selected=!0)}if(0<d.length){var f=d[0].getAttribute("href"),v=d[0].getAttribute("target"),h=d[0].getAttribute("id"),w=prop.querySelector('input[data-type="button-link"]'),B=prop.querySelector('input[data-type="button-link-target"]'),E=B.getAttribute("id"),T=B.parentNode.getElementsByTagName("label")[0],C=prop.querySelector('input[data-type="button-id"]');E=E+"-"+n.split("-")[1],B.setAttribute("id",E),T.setAttribute("for",E),w.value=f,v&&"_blank"==v&&(B.checked=!0),C.value=h}if(c){var N=c[0].style.color,S=c[0].style.backgroundColor,x=prop.querySelector('input[data-type="button-text-color"]'),I=prop.querySelector('input[data-type="button-color"]');x.value=WPTB_Helper.rgbToHex(N),I.value=WPTB_Helper.rgbToHex(S)}}else if("image"==e.kind){var k=document.getElementsByClassName("wptb-element-"+n);if(0<k.length){var _=k[0].getElementsByTagName("a");if(0<_.length){var L=_[0];if(L){L.onclick=function(e){e.preventDefault()};for(var A=L.style.textAlign,P=prop.querySelector('select[data-type="image-alignment"]').getElementsByTagName("option"),W=0;W<P.length;W++)P[W].value==A&&(P[W].selected=!0);var M=L.getAttribute("href"),D=prop.querySelector('input[data-type="image-link"]');M&&(D.value=M);var q=L.getAttribute("target"),H=prop.querySelector('input[data-type="image-link-target"]'),O=H.getAttribute("id"),R=H.parentNode.getElementsByTagName("label")[0];O=O+"-"+n.split("-")[1],H.setAttribute("id",O),R.setAttribute("for",O),q&&"_blank"==q&&(H.checked=!0);var z=L.getElementsByTagName("img");if(0<z.length){var j=z[0].style.width;if(j){var Q=prop.querySelector('input[type="range"][data-type="image-size"]'),F=prop.querySelector('input[type="number"][data-type="image-size"]');Q.value=parseInt(j),F.value=parseInt(j)}var G=z[0].getAttribute("alt");prop.querySelector('input[type="text"][data-type="alternative-text"]').value=G}}}}}else if("text"==e.kind){var J=document.getElementsByClassName("wptb-element-"+n);if(0<J.length){var Y=J[0].style.fontSize,X=J[0].style.color,K=prop.querySelector('input[type="range"][data-type="font-size"]'),U=prop.querySelector('input[type="number"][data-type="font-size"]'),$=prop.querySelector('input[type="text"][data-type="color"]');K.value=parseInt(Y),U.value=parseInt(Y),$.value=WPTB_Helper.rgbToHex(X)}}else if("list"==e.kind){var V=document.getElementsByClassName("wptb-element-"+n);if(0<V.length){var Z=V[0].querySelector("p").style.color;prop.querySelector('input[type="text"][data-type="list-text-color"]').value=WPTB_Helper.rgbToHex(Z);var ee=V[0].querySelectorAll("li");if(0<ee.length){var te=ee[0].querySelector("p").classList;if(0<te.length){var ne=prop.querySelector('select[data-type="list-class"]');if(ne){ne.value="unordered";for(var ae=ne.parentNode.nextSibling,re=0;re<10&&"1"!=ae.nodeType;re++)ae=ae.nextSibling;if(ae){var le=ae.getAttribute("id");ae.setAttribute("id",le+"-"+n),ae.style.display="flex"}var oe=prop.querySelector('select[data-type="list-style-type"]');oe&&(oe.parentNode.style.display="flex",te.contains("wptb-list-style-type-disc")?oe.value="disc":te.contains("wptb-list-style-type-circle")?oe.value="circle":te.contains("wptb-list-style-type-square")?oe.value="square":te.contains("wptb-list-style-type-none")&&(oe.value="none"))}}}var se=V[0].getElementsByClassName("wptb-list-item-content");if(0<se.length){for(var ie=[],de=0;de<se.length;de++){var ce=se[de].querySelector("p");ce&&(ce.style.textAlign?ie.push(ce.style.textAlign):ie.push("left"))}var me=0,pe=0,ue=0;if(0<ie.length)for(var be=0;be<ie.length;be++)ie[be]&&("left"==ie[be]?me++:"center"==ie[be]?pe++:"right"==ie[be]&&ue++);var ge=prop.querySelector('select[data-type="list-alignment"]'),ye=Math.max(me,pe,ue);me==ye?ge.value="left":pe==ye?ge.value="center":ue==ye&&(ge.value="right")}}}if(r.onclick=function(){var e=this.className.match(/wptb-element-((.+-)\d+)/i),t=".wptb-"+e[2]+"options.wptb-options-"+e[1];document.getElementsByClassName("wptb-elements-container")[0].style.display="none",document.getElementsByClassName("wptb-settings-section")[0].style.display="none",document.getElementById("element-options-group").style.display="block";for(var n=document.getElementById("element-options-group").childNodes,a=0;a<n.length;a++)n[a].style&&(n[a].style.display="none");document.querySelector(t).style.display="block"},"button"==e.kind){var fe=prop.getElementsByClassName("wptb-btn-size-btn");for(o=0;o<fe.length;o++)fe[o].onclick=function(){var e=this.innerHTML,t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),n=t[1],a=t[2],r=document.getElementsByClassName("wptb-element-"+n+"-"+a)[0];r.classList.remove("wptb-size-S"),r.classList.remove("wptb-size-M"),r.classList.remove("wptb-size-L"),r.classList.remove("wptb-size-XL"),r.classList.add("wptb-size-"+e);for(var l=this.parentNode.getElementsByClassName("wptb-btn-size-btn"),o=0;o<l.length;o++)l[o].classList.remove("selected");this.classList.add("selected")}}var ve=prop.getElementsByClassName("wptb-element-property");for(o=0;o<ve.length;o++){if(ve[o].classList.contains("wptb-color-picker")&&jQuery(ve[o]).wpColorPicker({change:function(e,t){var n,a,r,l=e.target;if(a=(n=l.dataset.element.match(/wptb-options-(.+)-(\d+)/i))[1],r=n[2],affectedEl=document.getElementsByClassName("wptb-element-"+a+"-"+r)[0],"button"==a)"button-text-color"==l.dataset.type?affectedEl.getElementsByClassName("wptb-button")[0].style.color=t.color.toString():affectedEl.getElementsByClassName("wptb-button")[0].style.backgroundColor=t.color.toString();else if("list"==a){var o=affectedEl.querySelectorAll("p");if(0<o.length)for(var s=0;s<o.length;s++)o[s].style.color=t.color.toString()}else affectedEl.style.color=t.color.toString()}}),"font-size"===ve[o].dataset.type)ve[o].parentNode.parentNode.getElementsByClassName("wptb-text-font-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-text-font-size-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-text-font-size-number")[0].onchange()};if("image-size"===ve[o].dataset.type)ve[o].parentNode.parentNode.getElementsByClassName("wptb-image-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-image-width-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-image-width-number")[0].onchange()};ve[o].onchange=function(e){var t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),n=t[1],a=t[2],r=document.getElementsByClassName("wptb-element-"+n+"-"+a)[0],l=this.value;switch(this.dataset.type){case"src":r.getElementsByTagName("img")[0].src=this.value;break;case"alternative-text":r.getElementsByTagName("img")[0].alt=this.value;break;case"image-link":r.getElementsByTagName("a")[0].href=WPTB_Helper.linkHttpCheckChange(this.value);break;case"image-link-target":1==this.checked?r.getElementsByTagName("a")[0].target="_blank":r.getElementsByTagName("a")[0].target="_self";break;case"image-link-nofollow":1==this.checked?r.getElementsByTagName("a")[0].rel="nofollow":r.getElementsByTagName("a")[0].removeAttribute("rel");break;case"image-size":r.getElementsByTagName("img")[0].style.width=this.value+"%",r.getElementsByTagName("img")[0].style.height="auto",this.parentNode.parentNode.getElementsByClassName("wptb-image-size-slider")[0].value=this.value;break;case"image-alignment":r.getElementsByTagName("img")[0].parentNode.style.textAlign=this.value;break;case"font-size":r.style.fontSize=l+"px";break;case"button-alignment":var o="";o="left"==this.value?"start":"right"==this.value?"flex-end":"center",r.getElementsByClassName("wptb-button-wrapper")[0].style.justifyContent=o;break;case"button-link":this.value?r.getElementsByTagName("a")[0].href=WPTB_Helper.linkHttpCheckChange(this.value):r.getElementsByTagName("a")[0].removeAttribute("href");break;case"button-link-target":1==this.checked?r.getElementsByTagName("a")[0].target="_blank":r.getElementsByTagName("a")[0].target="_self";break;case"button-link-nofollow":1==this.checked?r.getElementsByTagName("a")[0].rel="nofollow":r.getElementsByTagName("a")[0].removeAttribute("rel");break;case"button-id":this.value?r.getElementsByTagName("a")[0].id=this.value:r.getElementsByTagName("a")[0].removeAttribute("id");case"button-color":break;case"list-alignment":for(var s=r.querySelectorAll("li"),i=0;i<s.length;i++){var d=s[i].querySelector("p");d&&(d.style.textAlign=this.value)}break;case"list-class":var c=e.target.parentNode.parentNode.querySelector("[data-type=list-style-type]").parentNode,m=c.parentNode;if("unordered"==l){c.style.display="flex",m.querySelector(".wptb-list-icon-select-label").style.display="flex";var p=r.querySelectorAll("li");for(i=0;i<p.length;i++){var u=p[i].querySelector("p");u.removeAttribute("class"),u.classList.add("wptb-list-style-type-disc")}m.querySelector("[data-type=list-style-type]").value="disc"}else{c.style.display="none",m.querySelector(".wptb-list-icon-select-label").style.display="none";var b=r.querySelectorAll("li");for(i=0;i<b.length;i++){b[i].querySelector("p").removeAttribute("class")}}break;case"list-style-type":for(b=r.querySelectorAll("li"),i=0;i<b.length;i++){var g=b[i].querySelector("p");g.removeAttribute("class"),g.classList.add("list-style-type-"+l.toLowerCase())}}}}},WPTB_Helper={hexToRgb:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?"rgb("+parseInt(t[1],16)+","+parseInt(t[2],16)+","+parseInt(t[3],16)+")":null},rgbToHex:function(e){return(e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):""},getDragImageCustom:function(e){var t=location.protocol+"//"+location.hostname,n=document.createElement("img");return n.src=t+"/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/"+e+".png",n},dragImagesArr:function(){return{text:WPTB_Helper.getDragImageCustom("text"),image:WPTB_Helper.getDragImageCustom("image"),button:WPTB_Helper.getDragImageCustom("button"),list:WPTB_Helper.getDragImageCustom("list")}},listItemsRecalculateIndex:function(e){var t=e.querySelectorAll("p");if(0<t.length)for(var n=0;n<t.length;n++)t[n].dataset.listStyleTypeIndex=Number(n)+1+"."},listItemsTinyMceInit:function(e){tinyMCE.init({target:e,inline:!0,plugins:"link, paste",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",paste_as_text:!0,toolbar:"bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify",setup:function(e){e.on("keydown",function(e){var t=e.target.parentNode;if(13==e.keyCode){e.preventDefault();var n=e.target.innerHTML,a=new WPTB_ListItem(n,t,!0);t.parentNode.insertBefore(a.getDOMElement(),t),WPTB_Helper.listItemsTinyMceInit(a.getDOMElement().firstChild),e.target.querySelector("p").innerText="New List Item",WPTB_Helper.listItemsRecalculateIndex(t.parentNode)}else if("8"==e.keyCode||"46"==e.keyCode){var r=e.target.querySelector("p").innerHTML.replace(/<[^>]+>/g,"");if(""==(r=(r=r.replace(/\s+/g," ").trim()).replace(/&nbsp;/g,"").trim()))e.preventDefault(),e.target.querySelector("p").innerText="\n";else{var l=WPTB_Helper.getSelectionText();(l=(l=l.replace(/\s+/g," ").trim()).replace(/&nbsp;/g,"").trim())==r&&(e.preventDefault(),e.target.querySelector("p").innerText="\n")}}}),e.on("keyup",function(e){})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}})},buttonsTinyMceInit:function(e){tinyMCE.init({target:e,inline:!0,plugins:"link",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",toolbar:"bold italic strikethrough",setup:function(e){e.on("keydown",function(e){13==e.keyCode&&e.preventDefault()})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}})},linkHttpCheckChange:function(e){if(e){if(-1!=e.indexOf("http://")||-1!=e.indexOf("https://"))return e;var t=e.split("/"),n=void 0;return Array.isArray(t)&&0<t.length&&(n=t[t.length-1]),document.location.protocol+"//"+n}return""},dataTitleColumnSet:function(e){for(var t=e.rows,n=t[0],a=getComputedStyle(n),r=n.children,l={},o=0;o<r.length;o++){for(var s=r[o].children,i=0;i<s.length;i++){var d=s[i];if(d.classList.contains("wptb-ph-element")){d.getAttribute("style");if("text"==d.className.match(/wptb-element-(.+)-(\d+)/i)[1]){var c=d.querySelector("p"),m=c.textContent,p=c.style.textAlign;l[r[o].dataset.xIndex]=[m,d.style.fontSize,d.style.color,a.backgroundColor,p];break}}}l[r[o].dataset.xIndex]||(l[r[o].dataset.xIndex]=["","","",a.backgroundColor,""])}for(var u=1;u<t.length;u++)for(var b=t[u].children,g=0;g<b.length;g++)l[b[g].dataset.xIndex]?(b[g].dataset.titleColumn=l[b[g].dataset.xIndex][0],b[g].dataset.titleColumnFontSize=l[b[g].dataset.xIndex][1],b[g].dataset.titleColumnColor=l[b[g].dataset.xIndex][2],b[g].dataset.titleBackgroundColor=l[b[g].dataset.xIndex][3],b[g].dataset.titleAlign=l[b[g].dataset.xIndex][4]):(b[g].dataset.titleColumn="",b[g].dataset.titleColumnFontSize="",b[g].dataset.titleColumnColor="",b[g].dataset.titleBackgroundColor="",b[g].dataset.titleAlign="")},findAncestor:function(e,t){for(;(e=e.parentElement)&&!e.classList.contains(t););return e},getSelectionText:function(){return window.getSelection?window.getSelection().toString():document.selection.createRange().text},settingsPanelClear:function(){document.getElementById("wptb-top-row-as-header").checked=!1,document.getElementById("wptb-table-border-slider").value=0,document.getElementById("wptb-table-border-number").value=0,document.getElementById("wptb-inner-border-check").checked=!1,document.getElementById("wptb-apply-inner-border").classList.remove("visible"),document.getElementById("wptb-table-inner-border-slider").value=1,document.getElementById("wptb-table-inner-border-number").value=1,WPTB_Helper.wpColorPickerClear("wptb-table-border-color"),WPTB_Helper.wpColorPickerClear("wptb-table-header-bg"),WPTB_Helper.wpColorPickerClear("wptb-even-row-bg"),WPTB_Helper.wpColorPickerClear("wptb-odd-row-bg"),document.getElementById("wptb-table-cell-slider").value=15,document.getElementById("wptb-table-cell-number").value=15},wpColorPickerClear:function(e){var t=document.getElementById(e),n=WPTB_Helper.findAncestor(t,"wp-picker-container"),a=n.parentNode;a.removeChild(n);var r=document.createElement("input");r.setAttribute("id",e),r.value="",a.appendChild(r)},detectMode:function(){var e=window.location.href,t=new RegExp("[?&]table(=([^&#]*)|&|#|$)").exec(e);return!!t&&(t[2]?decodeURIComponent(t[2].replace(/\+/g," ")):"")}},WPTB_Image=function(e,t){var n=void 0,a=void 0,r=!1;if(null==t){n=document.createElement("div");var l=document.createElement("a"),o=document.createElement("img");l.style.display="inline-block",l.appendChild(o),n.appendChild(l),l.onclick=function(e){e.preventDefault()},file_frame=wp.media.frames.file_frame=wp.media({title:"Select a image to upload",button:{text:"Use this image"},multiple:!1}),file_frame.on("select",function(){attachment=file_frame.state().get("selection").first().toJSON(),o.src=attachment.url}),null==e?file_frame.open():o.src=e}else{(n=t.cloneNode(!0)).getElementsByTagName("a")[0].onclick=function(e){e.preventDefault()};var s=t.className.match(/wptb-element-((.+-)\d+)/i);s&&Array.isArray(s)&&(a=s[1],r=!0)}return this.kind="image",this.getDOMElement=function(){return n},applyGenericItemSettings(this,a,r),this},WPTB_Initializer=function(){var e=document.body;columnsDecrementButton=e.getElementsByClassName("wptb-input-number-decrement")[0],columnsIncrementButton=e.getElementsByClassName("wptb-input-number-increment")[0],rowsDecrementButton=e.getElementsByClassName("wptb-input-number-decrement")[1],rowsIncrementButton=e.getElementsByClassName("wptb-input-number-increment")[1],columnsInput=document.getElementById("wptb-columns-number"),rowsInput=document.getElementById("wptb-rows-number"),columnsDecrementButton.onclick=function(){1<columnsInput.value&&columnsInput.value--},columnsIncrementButton.onclick=function(){columnsInput.value<10&&columnsInput.value++},rowsDecrementButton.onclick=function(){1<rowsInput.value&&rowsInput.value--},rowsIncrementButton.onclick=function(){rowsInput.value<10&&rowsInput.value++},document.getElementById("wptb-generate-table").onclick=function(){var e=document.getElementById("wptb-columns-number").value,t=document.getElementById("wptb-rows-number").value;WPTB_Table(e,t)}},WPTB_LeftPanel=function(){var e,t,l=document.getElementsByClassName("wptb-preview-table")[0],n=document.getElementsByClassName("wptb-element");function a(e,t){if(!(3<t)&&l){var n=l.getElementsByTagName("tr");if(n.length>t){var a=n[t].style.backgroundColor,r=document.getElementById(e);r&&a&&(r.value=WPTB_Helper.rgbToHex(a))}}}function r(e){for(var t=l.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.borderWidth=document.querySelector("#wptb-table-inner-border-number").value+"px",t[n].style.borderStyle="solid"}function o(e){for(var t=l.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.padding=e+"px"}function s(e){l.style.borderWidth=e+"px",l.style.borderStyle="solid"}function i(e,t,n){e.onkeydown=function(){var e=this.value;0==(e=String(e))[0]?this.value="":(e=e.substring(0,t),this.value=e)},e.onkeyup=function(){var e=this.value;e=String(e),n<e&&(this.value=n)}}a("wptb-even-row-bg",1),jQuery("#wptb-even-row-bg").wpColorPicker({change:function(e,t){for(var n=l.getElementsByTagName("tr"),a=1;a<n.length;a+=2)n[a].style.backgroundColor=t.color.toString()},clear:function(){for(var e=l.getElementsByTagName("tr"),t=1;t<e.length;t+=2){e[t].style.backgroundColor="";for(var n=e[t].getElementsByTagName("td"),a=0;a<n.length;a++)n[a].style.backgroundColor=""}}}),a("wptb-odd-row-bg",2),jQuery("#wptb-odd-row-bg").wpColorPicker({change:function(e,t){for(var n=l.getElementsByTagName("tr"),a=2;a<n.length;a+=2)n[a].style.backgroundColor=t.color.toString()},clear:function(){for(var e=l.getElementsByTagName("tr"),t=2;t<e.length;t+=2){e[t].style.backgroundColor="";for(var n=e[t].getElementsByTagName("td"),a=0;a<n.length;a++)n[a].style.backgroundColor=""}}}),a("wptb-table-header-bg",0),jQuery("#wptb-table-header-bg").wpColorPicker({change:function(e,t){l.getElementsByTagName("tr")[0].style.backgroundColor=t.color.toString()},clear:function(){var e=l.getElementsByTagName("tr")[0];e.style.backgroundColor="";for(var t=e.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.backgroundColor=""}}),e=l,t=document.getElementById("wptb-top-row-as-header"),e&&e.classList.contains("wptb-table-preview-head")?t.checked=!0:t.checked=!1,function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].style.borderColor;if(t){var n=document.getElementById("wptb-table-border-color");n&&(n.value=WPTB_Helper.rgbToHex(t))}var a=e[0].style.borderWidth;if(a){var r=document.getElementById("wptb-table-border-slider"),l=document.getElementById("wptb-table-border-number");r&&(r.value=parseInt(a)),l&&(l.value=parseInt(a))}var o=e[0].querySelector("td").style.borderWidth;if(o){var s=document.getElementById("wptb-inner-border-check"),i=document.getElementById("wptb-apply-inner-border");if(o&&0<parseInt(o)){if(s&&(s.checked=!0,i)){i.classList.add("visible");var d=document.getElementById("wptb-table-inner-border-slider"),c=document.getElementById("wptb-table-inner-border-number");d.value=parseInt(o),c.value=parseInt(o)}}else s.checked=!1}(a&&0<parseInt(a)||o&&0<parseInt(o))&&(document.getElementById("wptb-table-border-color-set-area").style.display="")}}(),jQuery("#wptb-table-border-color").wpColorPicker({change:function(e,t){var n=l.getElementsByTagName("td");l.style.border=document.querySelector("#wptb-table-border-number").value+"px solid "+t.color.toString();for(var a=0;a<n.length;a++){var r=document.querySelector("#wptb-table-inner-border-number").value;document.getElementById("wptb-inner-border-check").checked&&(n[a].style.border=(0!=r?r:1)+"px solid "+t.color.toString())}},clear:function(){var e=l.getElementsByTagName("td");l.style.borderColor="";for(var t=0;t<e.length;t++)e[t].style.borderColor=""}}),function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].querySelector("td");if(t){var n=t.style.padding;if(n){var a=document.getElementById("wptb-table-cell-slider"),r=document.getElementById("wptb-table-cell-number");a&&(a.value=parseInt(n)),r&&(r.value=parseInt(n))}}}}(),i(document.getElementById("wptb-table-border-number"),1,50),i(document.getElementById("wptb-table-inner-border-number"),1,50),i(document.getElementById("wptb-table-cell-number"),1,50),i(document.getElementById("wptb-text-font-size-number"),1,50),i(document.getElementById("wptb-image-width-number"),2,100),document.getElementById("wptb-table-cell-slider").oninput=function(){document.getElementById("wptb-table-cell-number").value=this.value,o(this.value)},document.getElementById("wptb-table-cell-number").onchange=function(){document.getElementById("wptb-table-cell-slider").value=this.value,o(this.value)},document.getElementById("wptb-table-border-slider").oninput=function(){document.getElementById("wptb-table-border-number").value=this.value,s(this.value);var e=document.getElementById("wptb-inner-border-check").checked,t=document.getElementById("wptb-table-border-color-set-area");0==this.value&&0==e?t.style.display="none":t.style.display=""},document.getElementById("wptb-table-border-number").onchange=function(){document.getElementById("wptb-table-border-slider").value=this.value,s(this.value)},document.getElementById("wptb-table-inner-border-slider").oninput=function(){document.getElementById("wptb-table-inner-border-number").value=this.value,r(this.value)},document.getElementById("wptb-table-inner-border-number").onchange=function(){document.getElementById("wptb-table-inner-border-slider").value=this.value,r(this.value)},document.getElementById("wptb-inner-border-check").onchange=function(){if(l){var e=this.checked?"checked":"unchecked";!function(e){var t=null!=document.querySelector("#wptb-table-border-color").value?document.querySelector("#wptb-table-border-color").value:"rgb(0,0,0)";0!=document.querySelector("#wptb-table-inner-border-slider").value&&0!=document.querySelector("#wptb-table-inner-border-number").value||(document.querySelector("#wptb-table-inner-border-slider").value=1,document.querySelector("#wptb-table-inner-border-number").value=1);var n=document.querySelector("#wptb-table-inner-border-slider").value+"px",a=document.getElementsByClassName("wptb-preview-table");if(0<a.length)if("checked"==e){document.getElementById("wptb-apply-inner-border").style.marginBottom="0px";for(var r=a[0].getElementsByTagName("td"),l=0;l<r.length;l++)r[l].style.border=n+" solid "+t;document.getElementById("wptb-apply-inner-border").classList.add("visible")}else for(document.getElementById("wptb-apply-inner-border").classList.remove("visible"),r=a[0].getElementsByTagName("td"),l=0;l<r.length;l++)r[l].style.border="0px solid "+t}(e);var t=document.getElementById("wptb-table-border-slider").value,n=document.getElementById("wptb-table-border-color-set-area");n.style.display="unchecked"==e&&0==t?"none":""}},document.getElementById("wptb-top-row-as-header").onchange=function(){!function(e,t){if(t.checked)WPTB_Helper.dataTitleColumnSet(e),e.classList.add("wptb-table-preview-head"),e.rows[0].classList.add("wptb-table-head");else{var n=e.rows;e.classList.remove("wptb-table-preview-head"),n[0].classList.remove("wptb-table-head");for(var a=1;a<n.length;a++)for(var r=n[a].children,l=0;l<r.length;l++)r[l].removeAttribute("data-title-column")}}(l,this)};for(var d=0;d<n.length;d++)n[d].ondragstart=function(e){e.dataTransfer.setData("wptbElement",this.dataset.wptbElement)};l&&(document.getElementById("wptb-activate-cell-management-mode").onclick=l.toggleTableEditMode,document.getElementById("wptb-table-edit-mode-close").onclick=l.toggleTableEditMode,document.getElementById("wptb-left-scroll-panel-curtain-close").onclick=l.toggleTableEditMode,document.getElementById("wptb-add-end-row").onclick=l.addRowToTheEnd,document.getElementById("wptb-add-start-row").onclick=l.addRowToTheStart,document.getElementById("wptb-add-row-before").onclick=l.addRowBefore,document.getElementById("wptb-add-row-after").onclick=l.addRowAfter,document.getElementById("wptb-add-end-column").onclick=l.addColumnEnd,document.getElementById("wptb-add-start-column").onclick=l.addColumnStart,document.getElementById("wptb-add-column-before").onclick=l.addColumnBefore,document.getElementById("wptb-add-column-after").onclick=l.addColumnAfter,document.getElementById("wptb-delete-column").onclick=l.deleteColumn,document.getElementById("wptb-delete-row").onclick=l.deleteRow,document.getElementById("wptb-merge-cells").onclick=l.mergeCells,document.getElementById("wptb-split-cell").onclick=l.splitCell),document.querySelector(".wptb-left-panel-extend").onclick=function(){var e=document.querySelector(".wptb-container");e&&(e.classList.contains("collapsed")?e.classList.remove("collapsed"):e.classList.add("collapsed"))},document.getElementsByClassName("wptb-builder-panel")[0].addEventListener("click",function(e){if(!(e.target.classList.contains("wptb-ph-element")||WPTB_Helper.findAncestor(e.target,"wptb-ph-element")||e.target.classList.contains("wptb-fixed-toolbar")||WPTB_Helper.findAncestor(e.target,"wptb-fixed-toolbar"))){document.getElementsByClassName("wptb-elements-container")[0].style.display="table",document.getElementsByClassName("wptb-settings-section")[0].style.display="block",document.getElementById("element-options-group").style.display="none";var t=document.getElementById("wpcd_fixed_toolbar");t.hasAttribute("data-toolbar-active-id")&&document.getElementById(t.getAttribute("data-toolbar-active-id")).classList.remove("toolbar-active")}},!1)},WPTB_List=function(e,t){var n,a=document.createElement("ul"),r=document.createElement("div"),l=void 0,o=!1;if(r.classList.add("wptb-list-item-container"),this.kind="list",""===e);else if(e){var s=t.className.match(/wptb-element-((.+-)\d+)/i);s&&Array.isArray(s)&&(l=s[1],o=!0);for(d=0;d<e.length;d++){var i=t.querySelector("li");n=new WPTB_ListItem(e[d],i,!0),a.appendChild(n.getDOMElement())}}else for(var d=0;d<3;d++)n=new WPTB_ListItem("<p>List Item "+(d+1)+"</p>"),a.appendChild(n.getDOMElement());return r.appendChild(a),this.getDOMElement=function(){return r},applyGenericItemSettings(this,l,o),WPTB_Helper.listItemsRecalculateIndex(a),this},WPTB_ListItem=function r(e,t,n){var a=void 0;if(null==t||t&&n){null==e&&(e="New List Item");var l=document.createElement("li");if((s=document.createElement("div")).classList.add("wptb-list-item-content"),t){var o=t.getAttribute("style");o&&l.setAttribute("style",o)}l.appendChild(s),s.innerHTML=e,s.onkeyup=window.listItemKeyListener,a=!0}else{var s;(s=(l=t).getElementsByClassName("wptb-list-item-content")[0]).onkeyup=window.listItemKeyListener,a=!1}if(l.onmouseenter=function(e){var t=document.createElement("span"),n=document.createElement("span"),a=document.createElement("span");a.classList.add("wptb-actions"),t.classList.add("dashicons","dashicons-trash","wptb-delete-action"),n.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),this.classList.add("wptb-directlyhovered"),t.onclick=function(){var e=this.parentNode,t=this.parentNode.parentNode,n=t.parentNode;t.removeChild(e),n.removeChild(t),WPTB_Helper.listItemsRecalculateIndex(n)},n.onclick=function(e){var t=e.target.parentNode.parentNode,n=t.querySelector(".wptb-list-item-content").innerHTML,a=new r(n,t,!0);t.parentNode.insertBefore(a.getDOMElement(),l),WPTB_Helper.listItemsTinyMceInit(a.getDOMElement().firstChild),setTimeout(function(){s.innerHTML=n,WPTB_Helper.listItemsRecalculateIndex(t.parentNode)},5)},a.append(n,t),this.appendChild(a)},l.onmouseleave=function(e){this.removeAttribute("class");for(var t=0;e.target.querySelector(".wptb-actions")&&t<5;)e.target.querySelector(".wptb-actions").remove(),t++},this.getDOMElement=function(){return l},a)return this},MultipleSelect=function(){var r=[],n=!1;return this.activateMultipleSelectMode=function(){r=[];for(var e=document.getElementsByClassName("wptb-preview-table")[0].getElementsByTagName("td"),t=0;t<e.length;t++)e[t].classList.remove("wptb-highlighted");n=!0},this.deactivateMultipleSelectMode=function(){n=!1},this.isActivated=function(){return n},this.pushSelectedCell=function(e){n&&(r.push(e),e.classList.add("wptb-highlighted"))},this.selectedCells=function(){return r},this.flushSelectedCells=function(){r=[]},this.getFirst=function(){for(var e,t=1e3,n=1e3,a=r.length-1;0<=a;a--)t>=r[a].dataset.xIndex&&n>=r[a].dataset.yIndex&&(e=r[a],t=r[a].dataset.xIndex,n=r[a].dataset.yIndex);return e},this.getLast=function(){for(var e,t=-1,n=-1,a=r.length-1;0<=a;a--)t<=r[a].dataset.xIndex&&n<=r[a].dataset.yIndex&&(e=r[a],t=r[a].dataset.xIndex,n=r[a].dataset.yIndex);return e},this.removeAllButFirst=function(){for(var e=this.getFirst(),t=1;t<r.length;t++)r[t].classList.add("wptb-fused-cell-"+e.dataset.xIndex+"-"+e.dataset.yIndex)},this};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Parser=function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.children[0],a=[].concat(_toConsumableArray(n.querySelectorAll(".wptb-column-title-mobile-container"))),r=0;r<a.length;r++){a[r].parentNode.removeChild(a[r])}for(var l=n.querySelectorAll("td"),o=0;o<l.length;o++)l[o].classList.add("wptb-droppable"),l[o].classList.remove("wptb-column-title-mobile-not-elements");return n},WPTB_Parser2=function(e){if(Array.isArray(e)){var t=void 0;if(1==e.length)return t.appendChild(document.createTextNode(e[0]));if(0 in e){var n=e[0];if(t=document.createElement(n),1 in e&&Array.isArray(e[1]))for(var a=e[1],r=0;r<a.length;r++)Array.isArray(a[r])&&t.setAttribute(a[r][0],a[r][1]);if(2 in e)if(Array.isArray(e[2]))for(var l=0;l<e[2].length;l++)"string"!=typeof e[2][l]||"p"!=n.toLowerCase()?WPTB_Parser(e[2][l])&&t.appendChild(WPTB_Parser(e[2][l])):t.appendChild(document.createTextNode(e[2][l]));else"string"==typeof e[2]&&t.appendChild(document.createTextNode(e[2]))}return t}return!1},WPTB_Settings=function(){for(var e=document.getElementsByClassName("wptb-element"),t=0;t<e.length;t++)e[t].ondragstart=function(e){e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("wptbElement",e.target.dataset.wptbElement),e.dataTransfer.setData("wptbElIndic-"+e.target.dataset.wptbElement,"wptbElIndic-"+e.target.dataset.wptbElement)},e[t].ondragend=function(){var e=document.querySelector(".wptb-drop-handle"),t=document.querySelector(".wptb-drop-border-marker");(e||t)&&(e.style.display="none",t.style.display="none")};var n=document.getElementsByClassName("wptb-shortcode-popup-window-modal")[0];document.getElementsByClassName("wptb-embed-btn")[0].onclick=function(){this.classList.contains("wptb-embed-disable")||n.classList.add("wptb-shortcode-popup-show")},document.getElementsByClassName("wptb-shortcode-popup-dark-area")[0].onclick=function(){n.classList.remove("wptb-shortcode-popup-show")},document.getElementsByClassName("wptb-shortcode-popup-window-close-icon")[0].onclick=function(){n.classList.remove("wptb-shortcode-popup-show")},document.getElementsByClassName("wptb-save-btn")[0].onclick=function(){var e=document.querySelector(".wptb-edit-bar");e&&e.classList.contains("visible")&&document.getElementsByClassName("wptb-preview-table")[0].toggleTableEditMode();var n=new XMLHttpRequest,t=ajaxurl+"?action=save_table",a=document.getElementById("wptb-setup-name").value.trim(),r=void 0,l=document.getElementsByClassName("wptb-preview-table");if(l=0<l.length?(l=WPTB_Stringifier(l[0])).outerHTML:"",""===a||""===l){var o="";return""===a&&(o+="You must assign a name to the table before saving it.</br>"),""===l&&(o+="Table wasn't created"),(r=document.getElementById("wptb-messaging-area")).innerHTML='<div class="wptb-error wptb-message">Error: '+o+"</div>",r.classList.add("wptb-warning"),void setTimeout(function(){r.removeChild(r.firstChild)},4e3)}var s={title:a,content:l};((rs=WPTB_Helper.detectMode())||(rs=document.wptbId))&&(s.id=rs),s=JSON.stringify(s),n.open("POST",t,!0),n.setRequestHeader("Content-type","application/json; charset=utf-8"),n.onreadystatechange=function(e){if(4==this.readyState&&200==this.status){var t=JSON.parse(n.responseText);r=document.getElementById("wptb-messaging-area"),"saved"==t[0]?(document.wptbId=t[1],r.innerHTML='<div class="wptb-success wptb-message">Table "'+a+'" was successfully saved.</div>',document.getElementsByClassName("wptb-embed-btn")[0].classList.remove("wptb-embed-disable"),document.getElementById("wptb-embed-shortcode").value="[wptb id="+t[1]+"]"):r.innerHTML='<div class="wptb-success wptb-message">Table "'+a+'" was successfully updated.</div>',r.classList.add("wptb-success"),setTimeout(function(){r.removeChild(r.firstChild)},4e3)}},n.send(s)}},WPTB_Space=function s(e){var t=void 0;if(e?t=e:(t=document.createElement("div")).classList.add("wptb-space-between"),t.ondragenter=function(){this.classList.add("visible")},t.ondragover=function(e){e.preventDefault()},t.ondragleave=function(){this.classList.remove("visible")},t.ondrop=function(e){e.stopPropagation();for(var t,n,a,r,l=e.target.nextSibling,o=e.target;!o.classList.contains("wptb-droppable");)o=o.parentNode;e.dataTransfer.getData("wptbElement")?(t=(r=e.dataTransfer.getData("wptbElement")).includes("list")?new WPTB_List:r.includes("image")?new WPTB_Image:r.includes("text")?new WPTB_Text:r.includes("button")?new WPTB_Button:void 0,this.classList.remove("visible"),null==l?(o.appendChild(t.getDOMElement()),o.appendChild(new s)):(o.insertBefore(t.getDOMElement(),l),o.insertBefore(new s,l))):(alert(e.dataTransfer.getData("node")),n=(t=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).nextSibling,a=t.parentNode,null!=n&&a.removeChild(n),null==l?(o.appendChild(t),o.appendChild(new s)):(o.insertBefore(t,l),o.insertBefore(new s,l))),this.classList.remove("visible")},!e)return t},WPTB_Stringifier=function(e){if(e){var t=e.cloneNode(!0);t.classList.add("wptb-table-preview-static-indic"),t.dataset.tableColumns=e.columns,t.dataset.reconstraction=1;var n=t.getElementsByTagName("td");if(0<n.length)for(var a=0;a<n.length;a++){for(var r=0;r<n.length;r++)if(1==t.dataset.reconstraction&&1<n[r].colSpan||1<n[r].rowSpan){t.dataset.reconstraction=0;break}e.querySelector("wptb-table-preview-head")&&n[a].removeAttribute("data-x-index"),n[a].removeAttribute("data-y-index"),n[a].removeAttribute("draggable"),n[a].classList.remove("wptb-droppable");var l=n[a].getElementsByClassName("wptb-ph-element");if(0<l.length)for(var o=0;o<l.length;o++){l[o].classList.remove("wptb-directlyhovered");var s=l[o].querySelectorAll(".mce-content-body");if(0<s.length)for(var i=0;i<s.length;i++)s[i].classList.remove("mce-content-body");var d=l[o].querySelectorAll("[data-mce-style]");if(0<d.length)for(var c=0;c<d.length;c++)d[c].removeAttribute("data-mce-style");var m=l[o].querySelectorAll("[contenteditable]");if(0<m.length)for(var p=0;p<m.length;p++)m[p].removeAttribute("contenteditable");var u=l[o].querySelectorAll("[spellcheck]");if(0<u.length)for(var b=0;b<u.length;b++)u[b].removeAttribute("spellcheck");var g=l[o].querySelectorAll("[id^=mce_]");if(0<g.length)for(var y=0;y<g.length;y++)g[y].removeAttribute("id");for(var f=l[o].querySelectorAll(".wptb-actions"),v=f.length;0<v;)f[0].parentNode.removeChild(f[0]),v--}if(n[a].hasAttribute("data-title-column")){var h=document.createElement("div"),w=document.createElement("div");h.classList.add("wptb-column-title-mobile-container"),w.classList.add("column-title-mobile"),w.dataset.titleColumn=n[a].dataset.titleColumn,w.setAttribute("style","font-size:"+n[a].dataset.titleColumnFontSize+"; \n color:"+n[a].dataset.titleColumnColor+"; background-color:"+n[a].dataset.titleBackgroundColor+"; text-align:"+n[a].dataset.titleAlign+";"),w.style.padding=n[a].style.padding,0==n[a].children.length&&n[a].classList.add("wptb-column-title-mobile-not-elements"),h.appendChild(w),n[a].insertBefore(h,n[a].firstChild)}}return t}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Stringifier2=function(e){1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(null==e)return"";if(null==e.tagName&&3==e.nodeType)return e.nodeValue;var t=[],n=void 0,a=!1,r=[].concat(_toConsumableArray(e.attributes)),l=[],o=[];if((e.parentNode.classList.contains("wptb-list-item-content")||e.parentNode.classList.contains("mce-content-body"))&&"p"==e.tagName.toLowerCase()?(n=e.childNodes,a=!0):n=0<e.children.length?e.children:e.childNodes,0<r.length)for(var s=0;s<r.length;s++)l[s]=[r[s].name,r[s].value];else l="";if(0<n.length)for(var i=0;i<n.length;i++){var d=WPTB_Stringifier(n[i]);Array.isArray(d)||a?o[i]=d:"string"==typeof d&&d&&(o=d)}else o="";return t.push(e.tagName.toLowerCase(),l,o),t},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},array=[],WPTB_Table=function(e,t){var w,n,a,f,r=document.getElementsByClassName("wptb-settings-items"),B=document.getElementsByClassName("wptb-table-setup")[0],E=function(e){var t,n=this.rowSpan,a=this.colSpan,r=document.getElementsByClassName("wptb-no-cell-action"),l=document.getElementsByClassName("wptb-single-action"),o=document.getElementsByClassName("wptb-multiple-select-action"),s=N(this),i=s[0],d=s[1];if(document.select.isActivated()){if(this.className.match(/wptb-highlighted/)){this.classList.remove("wptb-highlighted");for(var c=0;c<n;c++)for(var m=0;m<a;m++)array[i+c][d+m]=0}else{this.classList.add("wptb-highlighted");for(c=0;c<n;c++)for(m=0;m<a;m++)array[i+c][d+m]=1}if(0===(t=document.getElementsByClassName("wptb-highlighted").length)){for(c=0;c<o.length;c++)o[c].classList.remove("visible"),o[c].setAttribute("disabled","disabled");for(c=0;c<r.length;c++)r[c].classList.add("visible"),r[c].removeAttribute("disabled");for(c=0;c<l.length;c++)l[c].classList.remove("visible"),l[c].setAttribute("disabled","disabled")}else if(1===t){for(c=0;c<o.length;c++)o[c].classList.remove("visible"),o[c].setAttribute("disabled","disabled");for(c=0;c<r.length;c++)r[c].classList.remove("visible"),r[c].setAttribute("disabled","disabled");for(c=0;c<l.length;c++)l[c].classList.add("visible"),l[c].removeAttribute("disabled")}else{for(c=0;c<o.length;c++)w.isSquare(array)?(o[c].classList.add("visible"),o[c].removeAttribute("disabled")):(o[c].classList.remove("visible"),o[c].setAttribute("disabled","disabled"));for(c=0;c<r.length;c++)r[c].classList.remove("visible"),r[c].setAttribute("disabled","disabled");for(c=0;c<l.length;c++)l[c].classList.remove("visible"),l[c].setAttribute("disabled","disabled")}}},T=function(e){for(var t=0;t<e.length;t++){for(var n=0;n<e[t].length;n++)" "+e[t][n];"\n"}w.isSquare(e)},C=function(){for(var e=document.getElementsByClassName("wptb-no-cell-action"),t=document.getElementsByClassName("wptb-single-action"),n=document.getElementsByClassName("wptb-multiple-select-action"),a=w.getElementsByClassName("wptb-highlighted");a.length;)a[0].classList.remove("wptb-highlighted");for(var r=0;r<array.length;r++)for(var l=0;l<array[r].length;l++)array[r][l]=0;for(r=0;r<n.length;r++)n[r].classList.remove("visible"),n[r].setAttribute("disabled","disabled");for(r=0;r<e.length;r++)e[r].classList.add("visible"),e[r].removeAttribute("disabled");for(r=0;r<t.length;r++)t[r].classList.remove("visible"),t[r].setAttribute("disabled","disabled")},N=function(e){for(var t=[],n=0;n<f;n++)t[n]=0;for(n=0;n<w.rows.length;n++)for(var a=w.rows[n].getElementsByTagName("td"),r=cellPointer=0;r<f;r+=stepsToMove)if(stepsToMove=1,t[r])t[r]--;else{var l=a[cellPointer++];if(l==e)return[n,r];if(1<l.rowSpan){for(var o=0;o<l.colSpan;o++)t[r+o]=l.rowSpan-1;stepsToMove=l.colSpan}else 1<l.colSpan&&(stepsToMove=l.colSpan)}};if(jQuery("#wptb-table-header-bg").val(""),jQuery("#wptb-even-row-bg").val(""),jQuery("#wptb-odd-row-bg").val(""),jQuery("#wptb-table-border-color").val(""),jQuery("#wptb-table-inner-border-number,#wptb-table-inner-border-slider").val("0"),jQuery("#wptb-table-border-number,#wptb-table-border-slider").val("0"),jQuery("#wptb-table-padding-number,#wptb-table-padding-slider").val("15"),e||t){for(var l=0;l<r.length;l++)"wptb-apply-inner-border"!==r[l].id&&r[l].classList.add("visible");(w=document.createElement("table")).classList.add("wptb-preview-table");for(l=0;l<t;l++){(n=w.insertRow(-1)).classList.add("wptb-row");for(var g=0;g<e;g++)(a=new WPTB_Cell(E)).setCoords(l,g),n.appendChild(a.getDOMElement())}}else{var o=document.getElementsByClassName("wptb-preview-table");if(0<o.length){var s=(w=o[0]).getElementsByTagName("td");if(0<s.length)for(var i=0;i<s.length;i++)WPTB_Cell(E,s[i])}}w.toggleTableEditMode=function(){var e=document.getElementsByClassName("wptb-edit-bar"),t=document.getElementById("cell_mode_background"),n=document.getElementById("wptb-left-scroll-panel-curtain"),a=document.getElementsByClassName("wptb-preview-table");if(0<a.length&&(a=a[0]),0<e.length)for(var r=0;r<e.length;r++)if(e[r].classList.contains("visible")){document.select.deactivateMultipleSelectMode(),e[r].classList.remove("visible"),t.classList.remove("visible"),n.classList.remove("visible"),a.classList.remove("wptb-preview-table-manage-cells");var l=a.getElementsByTagName("td");if(0<l.length)for(var o=0;o<l.length;o++)l[o].classList.remove("wptb-highlighted")}else document.select.activateMultipleSelectMode(),e[r].classList.add("visible"),t.classList.add("visible"),n.classList.add("visible"),a.classList.add("wptb-preview-table-manage-cells")},w.recalculateIndexes=function(e){for(var t=this.getElementsByTagName("tr"),n=void 0,a=0,r=[],l=document.getElementById("wptb-top-row-as-header"),o=0;o<t.length;o++){0==o?(null==e&&(t[o].style.backgroundColor=jQuery("#wptb-table-header-bg").val()),l.checked?null==e&&(this.classList.add("wptb-table-preview-head"),t[o].classList.add("wptb-table-head")):null==e&&(this.classList.remove("wptb-table-preview-head"),t[o].classList.remove("wptb-table-head"))):(o%2==0?null==e&&(t[o].style.backgroundColor=jQuery("#wptb-odd-row-bg").val()):null==e&&(t[o].style.backgroundColor=jQuery("#wptb-even-row-bg").val()),t[o].classList.remove("wptb-table-head")),r[o],n=t[o].getElementsByTagName("td"),null==r[o]&&(r[o]=[]);for(var s=0,i=0;i<n.length;i++){if(null!=r[o][i])for(var d=0;d<100;d++){if(null==r[o][s]){r[o][s]=n[i],n[i].dataset.xIndex=s;break}s++}else r[o][i]=n[i],n[i].dataset.xIndex=s;if(n[i].dataset.yIndex=o,1<n[i].colSpan)for(var c=1;c<n[i].colSpan;c++)s++,r[o][s]="tdDummy";if(1<n[i].rowSpan)for(var m=1;m<n[i].rowSpan;m++){null==r[o+m]&&(r[o+m]=[]);for(var p=0;p<n[i].colSpan;p++)r[o+m][s-n[i].colSpan+1+p]="tdDummy"}s++}a<i&&(a=i)}this.columns=a},w.addColumnEnd=function(){var e=void 0,t=document.getElementsByClassName("wptb-preview-table"),n=void 0,a=void 0;0<t.length&&(n=t[0].querySelector("td")),n&&(a=n.getAttribute("style"));for(var r=0;r<w.rows.length;r++)e=new WPTB_Cell(E),a&&e.getDOMElement().setAttribute("style",a),w.rows[r].appendChild(e.getDOMElement()),array[r].push(0);f++,w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.addColumnStart=function(){var e=void 0,t=void 0,n=document.getElementsByClassName("wptb-preview-table"),a=void 0,r=void 0;0<n.length&&(a=n[0].querySelector("td")),a&&(r=a.getAttribute("style"));for(var l=0;l<w.rows.length;l++)e=new WPTB_Cell(E),r&&e.getDOMElement().setAttribute("style",r),(t=w.rows[l].getElementsByTagName("td")[0])?w.rows[l].insertBefore(e.getDOMElement(),t):w.rows[l].appendChild(e.getDOMElement()),array[l].push(0);f++,w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.addColumnAfter=function(e){var t=w.rows,n=void 0,a=void 0,r=document.querySelector(".wptb-highlighted"),l=r.getAttribute("style"),o=null!=e&&"number"==typeof e?e:N(r)[1];if(f-o-r.colSpan+1==1)w.addColumnEnd();else{for(var s=!1,i=void 0,d=void 0,c=void 0,m=[],p=void 0,u=0;u<f;u++)m.push(0);for(u=0;u<t.length;u++){n=0,a=t[u].getElementsByTagName("td"),s=!1;for(var b=0;b<f;b+=i){if(i=1,s){d=new WPTB_Cell(E),l&&d.getDOMElement().setAttribute("style",l),p&&t[u].contains(p)?(c=p.nextSibling)?t[u].insertBefore(d.getDOMElement(),c):t[u].appendChild(d.getDOMElement()):t[u].insertBefore(d.getDOMElement(),a[0]);break}if(0<m[b])o==b&&(s=!0);else if(1<(p=a[n++]).rowSpan){i=p.colSpan;for(var g=0;g<p.colSpan;g++)m[b+g]=p.rowSpan,b+g==o&&(s=!0)}else if(1<p.colSpan){i=p.colSpan;for(g=0;g<p.colSpan;g++)b+g==o&&(s=!0)}else b==o&&(s=!0)}for(var y=0;y<f;y++)0<m[y]&&m[y]--}for(u=0;u<array.length;u++)array[u].push(0);f++,T(array),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()}},w.addColumnBefore=function(){var e=document.querySelector(".wptb-highlighted"),t=N(e)[1];0===t?w.addColumnStart():w.addColumnAfter(t-1)},w.addRowToTheEnd=function(){var e,t=w.insertRow(-1),n=void 0,a=document.getElementsByClassName("wptb-preview-table"),r=void 0,l=void 0;t.classList.add("wptb-row"),0<a.length&&(r=a[0].querySelector("td")),r&&(l=r.getAttribute("style"));for(var o=0;o<f;o++)n=new WPTB_Cell(E),l&&n.getDOMElement().setAttribute("style",l),t.appendChild(n.getDOMElement());e=Array.from(array[0]),array.push(e),T(array),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.addRowToTheStart=function(){var e,t=w.insertRow(0),n=void 0,a=document.getElementsByClassName("wptb-preview-table"),r=void 0,l=void 0;t.classList.add("wptb-row"),0<a.length&&(r=a[0].querySelector("td")),r&&(l=r.getAttribute("style"));for(var o=0;o<f;o++)n=new WPTB_Cell(E),l&&n.getDOMElement().setAttribute("style",l),t.appendChild(n.getDOMElement());e=Array.from(array[0]),array.push(e),T(array),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.addRowBefore=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),n=N(e)[0],a=void 0,r=n-1;0<=r;r--){var l=w.rows[r].children,o=l.length;if(0<o)for(var s=0;s<o;s++)if(1==l[s].rowSpan){n=r,a=!0;break}if(a)break}0===n?w.addRowToTheStart():w.addRowAfter(n,t)},w.addRowAfter=function(e,t){var n,a=void 0;if(null!=e&&"number"==typeof e||null!=t)a=e;else{var r=document.querySelector(".wptb-highlighted");t=r.getAttribute("style"),a=(e=N(r)[0])+r.rowSpan-1}var l=0;if(a<w.rows.length-1){for(var o=0;o<=a;o++){var s=w.rows[o].children,i=s.length;if(0<i)for(var d=0;d<i;d++){a<s[d].rowSpan-1+o&&s[d].rowSpan++}}var c=w.rows[a+1].children,m=c.length;if(0<m)for(var p=0;p<m;p++)l+=c[p].colSpan}else l=array[0].length;var u=w.insertRow(a+1);for(u.classList.add("wptb-row"),g=0;g<l;g++){var b=new WPTB_Cell(E);b.getDOMElement().setAttribute("style",t),u.appendChild(b.getDOMElement())}n=Array.from(array[0]),array.push(n),T(array),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.isSquare=function(e){for(var t,n,a=-1,r=-1,l=-1,o=-1,s=0,i=0;i<e.length;i++)for(var d=0;d<e[i].length;d++)1==e[i][d]&&((d<r||-1==r)&&(r=d),(i<a||-1==a)&&(a=i));for(i=e.length-1;-1<i;i--)for(d=e[i].length-1;-1<d;d--)1==e[i][d]&&(o<d&&(o=d),l<i&&(l=i));for(i=a;i<l;i++)for(d=r;d<o;d++)if(0==e[i][d]||null==e[i][d])return!1;for(i=0;i<e.length;i++)for(d=0;d<e[i].length;d++)1==e[i][d]&&s++;return(t=l-a+1)*(n=o-r+1)===s&&[t,n]},w.mergeCells=function(){for(var e=w.isSquare(array),t=e[0],n=e[1],a=document.querySelector(".wptb-highlighted"),r=[].slice.call(document.getElementsByClassName("wptb-highlighted"),1),l=[],o=0;o<r.length;o++){var s=r[o].getElementsByClassName("wptb-ph-element");if(0<s.length)for(var i=s.length,d=0;d<i;d++)l.push(s[d]);r[o].parentNode.removeChild(r[o])}if(0<l.length)for(var c=0;c<l.length;c++)a.appendChild(l[c]);a.colSpan=n,a.rowSpan=t,w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.splitCell=function(){var e=document.getElementsByClassName("wptb-highlighted")[0],t=e.rowSpan,n=e.colSpan,a=e.getAttribute("style"),r=N(e)[0],l=w.rows[r],o=e.dataset.xIndex;e.rowSpan=1;for(var s=e.colSpan=1;s<n;s++){var i=new WPTB_Cell(E);i.getDOMElement().setAttribute("style",a),e.nextSibling?l.insertBefore(i.getDOMElement(),e.nextSibling):l.appendChild(i.getDOMElement())}if(1<t)for(var d=1;d<t;d++){var c=void 0,m=w.rows[r+d],p=m.children,u=p.length;if(0<u)for(var b=0;b<u;b++)if(Number(p[b].dataset.xIndex)>Number(o)){c=p[b];break}for(var g=0;g<n;g++){var y=new WPTB_Cell(E);y.getDOMElement().setAttribute("style",a),null!=c?m.insertBefore(y.getDOMElement(),c):m.appendChild(y.getDOMElement())}}w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w),C()},w.findRowspannedCells=function(e){var t,n=[];if(actualPoints=function(e){for(var t=w.rows[e].getElementsByTagName("td"),n=0,a=0;a<t.length;a++)n+=t[a].colSpan;return n}(e),actualPoints===f)return[];t=f-actualPoints;for(var a=e-1;0<=a&&t;a--){var r=w.rows[a].getElementsByTagName("td");for(a=0;a<r.length;a++)1<r[a].rowSpan&&(n.push(r[a]),t-=r[a].colSpan)}return n},w.addLackingCells=function(){for(var e=[],t=0;t<w.rows.length;t++)e.push(0);for(t=0;t<w.rows.length;t++)for(var n=w.rows[t].getElementsByTagName("td"),a=0;a<n.length;a++)if(1<n[a].rowSpan)for(var r=1;r<n[a].rowSpan;r++)e[t+r]++;for(t=0;t<w.rows.length;t++){n=w.rows[t].getElementsByTagName("td");var l=0;for(a=0;a<n.length;a++)l+=n[a].colSpan;l+=e[t],difference=f-l;for(a=0;a<difference;a++){var o=new WPTB_Cell(E);w.rows[t].appendChild(o.getDOMElement())}}},w.deleteRow=function(){var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),n=e.rowSpan,a=N(e)[0],r=void 0;null==n&&(n=1);for(var l=0;l<n;l++){var o=w.rows[a].children,s=w.rows[a+1],i=void 0,d=void 0,c=[];if(null!=s){d=(i=s.children).length;for(var m=0;m<o.length;m++)if(1<o[m].rowSpan){var p=new WPTB_Cell(E);p.getDOMElement().setAttribute("style",t),p.getDOMElement().colSpan=o[m].colSpan,p.getDOMElement().rowSpan=o[m].rowSpan-1;for(var u=void 0,b=0;b<d;b++)if(Number(i[b].dataset.xIndex)>Number(o[m].dataset.xIndex)){u=i[b];break}u?c.push([p,u]):c.push([p])}if(0<c.length)for(var g=0;g<c.length;g++)null!=c[g][1]?s.insertBefore(c[g][0].getDOMElement(),c[g][1]):s.appendChild(c[g][0].getDOMElement())}var y=w.rows;if(0<y.length)for(var f=0;f<a;f++){var v=y[f].children;if(0<v.length)for(var h=0;h<v.length;h++)v[h].rowSpan-1>=a-f&&v[h].rowSpan--}r=Array.from(array[0]),array.pop(r),T(array),w.getElementsByTagName("tbody")[0].removeChild(w.rows[a]),0==w.rows.length&&(w.toggleTableEditMode(),B.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w)}C()},w.deleteColumn=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.dataset.xIndex,n=e.colSpan,a=0;a<n;a++){for(var r=0;r<w.rows.length;r++){var l=w.rows[r].children,o=l.length;if(0<o)for(var s=o-1;0<=s;s--){if(Number(l[s].dataset.xIndex)==Number(t)){1<l[s].colSpan?l[s].colSpan--:w.rows[r].removeChild(l[s]);break}if(Number(l[s].dataset.xIndex)<Number(t)&&Number(l[s].dataset.xIndex)+Number(l[s].colSpan-1)>=t){1<l[s].colSpan&&l[s].colSpan--;break}}}for(var i=0;i<w.rows.length;i++)null!=array[i]&&array[i].pop();f--,0==w.querySelectorAll("td").length&&(w.toggleTableEditMode(),B.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),w.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(w)}C()},document.getElementsByClassName("wptb-table-generator")[0].style.display="none",array=function(){for(var e=[],t=[],n=0;n<w.rows.length;n++){for(var a=w.rows[n].getElementsByTagName("td"),r=0,l=0;l<a.length;l++)r+=a[l].colSpan;e.push(r)}f=Math.max.apply(null,e);var o=w.rows.length;for(n=0;n<o;n++)for(t[n]=[],l=0;l<f;l++)t[n].push(0);return T(t),t}(),C(),T(array),B.appendChild(w),w.recalculateIndexes(!0),WPTB_LeftPanel()};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Text=function(e,t){var n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("p"),l=void 0,o=!1;if(n.classList.add("wptb-text-container"),r.innerHTML=null!=e?e:"Text",a.appendChild(r),n.appendChild(a),t){var s=t.className.match(/wptb-element-((.+-)\d+)/i);s&&Array.isArray(s)&&(l=s[1],o=!0);for(var i=[].concat(_toConsumableArray(t.attributes)),d=0;d<i.length;d++)n.setAttribute(i[d].name,i[d].value)}return this.kind="text",this.getDOMElement=function(){return n},applyGenericItemSettings(this,l,o),this},WPTB_innerElementSet=function m(t){t.ondragenter=function(e){-1==e.dataTransfer.types.indexOf("wptbelement")&&-1==e.dataTransfer.types.indexOf("wptb-moving-mode")||(WPTB_DropHandle(this,e),t.classList.add("ondragenter"))},t.ondragover=function(e){e.preventDefault(),WPTB_DropHandle(this,e)},t.ondragleave=function(){},t.ondrop=function(e){this.classList.remove("ondragenter");var t=void 0,n=void 0;if(e.preventDefault(),e.stopPropagation(),e.dataTransfer.getData("wptbElement")||e.dataTransfer.getData("node")){var a,r=void 0,l=void 0;if(0<document.getElementsByClassName("wptb-drop-handle").length&&(r=document.getElementsByClassName("wptb-drop-handle")[0]),0<document.getElementsByClassName("wptb-drop-border-marker").length&&(l=document.getElementsByClassName("wptb-drop-border-marker")[0]),e.dataTransfer.getData("wptbElement")?t=(t="list"==(a=e.dataTransfer.getData("wptbElement"))?new WPTB_List:"image"==a?new WPTB_Image:"text"==a?new WPTB_Text:"button"==a?new WPTB_Button:void 0).getDOMElement():(n=e.dataTransfer.getData("node"),(t=document.getElementsByClassName(n)[0]).classList.remove("wptb-moving-mode")),"block"==r.style.display){var o=void 0;if("Drop Here"==r.dataset.text)(o=r.getDOMParentElement()).appendChild(t);else{var s=r.getDOMParentElement();if(o=s.parentNode,"Abowe Element"==r.dataset.text)o.insertBefore(t,s);else if("Below Element"==r.dataset.text){var i=s.nextSibling;o.insertBefore(t,i)}}var d=o.parentNode;if(d.classList.contains("wptb-table-head")){var c=WPTB_Helper.findAncestor(d,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(c)}return r.style.display="none",l.style.display="none",m(t),!0}}},t.onmouseover=function(e){t.classList.remove("ondragenter")}},applyGenericItemSettings=function(p,e){var t,u,n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],b=p.getDOMElement();if(null==e||1==n){t=document.counter.nextIndex(p.kind);for(var a=document.getElementsByClassName("wptb-ph-element"),r=[],l=0;l<a.length;l++){var o=new RegExp("wptb-element-"+p.kind+"-(\\d+)","i"),s=a[l].className.match(o);s&&r.push(s[1])}if(0<r.length)t=Math.max.apply(Math,r)+1;else t=1}else e&&!n&&(t=e.split("-")[1]);if(b.onmouseenter=function(e){this.classList.add("wptb-directlyhovered");var t=document.createElement("span"),n=document.createElement("span"),a=document.createElement("span"),r=document.createElement("span");r.classList.add("wptb-actions"),t.classList.add("dashicons","dashicons-trash","wptb-delete-action"),n.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),a.classList.add("dashicons","dashicons-move","wptb-move-action"),a.draggable=!0,t.onclick=function(e){var t=this.parentNode.parentNode,n=t.parentNode;if(n.removeChild(t),"text"==t.kind){var a=n.parentNode;if(a.classList.contains("wptb-table-head")){var r=WPTB_Helper.findAncestor(a,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(r)}}},n.onclick=function(e){var t=void 0;if("list"==p.kind){e.target.parentNode.parentNode.parentNode;for(var n=[],a=e.target.parentNode.parentNode.querySelectorAll("ul li .wptb-list-item-content"),r=0;r<a.length;r++)n.push(a[r].innerHTML);t=new WPTB_List(n,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else if("text"==p.kind){e.target.parentNode.parentNode.parentNode;t=new WPTB_Text(e.target.parentNode.parentNode.childNodes[0].innerHTML,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else if("image"==p.kind){e.target.parentNode.parentNode.parentNode;t=new WPTB_Image(e.target.parentNode.parentNode.children[0].children[0].src,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else{e.target.parentNode.parentNode.parentNode;var l=e.target.parentNode.parentNode.childNodes[0].querySelector("p").innerHTML;t=new WPTB_Button(l,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}WPTB_innerElementSet(t.getDOMElement())};var l,o,s=this;l=s.className.match(/wptb-element-(.+)-(\d+)/i),o=l[1];var i=WPTB_Helper.dragImagesArr();if(a.ondragstart=function(e){if(this.parentNode.style.opacity=0,s.classList.remove("wptb-directlyhovered"),s.classList.add("wptb-moving-mode"),e.dataTransfer.setDragImage(i[o],0,0),e.dataTransfer.setData("node","wptb-element-"+l[1]+"-"+l[2]),e.dataTransfer.setData("wptb-moving-mode","wptb-element-"+l[1]+"-"+l[2]),e.dataTransfer.setData("wptbElIndic-"+l[1],"wptbElIndic-"+l[1]),"text"==e.target.parentNode.parentNode.kind){var t=el.parentNode;if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}}},"button"===p.kind){var d=b.querySelector("a"),c=d.querySelector("div");d.onclick=function(e){e.preventDefault()},WPTB_Helper.buttonsTinyMceInit(c)}else if("text"===p.kind)tinyMCE.init({target:b.childNodes[0],inline:!0,plugins:"link, paste",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",paste_as_text:!0,toolbar:"bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify",setup:function(e){e.on("change",function(e){var t=WPTB_Helper.findAncestor(b,"wptb-row");if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}});else{u=b.getElementsByClassName("wptb-list-item-content");for(var m=0;m<u.length;m++)WPTB_Helper.listItemsTinyMceInit(u[m])}r.appendChild(a),r.appendChild(n),r.appendChild(t),this.appendChild(r)},b.onmouseleave=function(e){this.classList.remove("wptb-directlyhovered");for(var t=0;e.target.querySelector(".wptb-actions")&&t<5;)e.target.querySelector(".wptb-actions").remove(),t++},"text"==p.kind){new MutationObserver(function(e){var t=WPTB_Helper.findAncestor(b,"wptb-row");if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}}).observe(p.getDOMElement(),{attributes:!0,attributeFilter:["style"]})}var i=b.className.match(/wptb-element-(.+)-(\d+)/i);i&&b.classList.remove(i[0]),b.classList.contains("wptb-ph-element")||b.classList.add("wptb-ph-element"),b.classList.contains("wptb-element-"+p.kind+"-"+t)||b.classList.add("wptb-element-"+p.kind+"-"+t),new WPTB_ElementOptions(p,t,e),document.counter.increment(p.kind)};
1
+ function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}document.addEventListener("DOMContentLoaded",function(){var e=WPTB_Helper.detectMode();if(e){var n=new XMLHttpRequest,t=ajaxurl+"?action=get_table&id="+e;n.open("GET",t,!0),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.onreadystatechange=function(e){if(4!=this.readyState||200!=this.status);else{var t=JSON.parse(n.responseText);document.getElementById("wptb-setup-name").value=t[0],t[1]?(document.getElementsByClassName("wptb-table-generator")[0].style.display="none",document.getElementsByClassName("wptb-table-setup")[0].appendChild(WPTB_Parser(t[1])),WPTB_Table(),WPTB_LeftPanel(),WPTB_Settings()):document.getElementsByClassName("wptb-table-generator")[0].style.display="table"}},n.send(null)}else document.getElementsByClassName("wptb-table-generator")[0].style.display="table";document.counter=new ElementCounters,document.select=new MultipleSelect,WPTB_Initializer(),settings=WPTB_Settings()});var WPTB_Button=function(e,t){var n=document.createElement("div"),a=document.createElement("div"),l=document.createElement("a"),r=document.createElement("div"),o=void 0,i=!1;if(n.classList.add("wptb-button-container","wptb-size-M","wptb-"),a.classList.add("wptb-button-wrapper"),r.classList.add("wptb-button"),r.innerHTML=null!=e?e:"Button Text",t){var s=t.className.match(/wptb-element-((.+-)\d+)/i);s&&Array.isArray(s)&&(o=s[1],i=!0);var d=[].concat(_toConsumableArray(t.attributes));if(0<d.length)for(var c=0;c<d.length;c++)n.setAttribute(d[c].name,d[c].value);var p=t.querySelector(".wptb-button-wrapper");if(p){var m=[].concat(_toConsumableArray(p.attributes));if(0<m.length)for(var u=0;u<m.length;u++)"style"==m[u].name&&a.setAttribute(m[u].name,m[u].value)}var b=t.querySelector("a");if(b){var g=[].concat(_toConsumableArray(b.attributes));if(0<g.length)for(var h=0;h<g.length;h++)"style"!=g[h].name&&"href"!=g[h].name&&"target"!=g[h].name||l.setAttribute(g[h].name,g[h].value)}}return a.appendChild(l),l.appendChild(r),n.appendChild(a),this.kind="button",this.getDOMElement=function(){return n},applyGenericItemSettings(this,o,i),this},WPTB_Cell=function(e,i){if(!i){(i=document.createElement("td")).style.padding=jQuery("#wptb-table-padding-number").val()+"px";var t=jQuery("#wptb-table-inner-border-number").val();""!=t&&0!=parseInt(t)&&(i.style.border=t+"px solid "+jQuery("#wptb-table-border-color").val()),i.classList.add("wptb-droppable","wptb-cell")}i.draggable=!1,e&&(i.onclick=e),WPTB_innerElementSet(i);var s=i.getElementsByClassName("wptb-ph-element");if(0<s.length)for(var n=function(e){var t=i.getElementsByClassName("wptb-space-between");if(0<t.length)for(var n=0;n<t.length;n++)WPTB_Space(t[n]);s[e].getDOMElement=function(){return s[e]},WPTB_innerElementSet(s[e]);var a=s[e].className.match(/wptb-element-((.+-)\d+)/i);if(a&&Array.isArray(a)){var l=a[1].split("-");if(s[e].kind=l[0],applyGenericItemSettings(s[e],a[1]),"list"==s[e].kind){var r=s[e].getElementsByTagName("li");if(0<r.length)for(var o=0;o<r.length;o++)WPTB_ListItem(void 0,r[o])}}},a=0;a<s.length;a++)n(a);return this.getDOMElement=function(){return i},this.setCoords=function(e,t){var n=this.getDOMElement();n.dataset.yIndex=e,n.dataset.xIndex=t},this.getCoords=function(){var e,t=this.getDOMElement();return e.x=t.dataset.xIndex,e.y=t.dataset.yIndex,e},this.appendElement=function(e){getDOMElement().appendChild(e)},i.getCellDimensions=function(){var e=window.getComputedStyle(this,null),t=e.getPropertyValue("padding-left"),n=e.getPropertyValue("padding-right"),a=e.getPropertyValue("border-left-width"),l=e.getPropertyValue("border-right-width"),r=e.getPropertyValue("padding-top"),o=e.getPropertyValue("padding-bottom"),i=e.getPropertyValue("border-top-width"),s=e.getPropertyValue("border-bottom-width");return{width:parseFloat(this.offsetWidth,10)-parseFloat(t,10)-parseFloat(n,10)-parseFloat(a,10)-parseFloat(l,10),height:parseFloat(this.offsetHeight,10)-parseFloat(r,10)-parseFloat(o,10)-parseFloat(i,10)-parseFloat(s,10)}},this},WPTB_DropHandle=function(s,e){var d=void 0,c=void 0;if(0==document.getElementsByClassName("wptb-drop-handle").length){(d=document.createElement("div")).classList.add("wptb-drop-handle"),(c=document.createElement("div")).classList.add("wptb-drop-border-marker");var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),l=document.createElement("div");t.classList.add("wptb-drop-border-marker-top"),n.classList.add("wptb-drop-border-marker-right"),a.classList.add("wptb-drop-border-marker-bottom"),l.classList.add("wptb-drop-border-marker-left"),c.appendChild(t),c.appendChild(n),c.appendChild(a),c.appendChild(l);var r=document.getElementsByTagName("body");0<r.length&&(r[0].appendChild(d),r[0].appendChild(c)),d.ondragenter=function(){},d.ondragover=function(e){e.preventDefault()},d.ondragleave=function(){},d.ondrop=function(e){e.preventDefault();var t,n=void 0;e.dataTransfer.getData("wptbElement")?n=(n=(t=e.dataTransfer.getData("wptbElement")).includes("list")?new WPTB_List:t.includes("image")?new WPTB_Image:t.includes("text")?new WPTB_Text:t.includes("button")?new WPTB_Button:void 0).getDOMElement():((n=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).classList.remove("wptb-moving-mode"),n.classList.remove("wptb-moving-into-same-elem"));var a=void 0;if("Drop Here"==d.dataset.text)"td"==(s=d.getDOMParentElement()).nodeName.toLowerCase()&&(a=d.getDOMParentElement()).appendChild(n);else{var l=d.getDOMParentElement();if(a=l.parentNode,"Abowe Element"==d.dataset.text)a.insertBefore(n,l);else if("Below Element"==d.dataset.text){var r=l.nextSibling;a.insertBefore(n,r)}}var o=a.parentNode;if(o.classList.contains("wptb-table-head")){var i=WPTB_Helper.findAncestor(o,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(i)}d.style.display="none",c.style.display="none",WPTB_innerElementSet(n)},document.querySelector(".wptb-container").onscroll=function(){d.style.display="none",c.style.display="none"}}else d=document.getElementsByClassName("wptb-drop-handle")[0],c=document.getElementsByClassName("wptb-drop-border-marker")[0];if(!s||"td"!=s.nodeName.toLowerCase()||0==s.getElementsByClassName("wptb-ph-element").length){var o=void 0;if("td"==s.localName?o=s.parentNode:"div"==s.localName&&s.classList.contains("wptb-ph-element")&&(o=s.parentNode.parentNode),o.classList.contains("wptb-table-head")){for(var i=e.dataTransfer.types,p=!1,m=0;m<i.length;m++){var u=i[m].match(/wptbelindic-([a-z]+)/i);if(u&&"text"!=u[1]){p=!0;break}}if(p)return}d.style.width=s.offsetWidth+"px";var b=s.offsetHeight,g=s.getBoundingClientRect(),h=Number(g.left),w=void 0;if(d.style.left=h+"px",-1!=e.dataTransfer.types.indexOf("wptb-moving-mode")){var y=document.getElementsByClassName("wptb-moving-mode")[0];s==y?(d.classList.add("wptb-moving-into-same-elem"),c.classList.add("wptb-moving-into-same-elem")):(d.classList.remove("wptb-moving-into-same-elem"),c.classList.remove("wptb-moving-into-same-elem"))}if(d.getDOMParentElement=function(){return s},d.style.display="block",c.style.display="block","td"!=s.nodeName.toLowerCase()){var f=null==e.offsetY?e.layerY:e.offsetY;w=Number(g.top)-Number(11),d.dataset.text="Abowe Element",b/2<f&&(w=Number(g.top)+b-1,d.dataset.text="Below Element")}else d.dataset.text="Drop Here",w=Number(g.top)+b/2-5;d.style.top=w+"px",c.style.top=g.top+"px",c.style.left=g.left+"px",wptbDropBorderMarkerTop=c.querySelector(".wptb-drop-border-marker-top"),wptbDropBorderMarkerTop.style.width=Number(s.offsetWidth)-Number(1)+"px",wptbDropBorderMarkerRight=c.querySelector(".wptb-drop-border-marker-right"),wptbDropBorderMarkerRight.style.height=Number(g.bottom)-Number(g.top)-1+"px",wptbDropBorderMarkerRight.style.left=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom=c.querySelector(".wptb-drop-border-marker-bottom"),wptbDropBorderMarkerBottom.style.width=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom.style.top=wptbDropBorderMarkerRight.style.height,wptbDropBorderMarkerLeft=c.querySelector(".wptb-drop-border-marker-left"),wptbDropBorderMarkerLeft.style.height=wptbDropBorderMarkerRight.style.height}},ElementCounters=function(){var t=[];return t.text=0,t.image=0,t.list=0,t.button=0,this.increment=function(e){e in t&&t[e]++},this.nextIndex=function(e){if(e in t)return t[e]+1},this},WPTB_ElementOptions=function(e,t,n){var a,l=e.getDOMElement();prop=document.querySelector(".wptb-"+e.kind+"-options-prototype").cloneNode(!0),prop.classList.remove("wptb-"+e.kind+"-options-prototype"),a="wptb-options-"+e.kind+"-"+t;for(var r=prop.getElementsByClassName("wptb-element-property"),o=0;o<r.length;o++)r[o].dataset.element=a;if(prop.classList.add(a),document.getElementById("element-options-group").appendChild(prop),n)if("button"==e.kind){var i=document.getElementsByClassName("wptb-element-"+n)[0],s=void 0,d=void 0,c=void 0,p=void 0;if(i&&(p=i.className.match(/wptb-size-([a-z]+)/i)),p&&Array.isArray(p)){var m=prop.getElementsByClassName("wptb-btn-size-btn");for(o=0;o<m.length;o++)m[o].classList.remove("selected"),m[o].innerHTML==p[1]&&m[o].classList.add("selected")}if(i&&(s=i.getElementsByClassName("wptb-button-wrapper"),d=i.getElementsByTagName("a"),c=i.getElementsByClassName("wptb-button")),s){var u=s[0].style.justifyContent,b=prop.querySelector('select[data-type="button-alignment"]').getElementsByTagName("option"),g=void 0;"flex-start"==u?g="left":"center"!=u&&u?"flex-end"==u&&(g="right"):g="center";for(var h=0;h<b.length;h++)b[h].value==g&&(b[h].selected=!0)}if(0<d.length){var w=d[0].getAttribute("href"),y=d[0].getAttribute("target"),f=d[0].getAttribute("id"),v=prop.querySelector('input[data-type="button-link"]'),B=prop.querySelector('input[data-type="button-link-target"]'),E=B.getAttribute("id"),C=B.parentNode.getElementsByTagName("label")[0],T=prop.querySelector('input[data-type="button-id"]');E=E+"-"+n.split("-")[1],B.setAttribute("id",E),C.setAttribute("for",E),v.value=w,y&&"_blank"==y&&(B.checked=!0),T.value=f}if(c){var x=c[0].style.color,I=c[0].style.backgroundColor,N=prop.querySelector('input[data-type="button-text-color"]'),S=prop.querySelector('input[data-type="button-color"]');N.value=WPTB_Helper.rgbToHex(x),S.value=WPTB_Helper.rgbToHex(I)}}else if("image"==e.kind){var k=document.getElementsByClassName("wptb-element-"+n);if(0<k.length){var _=k[0].getElementsByTagName("a");if(0<_.length){var L=_[0];if(L){L.onclick=function(e){e.preventDefault()};for(var A=L.style.textAlign,W=prop.querySelector('select[data-type="image-alignment"]').getElementsByTagName("option"),P=0;P<W.length;P++)W[P].value==A&&(W[P].selected=!0);var D=L.getAttribute("href"),M=prop.querySelector('input[data-type="image-link"]');D&&(M.value=D);var H=L.getAttribute("target"),q=prop.querySelector('input[data-type="image-link-target"]'),O=q.getAttribute("id"),R=q.parentNode.getElementsByTagName("label")[0];O=O+"-"+n.split("-")[1],q.setAttribute("id",O),R.setAttribute("for",O),H&&"_blank"==H&&(q.checked=!0);var F=L.getElementsByTagName("img");if(0<F.length){var z=F[0].style.width;if(z){var j=prop.querySelector('input[type="range"][data-type="image-size"]'),Q=prop.querySelector('input[type="number"][data-type="image-size"]');j.value=parseInt(z),Q.value=parseInt(z)}var V=F[0].getAttribute("alt");prop.querySelector('input[type="text"][data-type="alternative-text"]').value=V}}}}}else if("text"==e.kind){var G=document.getElementsByClassName("wptb-element-"+n);if(0<G.length){var J=G[0].style.fontSize,Y=G[0].style.color,X=prop.querySelector('input[type="range"][data-type="font-size"]'),K=prop.querySelector('input[type="number"][data-type="font-size"]'),U=prop.querySelector('input[type="text"][data-type="color"]');X.value=parseInt(J),K.value=parseInt(J),U.value=WPTB_Helper.rgbToHex(Y)}}else if("list"==e.kind){var $=document.getElementsByClassName("wptb-element-"+n);if(0<$.length){var Z=$[0].querySelector("p").style.color;prop.querySelector('input[type="text"][data-type="list-text-color"]').value=WPTB_Helper.rgbToHex(Z);var ee=$[0].querySelectorAll("li");if(0<ee.length){var te=ee[0].querySelector("p").classList;if(0<te.length){var ne=prop.querySelector('select[data-type="list-class"]');if(ne){ne.value="unordered";for(var ae=ne.parentNode.nextSibling,le=0;le<10&&"1"!=ae.nodeType;le++)ae=ae.nextSibling;if(ae){var re=ae.getAttribute("id");ae.setAttribute("id",re+"-"+n),ae.style.display="flex"}var oe=prop.querySelector('select[data-type="list-style-type"]');oe&&(oe.parentNode.style.display="flex",te.contains("wptb-list-style-type-disc")?oe.value="disc":te.contains("wptb-list-style-type-circle")?oe.value="circle":te.contains("wptb-list-style-type-square")?oe.value="square":te.contains("wptb-list-style-type-none")&&(oe.value="none"))}}}var ie=$[0].getElementsByClassName("wptb-list-item-content");if(0<ie.length){for(var se=[],de=0;de<ie.length;de++){var ce=ie[de].querySelector("p");ce&&(ce.style.textAlign?se.push(ce.style.textAlign):se.push("left"))}var pe=0,me=0,ue=0;if(0<se.length)for(var be=0;be<se.length;be++)se[be]&&("left"==se[be]?pe++:"center"==se[be]?me++:"right"==se[be]&&ue++);var ge=prop.querySelector('select[data-type="list-alignment"]'),he=Math.max(pe,me,ue);pe==he?ge.value="left":me==he?ge.value="center":ue==he&&(ge.value="right")}}}if(l.onclick=function(){var e=this.className.match(/wptb-element-((.+-)\d+)/i),t=".wptb-"+e[2]+"options.wptb-options-"+e[1];document.getElementsByClassName("wptb-elements-container")[0].style.display="none",document.getElementsByClassName("wptb-settings-section")[0].style.display="none",document.getElementById("element-options-group").style.display="block";for(var n=document.getElementById("element-options-group").childNodes,a=0;a<n.length;a++)n[a].style&&(n[a].style.display="none");document.querySelector(t).style.display="block"},"button"==e.kind){var we=prop.getElementsByClassName("wptb-btn-size-btn");for(o=0;o<we.length;o++)we[o].onclick=function(){var e=this.innerHTML,t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),n=t[1],a=t[2],l=document.getElementsByClassName("wptb-element-"+n+"-"+a)[0];l.classList.remove("wptb-size-S"),l.classList.remove("wptb-size-M"),l.classList.remove("wptb-size-L"),l.classList.remove("wptb-size-XL"),l.classList.add("wptb-size-"+e);for(var r=this.parentNode.getElementsByClassName("wptb-btn-size-btn"),o=0;o<r.length;o++)r[o].classList.remove("selected");this.classList.add("selected")}}var ye=prop.getElementsByClassName("wptb-element-property");for(o=0;o<ye.length;o++){if(ye[o].classList.contains("wptb-color-picker")&&jQuery(ye[o]).wpColorPicker({change:function(e,t){var n,a,l,r=e.target;if(a=(n=r.dataset.element.match(/wptb-options-(.+)-(\d+)/i))[1],l=n[2],affectedEl=document.getElementsByClassName("wptb-element-"+a+"-"+l)[0],"button"==a)"button-text-color"==r.dataset.type?affectedEl.getElementsByClassName("wptb-button")[0].style.color=t.color.toString():affectedEl.getElementsByClassName("wptb-button")[0].style.backgroundColor=t.color.toString();else if("list"==a){var o=affectedEl.querySelectorAll("p");if(0<o.length)for(var i=0;i<o.length;i++)o[i].style.color=t.color.toString()}else affectedEl.style.color=t.color.toString()}}),"font-size"===ye[o].dataset.type)ye[o].parentNode.parentNode.getElementsByClassName("wptb-text-font-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-text-font-size-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-text-font-size-number")[0].onchange()};if("image-size"===ye[o].dataset.type)ye[o].parentNode.parentNode.getElementsByClassName("wptb-image-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-image-width-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-image-width-number")[0].onchange()};ye[o].onchange=function(e){var t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),n=t[1],a=t[2],l=document.getElementsByClassName("wptb-element-"+n+"-"+a)[0],r=this.value;switch(this.dataset.type){case"src":l.getElementsByTagName("img")[0].src=this.value;break;case"alternative-text":l.getElementsByTagName("img")[0].alt=this.value;break;case"image-link":l.getElementsByTagName("a")[0].href=WPTB_Helper.linkHttpCheckChange(this.value);break;case"image-link-target":1==this.checked?l.getElementsByTagName("a")[0].target="_blank":l.getElementsByTagName("a")[0].target="_self";break;case"image-link-nofollow":1==this.checked?l.getElementsByTagName("a")[0].rel="nofollow":l.getElementsByTagName("a")[0].removeAttribute("rel");break;case"image-size":l.getElementsByTagName("a")[0].style.width=this.value+"%",l.getElementsByTagName("a")[0].style.height="auto",this.parentNode.parentNode.getElementsByClassName("wptb-image-size-slider")[0].value=this.value;break;case"image-alignment":l.getElementsByClassName("wptb-image-wrapper")[0].style.textAlign=this.value;break;case"font-size":l.style.fontSize=r+"px";break;case"button-alignment":var o="";o="left"==this.value?"start":"right"==this.value?"flex-end":"center",l.getElementsByClassName("wptb-button-wrapper")[0].style.justifyContent=o;break;case"button-link":this.value?l.getElementsByTagName("a")[0].href=WPTB_Helper.linkHttpCheckChange(this.value):l.getElementsByTagName("a")[0].removeAttribute("href");break;case"button-link-target":1==this.checked?l.getElementsByTagName("a")[0].target="_blank":l.getElementsByTagName("a")[0].target="_self";break;case"button-link-nofollow":1==this.checked?l.getElementsByTagName("a")[0].rel="nofollow":l.getElementsByTagName("a")[0].removeAttribute("rel");break;case"button-id":this.value?l.getElementsByTagName("a")[0].id=this.value:l.getElementsByTagName("a")[0].removeAttribute("id");case"button-color":break;case"list-alignment":for(var i=l.querySelectorAll("li"),s=0;s<i.length;s++){var d=i[s].querySelector("p");d&&(d.style.textAlign=this.value)}break;case"list-class":var c=e.target.parentNode.parentNode.querySelector("[data-type=list-style-type]").parentNode,p=c.parentNode;if("unordered"==r){c.style.display="flex",p.querySelector(".wptb-list-icon-select-label").style.display="flex";var m=l.querySelectorAll("li");for(s=0;s<m.length;s++){var u=m[s].querySelector("p");u.removeAttribute("class"),u.classList.add("wptb-list-style-type-disc")}p.querySelector("[data-type=list-style-type]").value="disc"}else{c.style.display="none",p.querySelector(".wptb-list-icon-select-label").style.display="none";var b=l.querySelectorAll("li");for(s=0;s<b.length;s++){b[s].querySelector("p").removeAttribute("class")}}break;case"list-style-type":for(b=l.querySelectorAll("li"),s=0;s<b.length;s++){var g=b[s].querySelector("p");g.removeAttribute("class"),g.classList.add("wptb-list-style-type-"+r.toLowerCase())}}}}},WPTB_Helper={hexToRgb:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?"rgb("+parseInt(t[1],16)+","+parseInt(t[2],16)+","+parseInt(t[3],16)+")":null},rgbToHex:function(e){return(e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):""},getDragImageCustom:function(e){var t=location.protocol+"//"+location.hostname,n=document.createElement("img");return n.src=t+"/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/"+e+".png",n},dragImagesArr:function(){return{text:WPTB_Helper.getDragImageCustom("text"),image:WPTB_Helper.getDragImageCustom("image"),button:WPTB_Helper.getDragImageCustom("button"),list:WPTB_Helper.getDragImageCustom("list")}},listItemsRecalculateIndex:function(e){var t=e.querySelectorAll("p");if(0<t.length)for(var n=0;n<t.length;n++)t[n].dataset.listStyleTypeIndex=Number(n)+1+"."},listItemsTinyMceInit:function(e){tinyMCE.init({target:e,inline:!0,plugins:"link, paste",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",paste_as_text:!0,toolbar:"bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify",setup:function(e){e.on("keydown",function(e){var t=e.target.parentNode;if(13==e.keyCode){e.preventDefault();var n=e.target.innerHTML,a=new WPTB_ListItem(n,t,!0);t.parentNode.insertBefore(a.getDOMElement(),t),WPTB_Helper.listItemsTinyMceInit(a.getDOMElement().firstChild),e.target.querySelector("p").innerText="New List Item",WPTB_Helper.listItemsRecalculateIndex(t.parentNode)}else if("8"==e.keyCode||"46"==e.keyCode){var l=e.target.querySelector("p").innerHTML.replace(/<[^>]+>/g,"");if(""==(l=(l=l.replace(/\s+/g," ").trim()).replace(/&nbsp;/g,"").trim()))e.preventDefault(),e.target.querySelector("p").innerText="\n";else{var r=WPTB_Helper.getSelectionText();(r=(r=r.replace(/\s+/g," ").trim()).replace(/&nbsp;/g,"").trim())==l&&(e.preventDefault(),e.target.querySelector("p").innerText="\n")}}}),e.on("keyup",function(e){})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}})},buttonsTinyMceInit:function(e){tinyMCE.init({target:e,inline:!0,plugins:"link",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",toolbar:"bold italic strikethrough",setup:function(e){e.on("keydown",function(e){13==e.keyCode&&e.preventDefault()})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}})},linkHttpCheckChange:function(e){if(e){if(-1!=e.indexOf("http://")||-1!=e.indexOf("https://"))return e;var t=e.split("/"),n=void 0;return Array.isArray(t)&&0<t.length&&(n=t[t.length-1]),document.location.protocol+"//"+n}return""},dataTitleColumnSet:function(e){for(var t=e.rows,n=t[0],a=getComputedStyle(n),l=n.children,r={},o=0;o<l.length;o++){for(var i=l[o].children,s=0;s<i.length;s++){var d=i[s];if(d.classList.contains("wptb-ph-element"))if("text"==d.className.match(/wptb-element-(.+)-(\d+)/i)[1]){var c=d.querySelector("p"),p=c.textContent,m=c.style.textAlign;r[l[o].dataset.xIndex]=[p,d.style.fontSize,d.style.color,a.backgroundColor,m];break}}r[l[o].dataset.xIndex]||(r[l[o].dataset.xIndex]=["","","",a.backgroundColor,""])}for(var u=1;u<t.length;u++)for(var b=t[u].children,g=0;g<b.length;g++)r[b[g].dataset.xIndex]?(b[g].dataset.wptbTitleColumn=r[b[g].dataset.xIndex][0],b[g].dataset.wptbTitleColumnFontSize=r[b[g].dataset.xIndex][1],b[g].dataset.wptbTitleColumnColor=r[b[g].dataset.xIndex][2],b[g].dataset.wptbTitleBackgroundColor=r[b[g].dataset.xIndex][3],b[g].dataset.wptbTitleAlign=r[b[g].dataset.xIndex][4]):(b[g].dataset.wptbTitleColumn="",b[g].dataset.wptbTitleColumnFontSize="",b[g].dataset.wptbTitleColumnColor="",b[g].dataset.wptbTitleBackgroundColor="",b[g].dataset.wptbTitleAlign="")},findAncestor:function(e,t){for(;(e=e.parentElement)&&!e.classList.contains(t););return e},getSelectionText:function(){return window.getSelection?window.getSelection().toString():document.selection.createRange().text},settingsPanelClear:function(){document.getElementById("wptb-top-row-as-header").checked=!1,document.getElementById("wptb-table-border-slider").value=0,document.getElementById("wptb-table-border-number").value=0,document.getElementById("wptb-inner-border-check").checked=!1,document.getElementById("wptb-apply-inner-border").classList.remove("visible"),document.getElementById("wptb-table-inner-border-slider").value=1,document.getElementById("wptb-table-inner-border-number").value=1,WPTB_Helper.wpColorPickerClear("wptb-table-border-color"),WPTB_Helper.wpColorPickerClear("wptb-table-header-bg"),WPTB_Helper.wpColorPickerClear("wptb-even-row-bg"),WPTB_Helper.wpColorPickerClear("wptb-odd-row-bg"),document.getElementById("wptb-table-cell-slider").value=15,document.getElementById("wptb-table-cell-number").value=15},wpColorPickerClear:function(e){var t=document.getElementById(e),n=WPTB_Helper.findAncestor(t,"wp-picker-container"),a=n.parentNode;a.removeChild(n);var l=document.createElement("input");l.setAttribute("id",e),l.value="",a.appendChild(l)},detectMode:function(){var e=window.location.href,t=new RegExp("[?&]table(=([^&#]*)|&|#|$)").exec(e);return!!t&&(t[2]?decodeURIComponent(t[2].replace(/\+/g," ")):"")},getColumnWidth:function(e,t){for(var n=t.dataset.xIndex,a=e.querySelectorAll('[data-x-index="'+n+'"]'),l=t.getCellDimensions().width,r=0;r<a.length;r++)l>a[r].getCellDimensions().width&&(l=a[r].getCellDimensions().width);return l},getRowHeight:function(e,t){for(var n=t.dataset.yIndex,a=e.querySelectorAll('[data-y-index="'+n+'"]'),l=t.getCellDimensions().height,r=0;r<a.length;r++)l>a[r].getCellDimensions().height&&(l=a[r].getCellDimensions().height);return l}},WPTB_Image=function(e,t){var n=void 0,a=void 0,l=void 0,r=!1;if(null==t){n=document.createElement("div"),a=document.createElement("div");var o=document.createElement("a"),i=document.createElement("img");o.style.display="inline-block",o.appendChild(i),n.classList.add("wptb-image-container"),a.classList.add("wptb-image-wrapper"),a.appendChild(o),n.appendChild(a),o.onclick=function(e){e.preventDefault()},file_frame=wp.media.frames.file_frame=wp.media({title:"Select a image to upload",button:{text:"Use this image"},multiple:!1}),file_frame.on("select",function(){attachment=file_frame.state().get("selection").first().toJSON(),i.src=attachment.url}),null==e?file_frame.open():i.src=e}else{(n=t.cloneNode(!0)).getElementsByTagName("a")[0].onclick=function(e){e.preventDefault()};var s=t.className.match(/wptb-element-((.+-)\d+)/i);s&&Array.isArray(s)&&(l=s[1],r=!0)}return this.kind="image",this.getDOMElement=function(){return n},applyGenericItemSettings(this,l,r),this},WPTB_Initializer=function(){var e=document.body;columnsDecrementButton=e.getElementsByClassName("wptb-input-number-decrement")[0],columnsIncrementButton=e.getElementsByClassName("wptb-input-number-increment")[0],rowsDecrementButton=e.getElementsByClassName("wptb-input-number-decrement")[1],rowsIncrementButton=e.getElementsByClassName("wptb-input-number-increment")[1],columnsInput=document.getElementById("wptb-columns-number"),rowsInput=document.getElementById("wptb-rows-number"),columnsDecrementButton.onclick=function(){1<columnsInput.value&&columnsInput.value--},columnsIncrementButton.onclick=function(){columnsInput.value<10&&columnsInput.value++},rowsDecrementButton.onclick=function(){1<rowsInput.value&&rowsInput.value--},rowsIncrementButton.onclick=function(){rowsInput.value<10&&rowsInput.value++},document.getElementById("wptb-generate-table").onclick=function(){var e=document.getElementById("wptb-columns-number").value,t=document.getElementById("wptb-rows-number").value;WPTB_Table(e,t)}},WPTB_LeftPanel=function(){var e,t,r=document.getElementsByClassName("wptb-preview-table")[0],n=document.getElementsByClassName("wptb-element");function a(e,t){if(!(3<t)&&r){var n=r.getElementsByTagName("tr");if(n.length>t){var a=n[t].style.backgroundColor,l=document.getElementById(e);l&&a&&(l.value=WPTB_Helper.rgbToHex(a))}}}function l(e){for(var t=r.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.borderWidth=document.querySelector("#wptb-table-inner-border-number").value+"px",t[n].style.borderStyle="solid"}function o(e){for(var t=r.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.padding=e+"px"}function i(e){r.style.borderWidth=e+"px",r.style.borderStyle="solid"}function s(e,t,n){e.onkeydown=function(){var e=this.value;0==(e=String(e))[0]?this.value="":(e=e.substring(0,t),this.value=e)},e.onkeyup=function(){var e=this.value;e=String(e),n<e&&(this.value=n)}}a("wptb-even-row-bg",1),jQuery("#wptb-even-row-bg").wpColorPicker({change:function(e,t){for(var n=r.getElementsByTagName("tr"),a=1;a<n.length;a+=2)n[a].style.backgroundColor=t.color.toString()},clear:function(){for(var e=r.getElementsByTagName("tr"),t=1;t<e.length;t+=2){e[t].style.backgroundColor="";for(var n=e[t].getElementsByTagName("td"),a=0;a<n.length;a++)n[a].style.backgroundColor=""}}}),a("wptb-odd-row-bg",2),jQuery("#wptb-odd-row-bg").wpColorPicker({change:function(e,t){for(var n=r.getElementsByTagName("tr"),a=2;a<n.length;a+=2)n[a].style.backgroundColor=t.color.toString()},clear:function(){for(var e=r.getElementsByTagName("tr"),t=2;t<e.length;t+=2){e[t].style.backgroundColor="";for(var n=e[t].getElementsByTagName("td"),a=0;a<n.length;a++)n[a].style.backgroundColor=""}}}),a("wptb-table-header-bg",0),jQuery("#wptb-table-header-bg").wpColorPicker({change:function(e,t){r.getElementsByTagName("tr")[0].style.backgroundColor=t.color.toString()},clear:function(){var e=r.getElementsByTagName("tr")[0];e.style.backgroundColor="";for(var t=e.getElementsByTagName("td"),n=0;n<t.length;n++)t[n].style.backgroundColor=""}}),e=r,t=document.getElementById("wptb-top-row-as-header"),e&&e.classList.contains("wptb-table-preview-head")?t.checked=!0:t.checked=!1,function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].style.borderColor;if(t){var n=document.getElementById("wptb-table-border-color");n&&(n.value=WPTB_Helper.rgbToHex(t))}var a=e[0].style.borderWidth;if(a){var l=document.getElementById("wptb-table-border-slider"),r=document.getElementById("wptb-table-border-number");l&&(l.value=parseInt(a)),r&&(r.value=parseInt(a))}var o=e[0].querySelector("td").style.borderWidth;if(o){var i=document.getElementById("wptb-inner-border-check"),s=document.getElementById("wptb-apply-inner-border");if(o&&0<parseInt(o)){if(i&&(i.checked=!0,s)){s.classList.add("visible");var d=document.getElementById("wptb-table-inner-border-slider"),c=document.getElementById("wptb-table-inner-border-number");d.value=parseInt(o),c.value=parseInt(o)}}else i.checked=!1}(a&&0<parseInt(a)||o&&0<parseInt(o))&&(document.getElementById("wptb-table-border-color-set-area").style.display="")}}(),jQuery("#wptb-table-border-color").wpColorPicker({change:function(e,t){var n=r.getElementsByTagName("td");r.style.border=document.querySelector("#wptb-table-border-number").value+"px solid "+t.color.toString();for(var a=0;a<n.length;a++){var l=document.querySelector("#wptb-table-inner-border-number").value;document.getElementById("wptb-inner-border-check").checked&&(n[a].style.border=(0!=l?l:1)+"px solid "+t.color.toString())}},clear:function(){var e=r.getElementsByTagName("td");r.style.borderColor="";for(var t=0;t<e.length;t++)e[t].style.borderColor=""}}),function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].querySelector("td");if(t){var n=t.style.padding;if(n){var a=document.getElementById("wptb-table-cell-slider"),l=document.getElementById("wptb-table-cell-number");a&&(a.value=parseInt(n)),l&&(l.value=parseInt(n))}}}}(),s(document.getElementById("wptb-table-border-number"),1,50),s(document.getElementById("wptb-table-inner-border-number"),1,50),s(document.getElementById("wptb-table-cell-number"),1,50),s(document.getElementById("wptb-text-font-size-number"),1,50),s(document.getElementById("wptb-image-width-number"),2,100),s(document.getElementById("wptb-table-column-width-number"),2,500),s(document.getElementById("wptb-table-row-height-number"),2,200),document.getElementById("wptb-table-cell-slider").oninput=function(){document.getElementById("wptb-table-cell-number").value=this.value,o(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-cell-number").onchange=function(){document.getElementById("wptb-table-cell-slider").value=this.value,o(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-border-slider").oninput=function(){document.getElementById("wptb-table-border-number").value=this.value,i(this.value),r.tdDefaultWidth();var e=document.getElementById("wptb-inner-border-check").checked,t=document.getElementById("wptb-table-border-color-set-area");0==this.value&&0==e?t.style.display="none":t.style.display=""},document.getElementById("wptb-table-border-number").onchange=function(){document.getElementById("wptb-table-border-slider").value=this.value,i(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-inner-border-slider").oninput=function(){document.getElementById("wptb-table-inner-border-number").value=this.value,l(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-inner-border-number").onchange=function(){document.getElementById("wptb-table-inner-border-slider").value=this.value,l(this.value),r.tdDefaultWidth()},document.getElementById("wptb-inner-border-check").onchange=function(){if(r){var e=this.checked?"checked":"unchecked";!function(e){var t=null!=document.querySelector("#wptb-table-border-color").value?document.querySelector("#wptb-table-border-color").value:"rgb(0,0,0)";0!=document.querySelector("#wptb-table-inner-border-slider").value&&0!=document.querySelector("#wptb-table-inner-border-number").value||(document.querySelector("#wptb-table-inner-border-slider").value=1,document.querySelector("#wptb-table-inner-border-number").value=1);var n=document.querySelector("#wptb-table-inner-border-slider").value+"px",a=document.getElementsByClassName("wptb-preview-table");if(0<a.length)if("checked"==e){document.getElementById("wptb-apply-inner-border").style.marginBottom="0px";for(var l=a[0].getElementsByTagName("td"),r=0;r<l.length;r++)l[r].style.border=n+" solid "+t;document.getElementById("wptb-apply-inner-border").classList.add("visible")}else for(document.getElementById("wptb-apply-inner-border").classList.remove("visible"),l=a[0].getElementsByTagName("td"),r=0;r<l.length;r++)l[r].style.border="0px solid "+t,l[r].style.border=null}(e);var t=document.getElementById("wptb-table-border-slider").value,n=document.getElementById("wptb-table-border-color-set-area");n.style.display="unchecked"==e&&0==t?"none":""}},document.getElementById("wptb-table-column-width-slider").oninput=function(){document.getElementById("wptb-table-column-width-number").value=this.value,r.addColumnWidth(this.value)},document.getElementById("wptb-table-column-width-number").onchange=function(){document.getElementById("wptb-table-column-width-slider").value=this.value,r.addColumnWidth(this.value)},document.getElementById("wptb-table-column-width-auto-fixed").onchange=function(){if(this.checked){var e=r.querySelector(".wptb-highlighted"),t=WPTB_Helper.getColumnWidth(r,e);r.addColumnWidth(t)}else{r.addColumnWidth(!1,!0);var n=r.querySelector(".wptb-highlighted"),a=WPTB_Helper.getColumnWidth(r,n);document.getElementById("wptb-table-column-width-number").value=a,document.getElementById("wptb-table-column-width-slider").value=a}},document.getElementById("wptb-table-row-height-slider").oninput=function(){document.getElementById("wptb-table-row-height-number").value=this.value,r.addRowHeight(this.value)},document.getElementById("wptb-table-row-height-number").onchange=function(){document.getElementById("wptb-table-row-height-slider").value=this.value,r.addRowHeight(this.value)},document.getElementById("wptb-table-row-height-auto-fixed").onchange=function(){if(this.checked){var e=r.querySelector(".wptb-highlighted"),t=WPTB_Helper.getRowHeight(r,e);r.addRowHeight(t)}else{r.addRowHeight(!1,!0);var n=r.querySelector(".wptb-highlighted"),a=WPTB_Helper.getRowHeight(r,n);document.getElementById("wptb-table-row-height-number").value=a,document.getElementById("wptb-table-row-height-slider").value=a}},document.getElementById("wptb-top-row-as-header").onchange=function(){!function(e,t){if(t.checked)WPTB_Helper.dataTitleColumnSet(e),e.classList.add("wptb-table-preview-head"),e.rows[0].classList.add("wptb-table-head");else{var n=e.rows;e.classList.remove("wptb-table-preview-head"),n[0].classList.remove("wptb-table-head");for(var a=1;a<n.length;a++)for(var l=n[a].children,r=0;r<l.length;r++)l[r].removeAttribute("data-wptb-title-column"),l[r].removeAttribute("data-wptb-title-column-font-size"),l[r].removeAttribute("data-wptb-title-column-color"),l[r].removeAttribute("data-wptb-title-background-color"),l[r].removeAttribute("data-wptb-title-align")}}(r,this)};for(var d=0;d<n.length;d++)n[d].ondragstart=function(e){e.dataTransfer.setData("wptbElement",this.dataset.wptbElement),e.dataTransfer.setData("wptbElIndic-"+this.dataset.wptbElement,"wptbElIndic-"+this.dataset.wptbElement)};r&&(document.getElementById("wptb-activate-cell-management-mode").onclick=r.toggleTableEditMode,document.getElementById("wptb-table-edit-mode-close").onclick=r.toggleTableEditMode,document.getElementById("wptb-left-scroll-panel-curtain-close").onclick=r.toggleTableEditMode,document.getElementById("wptb-add-end-row").onclick=r.addRowToTheEnd,document.getElementById("wptb-add-start-row").onclick=r.addRowToTheStart,document.getElementById("wptb-add-row-before").onclick=r.addRowBefore,document.getElementById("wptb-add-row-after").onclick=r.addRowAfter,document.getElementById("wptb-add-end-column").onclick=r.addColumnEnd,document.getElementById("wptb-add-start-column").onclick=r.addColumnStart,document.getElementById("wptb-add-column-before").onclick=r.addColumnBefore,document.getElementById("wptb-add-column-after").onclick=r.addColumnAfter,document.getElementById("wptb-delete-column").onclick=r.deleteColumn,document.getElementById("wptb-delete-row").onclick=r.deleteRow,document.getElementById("wptb-merge-cells").onclick=r.mergeCells,document.getElementById("wptb-split-cell").onclick=r.splitCell),document.querySelector(".wptb-left-panel-extend").onclick=function(){var e=document.querySelector(".wptb-container");e&&(e.classList.contains("collapsed")?e.classList.remove("collapsed"):e.classList.add("collapsed"))},document.getElementsByClassName("wptb-builder-panel")[0].addEventListener("click",function(e){if(!(e.target.classList.contains("wptb-ph-element")||WPTB_Helper.findAncestor(e.target,"wptb-ph-element")||e.target.classList.contains("wptb-fixed-toolbar")||WPTB_Helper.findAncestor(e.target,"wptb-fixed-toolbar"))){document.getElementsByClassName("wptb-elements-container")[0].style.display="table",document.getElementsByClassName("wptb-settings-section")[0].style.display="block",document.getElementById("element-options-group").style.display="none";var t=document.getElementById("wpcd_fixed_toolbar");t.hasAttribute("data-toolbar-active-id")&&document.getElementById(t.getAttribute("data-toolbar-active-id")).classList.remove("toolbar-active")}},!1)},WPTB_List=function(e,t){var n,a=document.createElement("ul"),l=document.createElement("div"),r=void 0,o=!1;if(l.classList.add("wptb-list-item-container"),this.kind="list",""===e);else if(e){var i=t.className.match(/wptb-element-((.+-)\d+)/i);i&&Array.isArray(i)&&(r=i[1],o=!0);for(d=0;d<e.length;d++){var s=t.querySelector("li");n=new WPTB_ListItem(e[d],s,!0),a.appendChild(n.getDOMElement())}}else for(var d=0;d<3;d++)n=new WPTB_ListItem("<p>List Item "+(d+1)+"</p>"),a.appendChild(n.getDOMElement());return l.appendChild(a),this.getDOMElement=function(){return l},applyGenericItemSettings(this,r,o),WPTB_Helper.listItemsRecalculateIndex(a),this},WPTB_ListItem=function l(e,t,n){var a=void 0;if(null==t||t&&n){null==e&&(e="New List Item");var r=document.createElement("li");if((i=document.createElement("div")).classList.add("wptb-list-item-content"),t){var o=t.getAttribute("style");o&&r.setAttribute("style",o)}r.appendChild(i),i.innerHTML=e,i.onkeyup=window.listItemKeyListener,a=!0}else{var i;(i=(r=t).getElementsByClassName("wptb-list-item-content")[0]).onkeyup=window.listItemKeyListener,a=!1}if(r.onmouseenter=function(e){var t=document.createElement("span"),n=document.createElement("span"),a=document.createElement("span");a.classList.add("wptb-actions"),t.classList.add("dashicons","dashicons-trash","wptb-delete-action"),n.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),this.classList.add("wptb-directlyhovered"),t.onclick=function(){var e=this.parentNode,t=this.parentNode.parentNode,n=t.parentNode;t.removeChild(e),n.removeChild(t),WPTB_Helper.listItemsRecalculateIndex(n)},n.onclick=function(e){var t=e.target.parentNode.parentNode,n=t.querySelector(".wptb-list-item-content").innerHTML,a=new l(n,t,!0);t.parentNode.insertBefore(a.getDOMElement(),r),WPTB_Helper.listItemsTinyMceInit(a.getDOMElement().firstChild),setTimeout(function(){i.innerHTML=n,WPTB_Helper.listItemsRecalculateIndex(t.parentNode)},5)},a.append(n,t),this.appendChild(a)},r.onmouseleave=function(e){this.removeAttribute("class");for(var t=0;e.target.querySelector(".wptb-actions")&&t<5;)e.target.querySelector(".wptb-actions").remove(),t++},this.getDOMElement=function(){return r},a)return this},MultipleSelect=function(){var l=[],n=!1;return this.activateMultipleSelectMode=function(){l=[];for(var e=document.getElementsByClassName("wptb-preview-table")[0].getElementsByTagName("td"),t=0;t<e.length;t++)e[t].classList.remove("wptb-highlighted");n=!0},this.deactivateMultipleSelectMode=function(){n=!1},this.isActivated=function(){return n},this.pushSelectedCell=function(e){n&&(l.push(e),e.classList.add("wptb-highlighted"))},this.selectedCells=function(){return l},this.flushSelectedCells=function(){l=[]},this.getFirst=function(){for(var e,t=1e3,n=1e3,a=l.length-1;0<=a;a--)t>=l[a].dataset.xIndex&&n>=l[a].dataset.yIndex&&(e=l[a],t=l[a].dataset.xIndex,n=l[a].dataset.yIndex);return e},this.getLast=function(){for(var e,t=-1,n=-1,a=l.length-1;0<=a;a--)t<=l[a].dataset.xIndex&&n<=l[a].dataset.yIndex&&(e=l[a],t=l[a].dataset.xIndex,n=l[a].dataset.yIndex);return e},this.removeAllButFirst=function(){for(var e=this.getFirst(),t=1;t<l.length;t++)l[t].classList.add("wptb-fused-cell-"+e.dataset.xIndex+"-"+e.dataset.yIndex)},this};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Parser=function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.children[0],a=[].concat(_toConsumableArray(n.querySelectorAll(".wptb-column-title-mobile-container"))),l=0;l<a.length;l++){a[l].parentNode.removeChild(a[l])}for(var r=n.querySelectorAll("td"),o=0;o<r.length;o++)r[o].classList.add("wptb-droppable"),r[o].classList.remove("wptb-column-title-mobile-not-elements");return n},WPTB_Parser2=function(e){if(Array.isArray(e)){var t=void 0;if(1==e.length)return t.appendChild(document.createTextNode(e[0]));if(0 in e){var n=e[0];if(t=document.createElement(n),1 in e&&Array.isArray(e[1]))for(var a=e[1],l=0;l<a.length;l++)Array.isArray(a[l])&&t.setAttribute(a[l][0],a[l][1]);if(2 in e)if(Array.isArray(e[2]))for(var r=0;r<e[2].length;r++)"string"!=typeof e[2][r]||"p"!=n.toLowerCase()?WPTB_Parser(e[2][r])&&t.appendChild(WPTB_Parser(e[2][r])):t.appendChild(document.createTextNode(e[2][r]));else"string"==typeof e[2]&&t.appendChild(document.createTextNode(e[2]))}return t}return!1},WPTB_Settings=function(){for(var e=document.getElementsByClassName("wptb-element"),t=0;t<e.length;t++)e[t].ondragstart=function(e){e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("wptbElement",e.target.dataset.wptbElement),e.dataTransfer.setData("wptbElIndic-"+e.target.dataset.wptbElement,"wptbElIndic-"+e.target.dataset.wptbElement)},e[t].ondragend=function(){var e=document.querySelector(".wptb-drop-handle"),t=document.querySelector(".wptb-drop-border-marker");(e||t)&&(e.style.display="none",t.style.display="none")};var n=document.getElementsByClassName("wptb-popup-window-modal")[0];document.getElementsByClassName("wptb-embed-btn")[0].onclick=function(){this.classList.contains("wptb-embed-disable")||n.classList.add("wptb-popup-show")},document.getElementsByClassName("wptb-popup-dark-area")[0].onclick=function(){n.classList.remove("wptb-popup-show")},document.getElementsByClassName("wptb-popup-window-close-icon")[0].onclick=function(){n.classList.remove("wptb-popup-show")},document.getElementsByClassName("wptb-save-btn")[0].onclick=function(){var e=document.querySelector(".wptb-edit-bar");e&&e.classList.contains("visible")&&document.getElementsByClassName("wptb-preview-table")[0].toggleTableEditMode();var n=new XMLHttpRequest,t=(wptb_admin_object?wptb_admin_object.ajaxurl:ajaxurl)+"?action=save_table",a=document.getElementById("wptb-setup-name").value.trim(),l=void 0,r=document.getElementsByClassName("wptb-preview-table");if(r=0<r.length?(r=WPTB_Stringifier(r[0])).outerHTML:"",""===a||""===r){var o="";return""===a&&(o+="You must assign a name to the table before saving it.</br>"),""===r&&(o+="Table wasn't created"),(l=document.getElementById("wptb-messaging-area")).innerHTML='<div class="wptb-error wptb-message">Error: '+o+"</div>",l.classList.add("wptb-warning"),void setTimeout(function(){l.removeChild(l.firstChild)},4e3)}var i={title:a,content:r,security_code:wptb_admin_object.security_code};((rs=WPTB_Helper.detectMode())||(rs=document.wptbId))&&(i.id=rs),i=JSON.stringify(i),n.open("POST",t,!0),n.setRequestHeader("Content-type","application/json; charset=utf-8"),n.onreadystatechange=function(e){if(4==this.readyState&&200==this.status){var t=JSON.parse(n.responseText);l=document.getElementById("wptb-messaging-area"),"saved"==t[0]?(document.wptbId=t[1],l.innerHTML='<div class="wptb-success wptb-message">Table "'+a+'" was successfully saved.</div>',document.getElementsByClassName("wptb-embed-btn")[0].classList.remove("wptb-embed-disable"),document.getElementById("wptb-embed-shortcode").value="[wptb id="+t[1]+"]"):"edited"==t[0]?l.innerHTML='<div class="wptb-success wptb-message">Table "'+a+'" was successfully updated.</div>':l.innerHTML='<div class="wptb-error wptb-message">Safety problems</div>',l.classList.add("wptb-success"),setTimeout(function(){l.removeChild(l.firstChild)},4e3)}},n.send(i)}},WPTB_Space=function i(e){var t=void 0;if(e?t=e:(t=document.createElement("div")).classList.add("wptb-space-between"),t.ondragenter=function(){this.classList.add("visible")},t.ondragover=function(e){e.preventDefault()},t.ondragleave=function(){this.classList.remove("visible")},t.ondrop=function(e){e.stopPropagation();for(var t,n,a,l,r=e.target.nextSibling,o=e.target;!o.classList.contains("wptb-droppable");)o=o.parentNode;e.dataTransfer.getData("wptbElement")?(t=(l=e.dataTransfer.getData("wptbElement")).includes("list")?new WPTB_List:l.includes("image")?new WPTB_Image:l.includes("text")?new WPTB_Text:l.includes("button")?new WPTB_Button:void 0,this.classList.remove("visible"),null==r?(o.appendChild(t.getDOMElement()),o.appendChild(new i)):(o.insertBefore(t.getDOMElement(),r),o.insertBefore(new i,r))):(alert(e.dataTransfer.getData("node")),n=(t=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).nextSibling,a=t.parentNode,null!=n&&a.removeChild(n),null==r?(o.appendChild(t),o.appendChild(new i)):(o.insertBefore(t,r),o.insertBefore(new i,r))),this.classList.remove("visible")},!e)return t},WPTB_Stringifier=function(e){if(e){var t=e.cloneNode(!0);t.classList.add("wptb-table-preview-static-indic"),t.dataset.tableColumns=e.columns,t.style.width=null,t.style.minWidth=null,t.style.maxWidth=null;var n=t.getElementsByTagName("td");if(0<n.length)for(var a=0;a<n.length;a++){e.querySelector("wptb-table-preview-head")&&n[a].removeAttribute("data-x-index"),n[a].removeAttribute("data-y-index"),n[a].removeAttribute("draggable"),n[a].classList.remove("wptb-droppable");var l=n[a].getElementsByClassName("wptb-ph-element");if(0<l.length)for(var r=0;r<l.length;r++){l[r].classList.remove("wptb-directlyhovered");var o=l[r].querySelectorAll(".mce-content-body");if(0<o.length)for(var i=0;i<o.length;i++)o[i].classList.remove("mce-content-body");var s=l[r].querySelectorAll("[data-mce-style]");if(0<s.length)for(var d=0;d<s.length;d++)s[d].removeAttribute("data-mce-style");var c=l[r].querySelectorAll("[contenteditable]");if(0<c.length)for(var p=0;p<c.length;p++)c[p].removeAttribute("contenteditable");var m=l[r].querySelectorAll("[spellcheck]");if(0<m.length)for(var u=0;u<m.length;u++)m[u].removeAttribute("spellcheck");var b=l[r].querySelectorAll("[id^=mce_]");if(0<b.length)for(var g=0;g<b.length;g++)b[g].removeAttribute("id");for(var h=l[r].querySelectorAll(".wptb-actions"),w=h.length;0<w;)h[0].parentNode.removeChild(h[0]),w--}if(n[a].hasAttribute("data-wptb-title-column")){var y=document.createElement("div"),f=document.createElement("div");y.classList.add("wptb-column-title-mobile-container"),f.classList.add("wptb-column-title-mobile"),f.dataset.wptbTitleColumn=n[a].dataset.wptbTitleColumn,f.setAttribute("style","font-size:"+n[a].dataset.wptbTitleColumnFontSize+"; \n color:"+n[a].dataset.wptbTitleColumnColor+"; background-color:"+n[a].dataset.wptbTitleBackgroundColor+"; text-align:"+n[a].dataset.wptbTitleAlign+";"),f.style.padding=n[a].style.padding,0==n[a].children.length&&n[a].classList.add("wptb-column-title-mobile-not-elements"),y.appendChild(f),n[a].insertBefore(y,n[a].firstChild)}}return t}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Stringifier2=function(e){1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(null==e)return"";if(null==e.tagName&&3==e.nodeType)return e.nodeValue;var t=[],n=void 0,a=!1,l=[].concat(_toConsumableArray(e.attributes)),r=[],o=[];if((e.parentNode.classList.contains("wptb-list-item-content")||e.parentNode.classList.contains("mce-content-body"))&&"p"==e.tagName.toLowerCase()?(n=e.childNodes,a=!0):n=0<e.children.length?e.children:e.childNodes,0<l.length)for(var i=0;i<l.length;i++)r[i]=[l[i].name,l[i].value];else r="";if(0<n.length)for(var s=0;s<n.length;s++){var d=WPTB_Stringifier(n[s]);Array.isArray(d)||a?o[s]=d:"string"==typeof d&&d&&(o=d)}else o="";return t.push(e.tagName.toLowerCase(),r,o),t},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},array=[],WPTB_Table=function(e,t){var _,n,a,w,l=document.getElementsByClassName("wptb-settings-items"),v=document.getElementsByClassName("wptb-table-setup")[0],B=function(e){var t,n=this.rowSpan,a=this.colSpan,l=document.getElementsByClassName("wptb-no-cell-action"),r=document.getElementsByClassName("wptb-single-action"),o=document.getElementsByClassName("wptb-multiple-select-action"),i=document.getElementById("wptb-left-scroll-panel-cell-settings"),s=T(this),d=s[0],c=s[1];if(document.select.isActivated()){if(this.className.match(/wptb-highlighted/)){this.classList.remove("wptb-highlighted");for(var p=0;p<n;p++)for(var m=0;m<a;m++)array[d+p][c+m]=0}else{this.classList.add("wptb-highlighted");for(p=0;p<n;p++)for(m=0;m<a;m++)array[d+p][c+m]=1}if(0===(t=document.getElementsByClassName("wptb-highlighted").length)){for(p=0;p<o.length;p++)o[p].classList.remove("visible"),o[p].setAttribute("disabled","disabled");for(p=0;p<l.length;p++)l[p].classList.add("visible"),l[p].removeAttribute("disabled");for(p=0;p<r.length;p++)r[p].classList.remove("visible"),r[p].setAttribute("disabled","disabled");i.classList.remove("visible")}else if(1===t){for(p=0;p<o.length;p++)o[p].classList.remove("visible"),o[p].setAttribute("disabled","disabled");for(p=0;p<l.length;p++)l[p].classList.remove("visible"),l[p].setAttribute("disabled","disabled");for(p=0;p<r.length;p++)r[p].classList.add("visible"),r[p].removeAttribute("disabled");var u=document.querySelector(".wptb-highlighted");if(u){var b=document.getElementById("wptb-table-column-width-slider"),g=document.getElementById("wptb-table-column-width-number"),h=document.getElementById("wptb-table-column-width-auto-fixed"),w=u.style.width;if(w)b.value=parseFloat(w,10),g.value=parseFloat(w,10),h.checked=!0;else if(u.dataset.wptbFixedWidth)b.value=u.dataset.wptbFixedWidth,g.value=u.dataset.wptbFixedWidth,h.checked=!0;else{var y=WPTB_Helper.getColumnWidth(_,u);b.value=y,g.value=y,h.checked=!1}var f=document.getElementById("wptb-table-row-height-slider"),v=document.getElementById("wptb-table-row-height-number"),B=document.getElementById("wptb-table-row-height-auto-fixed"),E=u.style.height;if(E)f.value=parseFloat(E,10),v.value=parseFloat(E,10),B.checked=!0;else if(u.dataset.wptbFixedHeight)f.value=u.dataset.wptbFixedHeight,v.value=u.dataset.wptbFixedHeight,B.checked=!0;else{var C=WPTB_Helper.getRowHeight(_,u);f.value=C,v.value=C,B.checked=!1}}i.classList.add("visible")}else{for(p=0;p<o.length;p++)_.isSquare(array)?(o[p].classList.add("visible"),o[p].removeAttribute("disabled")):(o[p].classList.remove("visible"),o[p].setAttribute("disabled","disabled"));for(p=0;p<l.length;p++)l[p].classList.remove("visible"),l[p].setAttribute("disabled","disabled");for(p=0;p<r.length;p++)r[p].classList.remove("visible"),r[p].setAttribute("disabled","disabled");i.classList.remove("visible")}}},E=function(e){for(var t=0;t<e.length;t++){for(var n=0;n<e[t].length;n++)" "+e[t][n];"\n"}_.isSquare(e)},C=function(){for(var e=document.getElementsByClassName("wptb-no-cell-action"),t=document.getElementsByClassName("wptb-single-action"),n=document.getElementsByClassName("wptb-multiple-select-action"),a=_.getElementsByClassName("wptb-highlighted");a.length;)a[0].classList.remove("wptb-highlighted");for(var l=0;l<array.length;l++)for(var r=0;r<array[l].length;r++)array[l][r]=0;for(l=0;l<n.length;l++)n[l].classList.remove("visible"),n[l].setAttribute("disabled","disabled");for(l=0;l<e.length;l++)e[l].classList.add("visible"),e[l].removeAttribute("disabled");for(l=0;l<t.length;l++)t[l].classList.remove("visible"),t[l].setAttribute("disabled","disabled")},T=function(e){for(var t=[],n=0;n<w;n++)t[n]=0;for(n=0;n<_.rows.length;n++)for(var a=_.rows[n].getElementsByTagName("td"),l=cellPointer=0;l<w;l+=stepsToMove)if(stepsToMove=1,t[l])t[l]--;else{var r=a[cellPointer++];if(r==e)return[n,l];if(1<r.rowSpan){for(var o=0;o<r.colSpan;o++)t[l+o]=r.rowSpan-1;stepsToMove=r.colSpan}else 1<r.colSpan&&(stepsToMove=r.colSpan)}};if(jQuery("#wptb-table-header-bg").val(""),jQuery("#wptb-even-row-bg").val(""),jQuery("#wptb-odd-row-bg").val(""),jQuery("#wptb-table-border-color").val(""),jQuery("#wptb-table-inner-border-number,#wptb-table-inner-border-slider").val("0"),jQuery("#wptb-table-border-number,#wptb-table-border-slider").val("0"),jQuery("#wptb-table-padding-number,#wptb-table-padding-slider").val("15"),e||t){for(var r=0;r<l.length;r++)"wptb-apply-inner-border"!==l[r].id&&l[r].classList.add("visible");(_=document.createElement("table")).classList.add("wptb-preview-table"),_.dataset.reconstraction=1;for(r=0;r<t;r++){(n=_.insertRow(-1)).classList.add("wptb-row");for(var g=0;g<e;g++)(a=new WPTB_Cell(B)).setCoords(r,g),n.appendChild(a.getDOMElement())}}else{var o=document.getElementsByClassName("wptb-preview-table");if(0<o.length){var i=(_=o[0]).getElementsByTagName("td");if(0<i.length)for(var s=0;s<i.length;s++)WPTB_Cell(B,i[s])}}_.toggleTableEditMode=function(){var e=document.getElementsByClassName("wptb-edit-bar"),t=document.getElementById("wptb-cell_mode_background"),n=document.getElementById("wptb-left-scroll-panel-curtain"),a=document.getElementById("wptb-left-scroll-panel-cell-settings"),l=document.getElementsByClassName("wptb-preview-table");if(0<l.length&&(l=l[0]),0<e.length)for(var r=0;r<e.length;r++)if(e[r].classList.contains("visible")){document.select.deactivateMultipleSelectMode(),e[r].classList.remove("visible"),t.classList.remove("visible"),n.classList.remove("visible"),a.classList.remove("visible"),l.classList.remove("wptb-preview-table-manage-cells");var o=l.getElementsByTagName("td");if(0<o.length)for(var i=0;i<o.length;i++)o[i].classList.remove("wptb-highlighted")}else document.select.activateMultipleSelectMode(),e[r].classList.add("visible"),t.classList.add("visible"),n.classList.add("visible"),l.classList.add("wptb-preview-table-manage-cells")},_.recalculateIndexes=function(e){for(var t=this.getElementsByTagName("tr"),n=void 0,a=0,l=0,r=[],o=document.getElementById("wptb-top-row-as-header"),i=0;i<t.length;i++){0==i?(null==e&&(t[i].style.backgroundColor=jQuery("#wptb-table-header-bg").val()),o.checked?null==e&&(this.classList.add("wptb-table-preview-head"),t[i].classList.add("wptb-table-head")):null==e&&(this.classList.remove("wptb-table-preview-head"),t[i].classList.remove("wptb-table-head"))):(i%2==0?null==e&&(t[i].style.backgroundColor=jQuery("#wptb-odd-row-bg").val()):null==e&&(t[i].style.backgroundColor=jQuery("#wptb-even-row-bg").val()),t[i].classList.remove("wptb-table-head")),r[i],n=t[i].getElementsByTagName("td"),null==r[i]&&(r[i]=[]);for(var s=0,d=0;d<n.length;d++){if(null!=r[i][d])for(var c=0;c<100;c++){if(null==r[i][s]){r[i][s]=n[d],n[d].dataset.xIndex=s;break}s++}else r[i][d]=n[d],n[d].dataset.xIndex=s;if(n[d].dataset.yIndex=i,1<n[d].colSpan)for(var p=1;p<n[d].colSpan;p++)s++,r[i][s]="tdDummy";if(1<n[d].rowSpan)for(var m=1;m<n[d].rowSpan;m++){null==r[i+m]&&(r[i+m]=[]);for(var u=0;u<n[d].colSpan;u++)r[i+m][s-n[d].colSpan+1+u]="tdDummy"}s++,0==i&&(l=s)}a<d&&(a=d)}this.columns=a,this.maxCols=l},_.addColumnWidth=function(m,u){var e=_.getElementsByClassName("wptb-highlighted");if(0<e.length){for(var t=0;t<e.length;t++){var n=e[t].dataset.xIndex;n&&function e(t,n){for(var a=_.rows,l=!1,r=[],o=0;o<a.length;o++)for(var i=a[o].children,s=0;s<i.length;s++){var d=i[s];if(d.dataset.xIndex==t){if(m)if(d.colSpan==n){d.style.width=m+"px",d.removeAttribute("data-wptb-fixed-width"),l=!0;var c=document.getElementById("wptb-table-column-width-auto-fixed");c.checked||(c.checked=!0)}else d.style.width=null,d.dataset.wptbFixedWidth=m,o!=a.length-1||l||e(t,n+1);else if(u)d.style.width=null,d.removeAttribute("data-wptb-fixed-width");else if(d.dataset.wptbFixedWidth)d.colSpan==n&&(d.style.width=d.dataset.wptbFixedWidth+"px",d.removeAttribute("data-wptb-fixed-width"));else if(d.style.width){for(var p=0;p<r.length;p++)r[p].style.width=d.style.width;r=[]}else r.push(d);break}}}(n,1)}_.tdDefaultWidth()}},_.tdDefaultWidth=function(){for(var e,t=_.rows,n=0,a=0,l=document.getElementsByClassName("wptb-table-setup")[0].offsetWidth,r=[],o=[],i=0,s=0,d="",c=0;c<t.length;c++)for(var p=t[c].children,m=0;m<p.length;m++){var u=p[m];if(r[parseInt(u.dataset.xIndex)]||o[parseInt(u.dataset.xIndex)])o[parseInt(u.dataset.xIndex)]?u.dataset.wptbFixedWidth||(u.dataset.wptbCssTdAutoWidth=!0):r[parseInt(u.dataset.xIndex)]&&u.removeAttribute("data-wptb-css-td-auto-width");else if(u.style.width?(r[parseInt(u.dataset.xIndex)]=parseFloat(u.style.width),u.removeAttribute("data-wptb-css-td-auto-width")):u.dataset.wptbFixedWidth||(o[parseInt(u.dataset.xIndex)]=100,u.dataset.wptbCssTdAutoWidth=!0),window.getComputedStyle(u,null)){var b=window.getComputedStyle(u,null),g=b.getPropertyValue("padding-left"),h=b.getPropertyValue("padding-right");i=parseFloat(g,10)+parseFloat(h,10);var w=b.getPropertyValue("border-left-width"),y=b.getPropertyValue("border-right-width");s=parseFloat(w,10)+parseFloat(y,10),r[parseInt(u.dataset.xIndex)]?(r[parseInt(u.dataset.xIndex)]+=i,r[parseInt(u.dataset.xIndex)]+=s):(o[parseInt(u.dataset.xIndex)]+=i,o[parseInt(u.dataset.xIndex)]+=s)}}for(var f=0;f<r.length;f++)r[f]&&(n+=r[f]);for(var v=0,B=0;B<o.length;B++)o[B]&&(a+=o[B],v++);var E=window.getComputedStyle(_,null),C=E.getPropertyValue("border-left-width"),T=E.getPropertyValue("border-right-width"),x=parseFloat(C,10)+parseFloat(T,10);e=n+a+x,_.dataset.wptbTableTdsSumMaxWidth=e,v?(_.dataset.wptbCellsWidthAutoCount=v,_.mergingСellsHorizontally?_.dataset.wptbFixedWidthSize=n-x:_.removeAttribute("data-wptb-fixed-width-size")):(_.removeAttribute("data-wptb-fixed-width-size"),_.removeAttribute("data-wptb-cells-width-auto-count"));var I=!1,N=void 0;e<l?v?(_.style.minWidth="100%",_.mergingСellsHorizontally?(N=(N=(l-n-x)/v)-i-s,I=!(_.style.width=null)):_.style.width="100%"):(_.style.width=null,_.style.minWidth=null,_.style.maxWidth=e+"px"):(_.style.maxWidth=null,_.style.minWidth=e+"px",N="100",I=!(_.style.width=null));var S=document.head;if(S){var k=S.querySelector('style[data-wptb-td-auto-width="true"]');k&&S.removeChild(k)}I&&((d=document.createElement("style")).setAttribute("data-wptb-td-auto-width",!0),d.innerHTML="[data-wptb-css-td-auto-width=true]{width:"+N+"px}",S&&S.appendChild(d))},_.addRowHeight=function(m,u){var e=_.getElementsByClassName("wptb-highlighted");if(0<e.length)for(var t=0;t<e.length;t++){var n=e[t].dataset.yIndex;n&&function e(t,n){for(var a=_.rows,l=!1,r=[],o=0;o<a.length;o++)for(var i=a[o].children,s=0;s<i.length;s++){var d=i[s];if(d.dataset.yIndex==t)if(m){if(d.rowSpan==n){d.style.height=m+"px",d.removeAttribute("data-wptb-fixed-heidht"),l=!0;var c=document.getElementById("wptb-table-row-height-auto-fixed");c.checked||(c.checked=!0);continue}d.style.height=null,d.dataset.wptbFixedHeight=m,s!=i.length-1||l||e(t,n+1)}else if(u)d.style.height=null,d.removeAttribute("data-wptb-fixed-heidht");else if(d.dataset.wptbFixedHeight)(d.rowSpan=n)&&(d.style.height=d.dataset.wptbFixedHeight+"px",d.removeAttribute("data-wptb-fixed-width"));else if(d.style.height){for(var p=0;p<r.length;p++)r[p].style.height=d.style.height;r=[]}else r.push(d)}}(n,1)}},_.reconstraction=function(){var e=_.getElementsByTagName("td");_.mergingСellsHorizontally=!1,_.mergingCellsVertically=!1,_.dataset.reconstraction=1;for(var t=0,n=0;n<e.length&&(1<e[n].colSpan&&(_.dataset.reconstraction=0,_.mergingСellsHorizontally=!0,t++),1<e[n].rowSpan&&(_.dataset.reconstraction=0,_.mergingCellsVertically=!0,t++),2!=t);n++);},_.addColumnEnd=function(){var e=void 0,t=document.getElementsByClassName("wptb-preview-table"),n=void 0,a=void 0;0<t.length&&(n=t[0].querySelector("td")),n&&(a=n.getAttribute("style"));for(var l=0;l<_.rows.length;l++)e=new WPTB_Cell(B),a&&(e.getDOMElement().setAttribute("style",a),e.getDOMElement().style.width=null),_.rows[l].appendChild(e.getDOMElement()),array[l].push(0);w++,_.recalculateIndexes(),_.tdDefaultWidth(),_.addRowHeight(),WPTB_Helper.dataTitleColumnSet(_),C()},_.addColumnStart=function(){var e=void 0,t=void 0,n=document.getElementsByClassName("wptb-preview-table"),a=void 0,l=void 0;0<n.length&&(a=n[0].querySelector("td")),a&&(l=a.getAttribute("style"));for(var r=0;r<_.rows.length;r++)e=new WPTB_Cell(B),l&&(e.getDOMElement().setAttribute("style",l),e.getDOMElement().style.width=null),(t=_.rows[r].getElementsByTagName("td")[0])?_.rows[r].insertBefore(e.getDOMElement(),t):_.rows[r].appendChild(e.getDOMElement()),array[r].push(0);w++,_.recalculateIndexes(),_.tdDefaultWidth(),_.addRowHeight(),WPTB_Helper.dataTitleColumnSet(_),C()},_.addColumnAfter=function(e){var t=_.rows,n=void 0,a=void 0,l=document.querySelector(".wptb-highlighted"),r=l.getAttribute("style"),o=null!=e&&"number"==typeof e?e:T(l)[1];if(w-o-l.colSpan+1==1)_.addColumnEnd();else{for(var i=!1,s=void 0,d=void 0,c=void 0,p=[],m=void 0,u=0;u<w;u++)p.push(0);for(u=0;u<t.length;u++){n=0,a=t[u].getElementsByTagName("td"),i=!1;for(var b=0;b<w;b+=s){if(s=1,i){d=new WPTB_Cell(B),r&&(d.getDOMElement().setAttribute("style",r),d.getDOMElement().style.width=null),m&&t[u].contains(m)?(c=m.nextSibling)?t[u].insertBefore(d.getDOMElement(),c):t[u].appendChild(d.getDOMElement()):t[u].insertBefore(d.getDOMElement(),a[0]);break}if(0<p[b])o==b&&(i=!0);else if(1<(m=a[n++]).rowSpan){s=m.colSpan;for(var g=0;g<m.colSpan;g++)p[b+g]=m.rowSpan,b+g==o&&(i=!0)}else if(1<m.colSpan){s=m.colSpan;for(g=0;g<m.colSpan;g++)b+g==o&&(i=!0)}else b==o&&(i=!0)}for(var h=0;h<w;h++)0<p[h]&&p[h]--}for(u=0;u<array.length;u++)array[u].push(0);w++,E(array),_.recalculateIndexes(),_.addColumnWidth(),_.addRowHeight(),WPTB_Helper.dataTitleColumnSet(_),C()}},_.addColumnBefore=function(){var e=document.querySelector(".wptb-highlighted"),t=T(e)[1];0===t?_.addColumnStart():_.addColumnAfter(t-1)},_.addRowToTheEnd=function(){var e,t=_.insertRow(-1),n=void 0,a=document.getElementsByClassName("wptb-preview-table"),l=void 0,r=void 0;t.classList.add("wptb-row"),0<a.length&&(l=a[0].querySelector("td")),l&&(r=l.getAttribute("style"));for(var o=0;o<w;o++)n=new WPTB_Cell(B),r&&n.getDOMElement().setAttribute("style",r),t.appendChild(n.getDOMElement());e=Array.from(array[0]),array.push(e),E(array),_.recalculateIndexes(),_.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(_),C()},_.addRowToTheStart=function(){var e,t=_.insertRow(0),n=void 0,a=document.getElementsByClassName("wptb-preview-table"),l=void 0,r=void 0;t.classList.add("wptb-row"),0<a.length&&(l=a[0].querySelector("td")),l&&(r=l.getAttribute("style"));for(var o=0;o<w;o++)n=new WPTB_Cell(B),r&&n.getDOMElement().setAttribute("style",r),t.appendChild(n.getDOMElement());e=Array.from(array[0]),array.push(e),E(array),_.recalculateIndexes(),_.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(_),C()},_.addRowBefore=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),n=T(e)[0],a=void 0,l=n-1;0<=l;l--){var r=_.rows[l].children,o=r.length;if(0<o)for(var i=0;i<o;i++)if(1==r[i].rowSpan){n=l,a=!0;break}if(a)break}0===n?_.addRowToTheStart():_.addRowAfter(n,t)},_.addRowAfter=function(e,t){var n,a=void 0;if(null!=e&&"number"==typeof e||null!=t)a=e;else{var l=document.querySelector(".wptb-highlighted");t=l.getAttribute("style"),a=(e=T(l)[0])+l.rowSpan-1}var r=0;if(a<_.rows.length-1){for(var o=0;o<=a;o++){var i=_.rows[o].children,s=i.length;if(0<s)for(var d=0;d<s;d++){a<i[d].rowSpan-1+o&&i[d].rowSpan++}}var c=_.rows[a+1].children,p=c.length;if(0<p)for(var m=0;m<p;m++)r+=c[m].colSpan}else r=array[0].length;var u=_.insertRow(a+1);for(u.classList.add("wptb-row"),g=0;g<r;g++){var b=new WPTB_Cell(B);b.getDOMElement().setAttribute("style",t),b.getDOMElement().style.width=null,b.getDOMElement().style.height=null,u.appendChild(b.getDOMElement())}n=Array.from(array[0]),array.push(n),E(array),_.recalculateIndexes(),_.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(_),C()},_.isSquare=function(e){for(var t,n,a=-1,l=-1,r=-1,o=-1,i=0,s=0;s<e.length;s++)for(var d=0;d<e[s].length;d++)1==e[s][d]&&((d<l||-1==l)&&(l=d),(s<a||-1==a)&&(a=s));for(s=e.length-1;-1<s;s--)for(d=e[s].length-1;-1<d;d--)1==e[s][d]&&(o<d&&(o=d),r<s&&(r=s));for(s=a;s<r;s++)for(d=l;d<o;d++)if(0==e[s][d]||null==e[s][d])return!1;for(s=0;s<e.length;s++)for(d=0;d<e[s].length;d++)1==e[s][d]&&i++;return(t=r-a+1)*(n=o-l+1)===i&&[t,n]},_.mergeCells=function(){for(var e=_.isSquare(array),t=e[0],n=e[1],a=document.querySelector(".wptb-highlighted"),l=[].slice.call(document.getElementsByClassName("wptb-highlighted"),1),r=[],o=0;o<l.length;o++){var i=l[o].getElementsByClassName("wptb-ph-element");if(0<i.length)for(var s=i.length,d=0;d<s;d++)r.push(i[d]);l[o].parentNode.removeChild(l[o])}if(0<r.length)for(var c=0;c<r.length;c++)a.appendChild(r[c]);a.colSpan=n,a.rowSpan=t,_.recalculateIndexes(),_.reconstraction();var p=a.style.width,m=a.dataset.wptbFixedWidth;p?_.addColumnWidth(parseFloat(p,10)):m?_.addColumnWidth():_.addColumnWidth(!1,!0);var u=a.style.height,b=a.dataset.wptbFixedHeight;u?_.addRowHeight(parseFloat(u,10)):b?_.addRowHeight():_.addRowHeight(!1,!0),WPTB_Helper.dataTitleColumnSet(_),C()},_.splitCell=function(){var e=document.getElementsByClassName("wptb-highlighted")[0],t=e.rowSpan,n=e.colSpan,a=e.getAttribute("style"),l=T(e)[0],r=_.rows[l],o=e.dataset.xIndex;e.rowSpan=1;for(var i=e.colSpan=1;i<n;i++){var s=new WPTB_Cell(B);s.getDOMElement().setAttribute("style",a),s.getDOMElement().classList.add("wptb-highlighted"),e.nextSibling?r.insertBefore(s.getDOMElement(),e.nextSibling):r.appendChild(s.getDOMElement())}if(1<t)for(var d=1;d<t;d++){var c=void 0,p=_.rows[l+d],m=p.children,u=m.length;if(0<u)for(var b=0;b<u;b++)if(Number(m[b].dataset.xIndex)>Number(o)){c=m[b];break}for(var g=0;g<n;g++){var h=new WPTB_Cell(B);h.getDOMElement().setAttribute("style",a),null!=c?p.insertBefore(h.getDOMElement(),c):p.appendChild(h.getDOMElement())}}_.recalculateIndexes(),_.reconstraction(),_.addColumnWidth(),_.addRowHeight(),WPTB_Helper.dataTitleColumnSet(_),C()},_.findRowspannedCells=function(e){var t,n=[];if(actualPoints=function(e){for(var t=_.rows[e].getElementsByTagName("td"),n=0,a=0;a<t.length;a++)n+=t[a].colSpan;return n}(e),actualPoints===w)return[];t=w-actualPoints;for(var a=e-1;0<=a&&t;a--){var l=_.rows[a].getElementsByTagName("td");for(a=0;a<l.length;a++)1<l[a].rowSpan&&(n.push(l[a]),t-=l[a].colSpan)}return n},_.addLackingCells=function(){for(var e=[],t=0;t<_.rows.length;t++)e.push(0);for(t=0;t<_.rows.length;t++)for(var n=_.rows[t].getElementsByTagName("td"),a=0;a<n.length;a++)if(1<n[a].rowSpan)for(var l=1;l<n[a].rowSpan;l++)e[t+l]++;for(t=0;t<_.rows.length;t++){n=_.rows[t].getElementsByTagName("td");var r=0;for(a=0;a<n.length;a++)r+=n[a].colSpan;r+=e[t],difference=w-r;for(a=0;a<difference;a++){var o=new WPTB_Cell(B);_.rows[t].appendChild(o.getDOMElement())}}},_.deleteRow=function(){var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),n=e.rowSpan,a=T(e)[0],l=void 0;null==n&&(n=1);for(var r=0;r<n;r++){var o=_.rows[a].children,i=_.rows[a+1],s=void 0,d=void 0,c=[];if(null!=i){d=(s=i.children).length;for(var p=0;p<o.length;p++)if(1<o[p].rowSpan){var m=new WPTB_Cell(B);m.getDOMElement().setAttribute("style",t),m.getDOMElement().colSpan=o[p].colSpan,m.getDOMElement().rowSpan=o[p].rowSpan-1;for(var u=void 0,b=0;b<d;b++)if(Number(s[b].dataset.xIndex)>Number(o[p].dataset.xIndex)){u=s[b];break}u?c.push([m,u]):c.push([m])}if(0<c.length)for(var g=0;g<c.length;g++)null!=c[g][1]?i.insertBefore(c[g][0].getDOMElement(),c[g][1]):i.appendChild(c[g][0].getDOMElement())}var h=_.rows;if(0<h.length)for(var w=0;w<a;w++){var y=h[w].children;if(0<y.length)for(var f=0;f<y.length;f++)y[f].rowSpan-1>=a-w&&y[f].rowSpan--}l=Array.from(array[0]),array.pop(l),E(array),_.getElementsByTagName("tbody")[0].removeChild(_.rows[a]),0==_.rows.length&&(_.toggleTableEditMode(),v.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),_.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(_)}C()},_.deleteColumn=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.dataset.xIndex,n=e.colSpan,a=0;a<n;a++){for(var l=0;l<_.rows.length;l++){var r=_.rows[l].children,o=r.length;if(0<o)for(var i=o-1;0<=i;i--){if(Number(r[i].dataset.xIndex)==Number(t)){1<r[i].colSpan?r[i].colSpan--:_.rows[l].removeChild(r[i]);break}if(Number(r[i].dataset.xIndex)<Number(t)&&Number(r[i].dataset.xIndex)+Number(r[i].colSpan-1)>=t){1<r[i].colSpan&&r[i].colSpan--;break}}}for(var s=0;s<_.rows.length;s++)null!=array[s]&&array[s].pop();w--,0==_.querySelectorAll("td").length&&(_.toggleTableEditMode(),v.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),_.recalculateIndexes(),_.tdDefaultWidth(),WPTB_Helper.dataTitleColumnSet(_)}C()},document.getElementsByClassName("wptb-table-generator")[0].style.display="none",array=function(){for(var e=[],t=[],n=0;n<_.rows.length;n++){for(var a=_.rows[n].getElementsByTagName("td"),l=0,r=0;r<a.length;r++)l+=a[r].colSpan;e.push(l)}w=Math.max.apply(null,e);var o=_.rows.length;for(n=0;n<o;n++)for(t[n]=[],r=0;r<w;r++)t[n].push(0);return E(t),t}(),C(),E(array),v.appendChild(_),_.recalculateIndexes(!0),_.reconstraction(),_.tdDefaultWidth(),v.onresize=function(){_.tdDefaultWidth()},WPTB_LeftPanel()};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var WPTB_Text=function(e,t){var n=document.createElement("div"),a=document.createElement("div"),l=document.createElement("p"),r=void 0,o=!1;if(n.classList.add("wptb-text-container"),l.innerHTML=null!=e?e:"Text",a.appendChild(l),n.appendChild(a),t){var i=t.className.match(/wptb-element-((.+-)\d+)/i);i&&Array.isArray(i)&&(r=i[1],o=!0);for(var s=[].concat(_toConsumableArray(t.attributes)),d=0;d<s.length;d++)n.setAttribute(s[d].name,s[d].value)}return this.kind="text",this.getDOMElement=function(){return n},applyGenericItemSettings(this,r,o),this},WPTB_innerElementSet=function p(t){t.ondragenter=function(e){-1==e.dataTransfer.types.indexOf("wptbelement")&&-1==e.dataTransfer.types.indexOf("wptb-moving-mode")||(WPTB_DropHandle(this,e),t.classList.add("wptb-ondragenter"))},t.ondragover=function(e){e.preventDefault(),WPTB_DropHandle(this,e)},t.ondragleave=function(){},t.ondrop=function(e){this.classList.remove("wptb-ondragenter");var t=void 0,n=void 0;if(e.preventDefault(),e.stopPropagation(),e.dataTransfer.getData("wptbElement")||e.dataTransfer.getData("node")){var a,l=void 0,r=void 0;if(0<document.getElementsByClassName("wptb-drop-handle").length&&(l=document.getElementsByClassName("wptb-drop-handle")[0]),0<document.getElementsByClassName("wptb-drop-border-marker").length&&(r=document.getElementsByClassName("wptb-drop-border-marker")[0]),e.dataTransfer.getData("wptbElement")?t=(t="list"==(a=e.dataTransfer.getData("wptbElement"))?new WPTB_List:"image"==a?new WPTB_Image:"text"==a?new WPTB_Text:"button"==a?new WPTB_Button:void 0).getDOMElement():(n=e.dataTransfer.getData("node"),(t=document.getElementsByClassName(n)[0]).classList.remove("wptb-moving-mode")),"block"==l.style.display){var o=void 0;if("Drop Here"==l.dataset.text)(o=l.getDOMParentElement()).appendChild(t);else{var i=l.getDOMParentElement();if(o=i.parentNode,"Abowe Element"==l.dataset.text)o.insertBefore(t,i);else if("Below Element"==l.dataset.text){var s=i.nextSibling;o.insertBefore(t,s)}}var d=o.parentNode;if(d.classList.contains("wptb-table-head")){var c=WPTB_Helper.findAncestor(d,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(c)}return l.style.display="none",r.style.display="none",p(t),!0}}},t.onmouseover=function(e){t.classList.remove("wptb-ondragenter")}},applyGenericItemSettings=function(m,e){var t,u,n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],b=m.getDOMElement();if(null==e||1==n){t=document.counter.nextIndex(m.kind);for(var a=document.getElementsByClassName("wptb-ph-element"),l=[],r=0;r<a.length;r++){var o=new RegExp("wptb-element-"+m.kind+"-(\\d+)","i"),i=a[r].className.match(o);i&&l.push(i[1])}if(0<l.length)t=Math.max.apply(Math,l)+1;else t=1}else e&&!n&&(t=e.split("-")[1]);if(b.onmouseenter=function(e){this.classList.add("wptb-directlyhovered");var t=document.createElement("span"),n=document.createElement("span"),a=document.createElement("span"),l=document.createElement("span");l.classList.add("wptb-actions"),t.classList.add("dashicons","dashicons-trash","wptb-delete-action"),n.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),a.classList.add("dashicons","dashicons-move","wptb-move-action"),a.draggable=!0,t.onclick=function(e){var t=this.parentNode.parentNode,n=t.parentNode;if(n.removeChild(t),"text"==t.kind){var a=n.parentNode;if(a.classList.contains("wptb-table-head")){var l=WPTB_Helper.findAncestor(a,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(l)}}},n.onclick=function(e){var t=void 0;if("list"==m.kind){e.target.parentNode.parentNode.parentNode;for(var n=[],a=e.target.parentNode.parentNode.querySelectorAll("ul li .wptb-list-item-content"),l=0;l<a.length;l++)n.push(a[l].innerHTML);t=new WPTB_List(n,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else if("text"==m.kind){e.target.parentNode.parentNode.parentNode;t=new WPTB_Text(e.target.parentNode.parentNode.childNodes[0].innerHTML,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else if("image"==m.kind){e.target.parentNode.parentNode.parentNode;t=new WPTB_Image(e.target.parentNode.parentNode.children[0].children[0].src,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}else{e.target.parentNode.parentNode.parentNode;var r=e.target.parentNode.parentNode.childNodes[0].querySelector("p").innerHTML;t=new WPTB_Button(r,b),b.parentNode.insertBefore(t.getDOMElement(),b.nextSibling)}WPTB_innerElementSet(t.getDOMElement())};var r,o,i=this;r=i.className.match(/wptb-element-(.+)-(\d+)/i),o=r[1];var s=WPTB_Helper.dragImagesArr();if(a.ondragstart=function(e){if(this.parentNode.style.opacity=0,i.classList.remove("wptb-directlyhovered"),i.classList.add("wptb-moving-mode"),e.dataTransfer.setDragImage(s[o],0,0),e.dataTransfer.setData("node","wptb-element-"+r[1]+"-"+r[2]),e.dataTransfer.setData("wptb-moving-mode","wptb-element-"+r[1]+"-"+r[2]),e.dataTransfer.setData("wptbElIndic-"+r[1],"wptbElIndic-"+r[1]),"text"==e.target.parentNode.parentNode.kind){var t=el.parentNode;if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}}},"button"===m.kind){var d=b.querySelector("a"),c=d.querySelector("div");d.onclick=function(e){e.preventDefault()},WPTB_Helper.buttonsTinyMceInit(c)}else if("text"===m.kind)tinyMCE.init({target:b.childNodes[0],inline:!0,plugins:"link, paste",dialog_type:"modal",theme:"modern",menubar:!1,fixed_toolbar_container:"#wpcd_fixed_toolbar",paste_as_text:!0,toolbar:"bold italic strikethrough link unlink | alignleft aligncenter alignright alignjustify",setup:function(e){e.on("change",function(e){var t=WPTB_Helper.findAncestor(b,"wptb-row");if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}})},init_instance_callback:function(e){(window.currentEditor=e).on("focus",function(e){var t=document.getElementsByClassName("wptb-builder-panel")[0].offsetWidth;window.currentEditor&&55<=document.getElementById("wptb_builder").scrollTop&&"none"!=window.currentEditor.bodyElement.style.display?(document.getElementById("wpcd_fixed_toolbar").style.position="fixed",document.getElementById("wpcd_fixed_toolbar").style.right=t/2-document.getElementById("wpcd_fixed_toolbar").offsetWidth/2+"px",document.getElementById("wpcd_fixed_toolbar").style.top="100px"):(document.getElementById("wpcd_fixed_toolbar").style.position="static",delete document.getElementById("wpcd_fixed_toolbar").style.right,delete document.getElementById("wpcd_fixed_toolbar").style.top)})}});else{u=b.getElementsByClassName("wptb-list-item-content");for(var p=0;p<u.length;p++)WPTB_Helper.listItemsTinyMceInit(u[p])}l.appendChild(a),l.appendChild(n),l.appendChild(t),this.appendChild(l)},b.onmouseleave=function(e){this.classList.remove("wptb-directlyhovered");for(var t=0;e.target.querySelector(".wptb-actions")&&t<5;)e.target.querySelector(".wptb-actions").remove(),t++},"text"==m.kind){new MutationObserver(function(e){var t=WPTB_Helper.findAncestor(b,"wptb-row");if(t.classList.contains("wptb-table-head")){var n=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(n)}}).observe(m.getDOMElement(),{attributes:!0,attributeFilter:["style"]})}var s=b.className.match(/wptb-element-(.+)-(\d+)/i);s&&b.classList.remove(s[0]),b.classList.contains("wptb-ph-element")||b.classList.add("wptb-ph-element"),b.classList.contains("wptb-element-"+m.kind+"-"+t)||b.classList.add("wptb-element-"+m.kind+"-"+t),new WPTB_ElementOptions(m,t,e),document.counter.increment(m.kind)};
inc/admin/js/core/WPTB_ElementOptions.js CHANGED
@@ -443,12 +443,12 @@ var WPTB_ElementOptions = function ( element, index, kindIndexProt ) {
443
  }
444
  break;
445
  case 'image-size':
446
- affectedEl.getElementsByTagName('img')[0].style.width = this.value + '%';
447
- affectedEl.getElementsByTagName('img')[0].style.height = 'auto';
448
  this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;
449
  break;
450
  case 'image-alignment':
451
- affectedEl.getElementsByTagName( 'img' )[0].parentNode.style.textAlign = this.value;
452
  break;
453
  case 'font-size':
454
  affectedEl.style.fontSize = val + 'px';
443
  }
444
  break;
445
  case 'image-size':
446
+ affectedEl.getElementsByTagName('a')[0].style.width = this.value + '%';
447
+ affectedEl.getElementsByTagName('a')[0].style.height = 'auto';
448
  this.parentNode.parentNode.getElementsByClassName('wptb-image-size-slider')[0].value = this.value;
449
  break;
450
  case 'image-alignment':
451
+ affectedEl.getElementsByClassName( 'wptb-image-wrapper' )[0].style.textAlign = this.value;
452
  break;
453
  case 'font-size':
454
  affectedEl.style.fontSize = val + 'px';
inc/admin/js/core/WPTB_Helper.js CHANGED
@@ -187,17 +187,17 @@ var WPTB_Helper = {
187
  thisRowChildren = thisRow.children;
188
  for( let j = 0; j < thisRowChildren.length; j++ ) {
189
  if ( contentsForHeader[thisRowChildren[j].dataset.xIndex] ) {
190
- thisRowChildren[j].dataset.titleColumn = contentsForHeader[thisRowChildren[j].dataset.xIndex][0];
191
- thisRowChildren[j].dataset.titleColumnFontSize = contentsForHeader[thisRowChildren[j].dataset.xIndex][1];
192
- thisRowChildren[j].dataset.titleColumnColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][2];
193
- thisRowChildren[j].dataset.titleBackgroundColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][3];
194
- thisRowChildren[j].dataset.titleAlign = contentsForHeader[thisRowChildren[j].dataset.xIndex][4];
195
  } else {
196
- thisRowChildren[j].dataset.titleColumn = '';
197
- thisRowChildren[j].dataset.titleColumnFontSize = '';
198
- thisRowChildren[j].dataset.titleColumnColor = '';
199
- thisRowChildren[j].dataset.titleBackgroundColor = '';
200
- thisRowChildren[j].dataset.titleAlign = '';
201
  }
202
  }
203
  }
187
  thisRowChildren = thisRow.children;
188
  for( let j = 0; j < thisRowChildren.length; j++ ) {
189
  if ( contentsForHeader[thisRowChildren[j].dataset.xIndex] ) {
190
+ thisRowChildren[j].dataset.wptbTitleColumn = contentsForHeader[thisRowChildren[j].dataset.xIndex][0];
191
+ thisRowChildren[j].dataset.wptbTitleColumnFontSize = contentsForHeader[thisRowChildren[j].dataset.xIndex][1];
192
+ thisRowChildren[j].dataset.wptbTitleColumnColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][2];
193
+ thisRowChildren[j].dataset.wptbTitleBackgroundColor = contentsForHeader[thisRowChildren[j].dataset.xIndex][3];
194
+ thisRowChildren[j].dataset.wptbTitleAlign = contentsForHeader[thisRowChildren[j].dataset.xIndex][4];
195
  } else {
196
+ thisRowChildren[j].dataset.wptbTitleColumn = '';
197
+ thisRowChildren[j].dataset.wptbTitleColumnFontSize = '';
198
+ thisRowChildren[j].dataset.wptbTitleColumnColor = '';
199
+ thisRowChildren[j].dataset.wptbTitleBackgroundColor = '';
200
+ thisRowChildren[j].dataset.wptbTitleAlign = '';
201
  }
202
  }
203
  }
inc/admin/js/core/WPTB_Image.js CHANGED
@@ -1,14 +1,19 @@
1
  var WPTB_Image = function ( src, DOMElementProt ) {
2
  let DOMElement,
 
3
  kindIndexProt = undefined,
4
  copy = false;
5
  if ( DOMElementProt == undefined ) {
6
- DOMElement = document.createElement('div');
7
- let anchor = document.createElement('a'),
8
- img = document.createElement('img');
 
9
  anchor.style.display = 'inline-block';
10
- anchor.appendChild(img);
11
- DOMElement.appendChild(anchor);
 
 
 
12
 
13
  anchor.onclick = function( e ) {
14
  e.preventDefault();
1
  var WPTB_Image = function ( src, DOMElementProt ) {
2
  let DOMElement,
3
+ elImage,
4
  kindIndexProt = undefined,
5
  copy = false;
6
  if ( DOMElementProt == undefined ) {
7
+ DOMElement = document.createElement( 'div' );
8
+ elImage = document.createElement( 'div' );
9
+ let anchor = document.createElement( 'a' ),
10
+ img = document.createElement( 'img' );
11
  anchor.style.display = 'inline-block';
12
+ anchor.appendChild( img );
13
+ DOMElement.classList.add( 'wptb-image-container' );
14
+ elImage.classList.add( 'wptb-image-wrapper' );
15
+ elImage.appendChild( anchor );
16
+ DOMElement.appendChild( elImage );
17
 
18
  anchor.onclick = function( e ) {
19
  e.preventDefault();
inc/admin/js/core/WPTB_LeftPanel.js CHANGED
@@ -404,7 +404,11 @@ var WPTB_LeftPanel = function () {
404
  let thisRow = rows[i],
405
  thisRowChildren = thisRow.children;
406
  for( let j = 0; j < thisRowChildren.length; j++ ) {
407
- thisRowChildren[j].removeAttribute( 'data-title-column' );
 
 
 
 
408
  }
409
  }
410
  }
404
  let thisRow = rows[i],
405
  thisRowChildren = thisRow.children;
406
  for( let j = 0; j < thisRowChildren.length; j++ ) {
407
+ thisRowChildren[j].removeAttribute( 'data-wptb-title-column' );
408
+ thisRowChildren[j].removeAttribute( 'data-wptb-title-column-font-size' );
409
+ thisRowChildren[j].removeAttribute( 'data-wptb-title-column-color' );
410
+ thisRowChildren[j].removeAttribute( 'data-wptb-title-background-color' );
411
+ thisRowChildren[j].removeAttribute( 'data-wptb-title-align' );
412
  }
413
  }
414
  }
inc/admin/js/core/WPTB_Settings.js CHANGED
@@ -17,19 +17,19 @@ var WPTB_Settings = function () {
17
  }
18
  };
19
 
20
- let shortcodePopupWindow = document.getElementsByClassName( 'wptb-shortcode-popup-window-modal' )[0];
21
  document.getElementsByClassName( 'wptb-embed-btn' )[0].onclick = function () {
22
  if( ! this.classList.contains( 'wptb-embed-disable' ) ) {
23
- shortcodePopupWindow.classList.add( 'wptb-shortcode-popup-show' );
24
  }
25
  }
26
 
27
- document.getElementsByClassName( 'wptb-shortcode-popup-dark-area' )[0].onclick = function () {
28
- shortcodePopupWindow.classList.remove( 'wptb-shortcode-popup-show' );
29
  }
30
 
31
- document.getElementsByClassName( 'wptb-shortcode-popup-window-close-icon' )[0].onclick = function () {
32
- shortcodePopupWindow.classList.remove( 'wptb-shortcode-popup-show' );
33
  }
34
 
35
  document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function () {
17
  }
18
  };
19
 
20
+ let shortcodePopupWindow = document.getElementsByClassName( 'wptb-popup-window-modal' )[0];
21
  document.getElementsByClassName( 'wptb-embed-btn' )[0].onclick = function () {
22
  if( ! this.classList.contains( 'wptb-embed-disable' ) ) {
23
+ shortcodePopupWindow.classList.add( 'wptb-popup-show' );
24
  }
25
  }
26
 
27
+ document.getElementsByClassName( 'wptb-popup-dark-area' )[0].onclick = function () {
28
+ shortcodePopupWindow.classList.remove( 'wptb-popup-show' );
29
  }
30
 
31
+ document.getElementsByClassName( 'wptb-popup-window-close-icon' )[0].onclick = function () {
32
+ shortcodePopupWindow.classList.remove( 'wptb-popup-show' );
33
  }
34
 
35
  document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function () {
inc/admin/js/core/WPTB_Stringifier.js CHANGED
@@ -67,14 +67,14 @@ var WPTB_Stringifier = function ( codeMain ) {
67
  }
68
  }
69
 
70
- if( tds[i].hasAttribute( 'data-title-column' ) ) {
71
  let columnNameDivContainer = document.createElement( 'div' ),
72
  columnNameDiv = document.createElement( 'div' );
73
  columnNameDivContainer.classList.add( 'wptb-column-title-mobile-container' );
74
  columnNameDiv.classList.add( 'wptb-column-title-mobile' );
75
- columnNameDiv.dataset.titleColumn = tds[i].dataset.titleColumn;
76
- columnNameDiv.setAttribute( 'style', 'font-size:' + tds[i].dataset.titleColumnFontSize + '; \n\
77
- color:' + tds[i].dataset.titleColumnColor + '; background-color:' + tds[i].dataset.titleBackgroundColor + '; text-align:' + tds[i].dataset.titleAlign + ';' );
78
  columnNameDiv.style.padding = tds[i].style.padding;
79
  if( tds[i].children.length == 0 ) {
80
  tds[i].classList.add( 'wptb-column-title-mobile-not-elements' );
67
  }
68
  }
69
 
70
+ if( tds[i].hasAttribute( 'data-wptb-title-column' ) ) {
71
  let columnNameDivContainer = document.createElement( 'div' ),
72
  columnNameDiv = document.createElement( 'div' );
73
  columnNameDivContainer.classList.add( 'wptb-column-title-mobile-container' );
74
  columnNameDiv.classList.add( 'wptb-column-title-mobile' );
75
+ columnNameDiv.dataset.wptbTitleColumn = tds[i].dataset.wptbTitleColumn;
76
+ columnNameDiv.setAttribute( 'style', 'font-size:' + tds[i].dataset.wptbTitleColumnFontSize + '; \n\
77
+ color:' + tds[i].dataset.wptbTitleColumnColor + '; background-color:' + tds[i].dataset.wptbTitleBackgroundColor + '; text-align:' + tds[i].dataset.wptbTitleAlign + ';' );
78
  columnNameDiv.style.padding = tds[i].style.padding;
79
  if( tds[i].children.length == 0 ) {
80
  tds[i].classList.add( 'wptb-column-title-mobile-not-elements' );
inc/admin/js/core/WPTB_Table.js CHANGED
@@ -387,7 +387,7 @@ var array = [], WPTB_Table = function (columns, rows) {
387
 
388
  //Create a HTML Table element.
389
  table = document.createElement( 'table' );
390
- table.classList.add( 'wptb-preview-table', 'wptb-preview-table-default-width' );
391
  table.dataset.reconstraction = 1;
392
  //Add the data rows.
393
  for (var i = 0; i < rows; i++) {
387
 
388
  //Create a HTML Table element.
389
  table = document.createElement( 'table' );
390
+ table.classList.add( 'wptb-preview-table' );
391
  table.dataset.reconstraction = 1;
392
  //Add the data rows.
393
  for (var i = 0; i < rows; i++) {
inc/admin/js/wptb-overview.js ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener("DOMContentLoaded", function(event) {
2
+
3
+
4
+ function wptbModalPopupWindowCreate() {
5
+ let wptbPopupWindowModal = document.createElement( 'div' );
6
+ wptbPopupWindowModal.classList.add( 'wptb-popup-window-modal', 'wptb-popup-window-delete-confirm' );
7
+
8
+ wptbPopupWindowModal.innerHTML = '<div class="wptb-popup-box">\n\
9
+ <div class="wptb-popup-sing-picture-container">\n\
10
+ <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" \n\
11
+ x="0px" y="0px" viewBox="0 0 27.963 27.963" style="enable-background:new 0 0 27.963 27.963;" \n\
12
+ xml:space="preserve" width="50" height="50" class="">\n\
13
+ <g>\n\
14
+ <g>\n\
15
+ <g id="c129_exclamation">\n\
16
+ <path d="M13.983,0C6.261,0,0.001,6.259,0.001,13.979c0,7.724,6.26,13.984,13.982,13.984s13.98-6.261,13.98-13.984 \n\
17
+ C27.963,6.259,21.705,0,13.983,0z M13.983,26.531c-6.933,0-12.55-5.62-12.55-12.553c0-6.93,5.617-12.548,12.55-12.548 \n\
18
+ c6.931,0,12.549,5.618,12.549,12.548C26.531,20.911,20.913,26.531,13.983,26.531z" data-original="#000000" \n\
19
+ class="active-path" style="fill:#3B7EC0" data-old_color="#000000">\n\
20
+ </path>\n\
21
+ <polygon points="15.579,17.158 16.191,4.579 11.804,4.579 12.414,17.158 \n\
22
+ " data-original="#000000" class="active-path" style="fill:#3B7EC0" \n\
23
+ data-old_color="#000000">\n\
24
+ </polygon>\n\
25
+ <path d="M13.998,18.546c-1.471,0-2.5,1.029-2.5,2.526c0,1.443,0.999,2.528,2.444,2.528h0.056c1.499,0,2.469-1.085,2.469-2.528 \n\
26
+ C16.441,19.575,15.468,18.546,13.998,18.546z" data-original="#000000" class="active-path" style="fill:#3B7EC0" \n\
27
+ data-old_color="#000000">\n\
28
+ </path>\n\
29
+ </g>\n\
30
+ <g id="Capa_1_207_"></g>\n\
31
+ </g></g> \n\
32
+ </svg>\n\
33
+ </div>\n\
34
+ <div class="wptb-popup-content">\n\
35
+ <p>Are you sure you want to delete this table?</p>\n\
36
+ </div>\n\
37
+ <div class="wptb-popup-window-buttons">\n\
38
+ <button class="wptb-confirm-btn">OK</button>\n\
39
+ <button class="wptb-cancel-btn">CANCEL</button>\n\
40
+ </div>\n\
41
+ </div>';
42
+
43
+ let wptbPopupDarkArea = document.createElement( 'div' );
44
+ wptbPopupDarkArea.classList.add( 'wptb-popup-dark-area' );
45
+
46
+ let body = document.getElementsByTagName( 'body' );
47
+ if( body.length > 0 ) {
48
+ body = body[0];
49
+ body.appendChild( wptbPopupWindowModal );
50
+ body.appendChild( wptbPopupDarkArea );
51
+ }
52
+
53
+ wptbPopupDarkArea.onclick = function() {
54
+ wptbPopupWindowModal.classList.add( 'hilight' );
55
+
56
+ setTimeout( function(){
57
+ wptbPopupWindowModal.classList.remove( 'hilight' );
58
+ }, 1000 );
59
+ }
60
+
61
+ let wptbCancelButton = wptbPopupWindowModal.getElementsByClassName( 'wptb-cancel-btn' );
62
+ if( wptbCancelButton.length > 0 ) {
63
+ wptbCancelButton = wptbCancelButton[0];
64
+ wptbCancelButton.onclick = function() {
65
+ wptbPopupWindowModal.classList.remove( 'wptb-popup-show' );
66
+ }
67
+ }
68
+
69
+ let wptbConfirmButton = wptbPopupWindowModal.getElementsByClassName( 'wptb-confirm-btn' );
70
+ if( wptbConfirmButton.length > 0 ) {
71
+ wptbConfirmButton = wptbConfirmButton[0];
72
+ wptbConfirmButton.onclick = function() {
73
+ window.location.href = this.dataset.urlForTableConfirm;
74
+ }
75
+ }
76
+ }
77
+
78
+ wptbModalPopupWindowCreate();
79
+
80
+
81
+ function eachItemsAddHandler( attributeClass ) {
82
+ let htmlCollection = document.getElementsByClassName( attributeClass );
83
+ let wptbPopupWindowModal = document.getElementsByClassName( 'wptb-popup-window-modal' )[0];
84
+
85
+ for( let i = 0; i < htmlCollection.length; i++ ) {
86
+ let a = htmlCollection[i].getElementsByTagName( 'a' );
87
+ if( a.length > 0 ) {
88
+ a[0].onclick = function( e ) {
89
+ e.preventDefault();
90
+ wptbPopupWindowModal.classList.add( 'wptb-popup-show' );
91
+
92
+ let wptbPopupContent = wptbPopupWindowModal.getElementsByClassName( 'wptb-popup-content' );
93
+ if( wptbPopupContent.length > 0 ) {
94
+ wptbPopupContent = wptbPopupContent[0];
95
+ let p = wptbPopupContent.getElementsByTagName( 'p' );
96
+ if( p.length > 0 ) {
97
+ p = p[0];
98
+ if( attributeClass == 'delete' ) {
99
+ p.innerHTML = 'Are you sure you want to delete this table?';
100
+ } else if( attributeClass == 'duplicate' ) {
101
+ p.innerHTML = 'Are you sure you want to duplicate this table?';
102
+ }
103
+ }
104
+ }
105
+
106
+ let wptbConfirmButton = wptbPopupWindowModal.getElementsByClassName( 'wptb-confirm-btn' );
107
+ if( wptbConfirmButton.length > 0 ) {
108
+ wptbConfirmButton = wptbConfirmButton[0];
109
+ wptbConfirmButton.dataset.urlForTableConfirm = e.target.href;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ eachItemsAddHandler( 'delete' );
117
+
118
+ eachItemsAddHandler( 'duplicate' );
119
+
120
+
121
+
122
+ });
123
+
124
+
125
+
inc/admin/views/builder/wptb-builder-header.php CHANGED
@@ -36,10 +36,10 @@
36
  </div>
37
  </div>
38
 
39
- <div class="wptb-shortcode-popup-window-modal">
40
- <div class="wptb-shortcode-popup-box">
41
- <div class="wptb-shortcode-popup-window-close-icon" style="display: block;">×</div>
42
- <div class="wptb-shortcode-popup-content">
43
  <p>
44
  <?php esc_html_e( 'To embed this table on your site, please paste the following shortcode inside a post or page.', 'wp-table-builder' ); ?>
45
  </p>
@@ -49,6 +49,6 @@
49
  </div>
50
  </div>
51
  </div>
52
- <div class="wptb-shortcode-popup-dark-area"></div>
53
 
54
  </div>
36
  </div>
37
  </div>
38
 
39
+ <div class="wptb-popup-window-modal">
40
+ <div class="wptb-popup-box">
41
+ <div class="wptb-popup-window-close-icon" style="display: block;">×</div>
42
+ <div class="wptb-popup-content">
43
  <p>
44
  <?php esc_html_e( 'To embed this table on your site, please paste the following shortcode inside a post or page.', 'wp-table-builder' ); ?>
45
  </p>
49
  </div>
50
  </div>
51
  </div>
52
+ <div class="wptb-popup-dark-area"></div>
53
 
54
  </div>
inc/common/class-helpers.php CHANGED
@@ -33,5 +33,27 @@ class Helpers {
33
  $capability = wptb_get_capability_manage_options();
34
  return apply_filters( 'wptb_current_user_can', current_user_can( $capability ), $capability );
35
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  }
33
  $capability = wptb_get_capability_manage_options();
34
  return apply_filters( 'wptb_current_user_can', current_user_can( $capability ), $capability );
35
  }
36
+
37
+ /**
38
+ * Return URL to form preview page.
39
+ *
40
+ * @since 1.0.2
41
+ *
42
+ * @param int $table_id Table ID.
43
+ *
44
+ * @return string
45
+ */
46
+ static function wptb_get_table_preview_url( $table_id ) {
47
+
48
+
49
+ $url = add_query_arg(
50
+ array(
51
+ 'wptb_table_preview' => absint( $table_id ),
52
+ ),
53
+ home_url()
54
+ );
55
+
56
+ return $url;
57
+ }
58
 
59
  }
inc/core/class-init.php CHANGED
@@ -4,6 +4,7 @@ namespace WP_Table_Builder\Inc\Core;
4
  use WP_Table_Builder as NS;
5
  use WP_Table_Builder\Inc\Admin as Admin;
6
  use WP_Table_Builder\Inc\Frontend as Frontend;
 
7
 
8
  /**
9
  * The core plugin class.
@@ -65,6 +66,7 @@ class Init {
65
  $this->set_locale();
66
  $this->define_admin_hooks();
67
  $this->define_public_hooks();
 
68
  }
69
 
70
  /**
@@ -109,10 +111,10 @@ class Init {
109
 
110
  $tables = new Admin\Tables;
111
  $menu = new Admin\Admin_Menu;
112
-
113
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
114
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
115
-
116
  /*
117
  * Additional Hooks go here
118
  *
@@ -141,8 +143,18 @@ class Init {
141
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
142
 
143
  }
144
-
145
- /**
 
 
 
 
 
 
 
 
 
 
146
  * Run the loader to execute all of the hooks with WordPress.
147
  */
148
  public function run() {
4
  use WP_Table_Builder as NS;
5
  use WP_Table_Builder\Inc\Admin as Admin;
6
  use WP_Table_Builder\Inc\Frontend as Frontend;
7
+ use WP_Table_Builder\Inc\Core\Preview as Preview;
8
 
9
  /**
10
  * The core plugin class.
66
  $this->set_locale();
67
  $this->define_admin_hooks();
68
  $this->define_public_hooks();
69
+ $this->table_preview();
70
  }
71
 
72
  /**
111
 
112
  $tables = new Admin\Tables;
113
  $menu = new Admin\Admin_Menu;
114
+
115
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
116
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
117
+
118
  /*
119
  * Additional Hooks go here
120
  *
143
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
144
 
145
  }
146
+
147
+ /**
148
+ * Сreates an instance of the class that is intended to display
149
+ * the table preview
150
+ *
151
+ * @access private
152
+ */
153
+ private function table_preview() {
154
+ $this->loader->add_action( 'plugins_loaded', 'WP_Table_Builder\Inc\Core\Preview', 'instance' );
155
+ }
156
+
157
+ /**
158
  * Run the loader to execute all of the hooks with WordPress.
159
  */
160
  public function run() {
inc/core/class-preview.php ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Table_Builder\Inc\Core;
4
+
5
+ /**
6
+ * Show preview table
7
+ *
8
+ * @link http://wptablebuilder.com/
9
+ * @since 1.0.1
10
+ *
11
+ * @author Imtiaz Rayhan
12
+ */
13
+
14
+
15
+ class Preview {
16
+
17
+ /**
18
+ * Instance to instantiate object.
19
+ *
20
+ * @since 1.0.1
21
+ *
22
+ * @var $instance
23
+ */
24
+ protected static $instance;
25
+
26
+ /**
27
+ * Table data.
28
+ *
29
+ * @since 1.0.1
30
+ *
31
+ * @var array
32
+ */
33
+ public $table_data;
34
+
35
+ /**
36
+ * Singleton pattern, making only one instance of the class.
37
+ *
38
+ * @since 1.0.1
39
+ */
40
+ public static function instance() {
41
+ if ( ! isset( self::$instance ) ) {
42
+ $className = __CLASS__;
43
+ self::$instance = new $className;
44
+ }
45
+
46
+ return self::$instance;
47
+ }
48
+
49
+ /**
50
+ * Constructor.
51
+ *
52
+ * @since 1.0.1
53
+ */
54
+ private function __construct() {
55
+
56
+ if ( ! $this->is_preview_page() ) {
57
+ return;
58
+ }
59
+
60
+ $this->hooks();
61
+
62
+ }
63
+
64
+
65
+ /**
66
+ * Check if the current page request meets the requirements for the table preview page.
67
+ *
68
+ * @since 1.0.1
69
+ *
70
+ * @return bool
71
+ */
72
+ public function is_preview_page() {
73
+
74
+ // if this is a preview page, then continue
75
+ if ( empty( $_GET['wptb_table_preview'] ) ) {
76
+ return false;
77
+ }
78
+
79
+ // if the user is authorized and if user rights are valid
80
+ if ( ! is_user_logged_in() || ! wptb_current_user_can ) {
81
+ return false;
82
+ }
83
+
84
+ $this->table_data = $this->get_table_data( absint( $_GET['wptb_table_preview'] ) );
85
+
86
+ // Check if the form is available
87
+ if ( empty( $this->table_data ) ) {
88
+ return false;
89
+ }
90
+
91
+ return true;
92
+
93
+ }
94
+
95
+ public function get_table_data( $id ) {
96
+
97
+ if ( false === $id ) {
98
+ return false;
99
+ }
100
+
101
+ if ( ! empty( $id ) ) {
102
+ $post = get_post( $id );
103
+
104
+ $post = ! empty( $post ) && 'wptb-tables' === $post->post_type && get_post_meta( $id, '_wptb_content_', true ) ? $post : false;
105
+ }
106
+
107
+ if ( empty( $post ) ) {
108
+ return false;
109
+ }
110
+
111
+ return $post;
112
+
113
+ }
114
+
115
+
116
+ /**
117
+ * Adds functions to event handlers and filtering functions
118
+ * for displaying necessary content.
119
+ *
120
+ * @since 1.0.1
121
+ */
122
+ public function hooks() {
123
+
124
+ add_action( 'pre_get_posts', array( $this, 'pre_get_posts' ) );
125
+
126
+ add_filter( 'the_title', array( $this, 'the_title' ), 100 );
127
+
128
+ add_filter( 'the_content', array( $this, 'the_content' ), 999 );
129
+
130
+ add_filter( 'get_the_excerpt', array( $this, 'the_content' ), 999 );
131
+
132
+ add_filter( 'template_include', array( $this, 'template_include' ) );
133
+
134
+ add_filter( 'post_thumbnail_html', '__return_empty_string' );
135
+
136
+ }
137
+
138
+ /**
139
+ * Modify query, limit for one post.
140
+ *
141
+ * @since 1.0.1
142
+ *
143
+ * @param $query The WP_Query instance.
144
+ */
145
+ public function pre_get_posts( $query ) {
146
+
147
+ if ( ! is_admin() && $query->is_main_query() ) {
148
+ $query->set( 'posts_per_page', 1 );
149
+ }
150
+
151
+ }
152
+
153
+ /**
154
+ * Change page title for table preview
155
+ *
156
+ * @since 1.0.1
157
+ *
158
+ * @param string $title Page title.
159
+ *
160
+ * @return string
161
+ */
162
+ public function the_title() {
163
+
164
+ $title = sprintf(
165
+ esc_html__( '%s Preview', 'wp-table-builder' ),
166
+ ! empty( $this->table_data->post_title ) ? sanitize_text_field( $this->table_data->post_title ) : esc_html__( 'Table', 'wp-table-builder' )
167
+ );
168
+
169
+ return $title;
170
+
171
+ }
172
+
173
+ /**
174
+ * Change page content for table preview.
175
+ *
176
+ * @since 1.0.1
177
+ *
178
+ * @return string
179
+ */
180
+ public function the_content() {
181
+
182
+ $content = esc_html__( 'This is a preview of your table. This page is not publicly accessible.', 'wp-table-builder' );
183
+
184
+ $content .= do_shortcode( '[wptb id="' . absint( $this->table_data->ID ) . '"]' );
185
+
186
+ return $content;
187
+
188
+ }
189
+
190
+ /**
191
+ * Forced inclusion of page templates.
192
+ *
193
+ * @since 1.0.1
194
+ *
195
+ * @return array
196
+ */
197
+ public function template_include() {
198
+
199
+ return locate_template( array( 'page.php', 'single.php', 'index.php' ) );
200
+
201
+ }
202
+
203
+ }
inc/frontend/css/wp-table-builder-frontend.css CHANGED
@@ -102,6 +102,10 @@ table.wptb-preview-table-mobile {
102
  margin-bottom: 15px;
103
  }
104
 
 
 
 
 
105
  .wptb-text-container>div,
106
  .wptb-text-container>div>p {
107
  font-size: inherit;
@@ -282,7 +286,7 @@ table.wptb-preview-table-mobile {
282
  }
283
 
284
  .wptb-table-container table.wptb-table-preview-head td .wptb-column-title-mobile-container .wptb-column-title-mobile::before {
285
- content: attr(data-title-column);
286
  display: table-cell;
287
  width: 50%;
288
  vertical-align: middle;
@@ -293,21 +297,34 @@ table.wptb-preview-table-mobile {
293
  padding: 0px !important;
294
  }
295
 
 
 
 
296
  .wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container {
 
297
  position: relative;
298
  width: 50%;
299
- }
300
 
 
 
 
301
  .wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container .wptb-column-title-mobile {
 
302
  display: block;
303
  min-height: 60px;
304
- }
305
 
 
 
 
 
306
  .wptb-table-container table.wptb-table-preview-head td.wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container .wptb-column-title-mobile::before {
 
307
  display: block;
308
  width: 100%;
309
  padding: 0px;
310
- }
311
 
312
  .wptb-table-container table.wptb-table-preview-head td .wptb-column-title-mobile-container.wptb-column-title-mobile-not-elements .wptb-column-title-mobile::before {
313
  padding-left: 0px;
@@ -349,7 +366,7 @@ table.wptb-preview-table-mobile {
349
  }
350
  .wptb-table-container table.wptb-table-preview-head.wptb-table-preview-static-indic tr td {
351
  display: block;
352
- width: 100%;
353
  box-sizing: border-box;
354
  position: relative;
355
  min-height: 60px;
102
  margin-bottom: 15px;
103
  }
104
 
105
+ .wptb-image-wrapper img {
106
+ width: 100%;
107
+ }
108
+
109
  .wptb-text-container>div,
110
  .wptb-text-container>div>p {
111
  font-size: inherit;
286
  }
287
 
288
  .wptb-table-container table.wptb-table-preview-head td .wptb-column-title-mobile-container .wptb-column-title-mobile::before {
289
+ content: attr(data-wptb-title-column);
290
  display: table-cell;
291
  width: 50%;
292
  vertical-align: middle;
297
  padding: 0px !important;
298
  }
299
 
300
+ <<<<<<< HEAD
301
+ /*.wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container {
302
+ =======
303
  .wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container {
304
+ >>>>>>> 766b3cbc93ba1a84e3d8611b365a5ea6be1dc402
305
  position: relative;
306
  width: 50%;
307
+ }*/
308
 
309
+ <<<<<<< HEAD
310
+ /*.wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container .wptb-column-title-mobile {
311
+ =======
312
  .wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container .wptb-column-title-mobile {
313
+ >>>>>>> 766b3cbc93ba1a84e3d8611b365a5ea6be1dc402
314
  display: block;
315
  min-height: 60px;
316
+ }*/
317
 
318
+ <<<<<<< HEAD
319
+ /*.wptb-table-container table.wptb-table-preview-head td.wptb-column-title-mobile-not-elements
320
+ .wptb-column-title-mobile-container .wptb-column-title-mobile::before {
321
+ =======
322
  .wptb-table-container table.wptb-table-preview-head td.wptb-column-title-mobile-not-elements .wptb-column-title-mobile-container .wptb-column-title-mobile::before {
323
+ >>>>>>> 766b3cbc93ba1a84e3d8611b365a5ea6be1dc402
324
  display: block;
325
  width: 100%;
326
  padding: 0px;
327
+ }*/
328
 
329
  .wptb-table-container table.wptb-table-preview-head td .wptb-column-title-mobile-container.wptb-column-title-mobile-not-elements .wptb-column-title-mobile::before {
330
  padding-left: 0px;
366
  }
367
  .wptb-table-container table.wptb-table-preview-head.wptb-table-preview-static-indic tr td {
368
  display: block;
369
+ width: 100% !important;
370
  box-sizing: border-box;
371
  position: relative;
372
  min-height: 60px;
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: imtiazrayhan
3
  Tags: table, table builder, drag and drop
4
  Requires at least: 4.9
5
  Tested up to: 5.2
6
- Stable tag: 1.0.1
7
  Requires PHP: 5.6
8
  License: GPL3+
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
@@ -59,6 +59,12 @@ That's it. You're done!
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
 
62
  = 1.0.1 =
63
 
64
  * NEW: Column Width Setting.
3
  Tags: table, table builder, drag and drop
4
  Requires at least: 4.9
5
  Tested up to: 5.2
6
+ Stable tag: 1.0.2
7
  Requires PHP: 5.6
8
  License: GPL3+
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
59
 
60
  == Changelog ==
61
 
62
+ = 1.0.2 =
63
+
64
+ * NEW: Duplicate table functionality.
65
+ * NEW: Preview table on the frontend.
66
+ * NEW: Prevent one click deletion of table.
67
+
68
  = 1.0.1 =
69
 
70
  * NEW: Column Width Setting.
wp-table-builder.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: WP Table Builder
16
  * Plugin URI: https://wptablebuilder.com/
17
  * Description: Drag and Drop Table Builder Plugin for WordPress.
18
- * Version: 1.0.1
19
  * Author: Imtiaz Rayhan
20
  * Author URI: https://imtiazrayhan.com//
21
  * License: GPL-3.0+
@@ -39,7 +39,7 @@ define( __NAMESPACE__ . '\NS', __NAMESPACE__ . '\\' );
39
 
40
  define( NS . 'WP_TABLE_BUILDER', 'wp-table-builder' );
41
 
42
- define( NS . 'PLUGIN_VERSION', '1.0.0' );
43
 
44
  define( NS . 'WP_TABLE_BUILDER_DIR', plugin_dir_path( __FILE__ ) );
45
 
15
  * Plugin Name: WP Table Builder
16
  * Plugin URI: https://wptablebuilder.com/
17
  * Description: Drag and Drop Table Builder Plugin for WordPress.
18
+ * Version: 1.0.2
19
  * Author: Imtiaz Rayhan
20
  * Author URI: https://imtiazrayhan.com//
21
  * License: GPL-3.0+
39
 
40
  define( NS . 'WP_TABLE_BUILDER', 'wp-table-builder' );
41
 
42
+ define( NS . 'PLUGIN_VERSION', '1.0.2' );
43
 
44
  define( NS . 'WP_TABLE_BUILDER_DIR', plugin_dir_path( __FILE__ ) );
45