WP Table Builder – WordPress Table Plugin - Version 1.1.0

Version Description

  • NEW: Option to add images from URL.
  • NEW: Icons for alignment settings instead of Select box.
Download this release

Release Info

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

Code changes from version 1.0.9 to 1.1.0

inc/admin/css/admin.css CHANGED
@@ -106,7 +106,8 @@ body>img {
106
  margin-top: 30px;
107
  }
108
 
109
- .wptb-undo, .wptb-redo {
 
110
  display: inline-block;
111
  cursor: pointer;
112
  }
@@ -115,10 +116,8 @@ body>img {
115
  margin-right: 7px;
116
  }
117
 
118
-
119
- .wptb-undo:hover, .wptb-redo:hover {
120
-
121
- }
122
 
123
  .wptb-undoredo-disabled {
124
  cursor: default;
@@ -202,7 +201,6 @@ body>img {
202
  outline: none;
203
  }
204
 
205
-
206
  .wptb-close {
207
  background-color: #fff;
208
  border-left: 1px solid #d3d3d3;
@@ -1323,6 +1321,7 @@ table.wptb-table {
1323
  clear: both;
1324
  }
1325
 
 
1326
  /*
1327
  ** Button Style
1328
  */
@@ -1924,10 +1923,13 @@ td[class*="wptb-fused-cell"] {
1924
  display: none;
1925
  }
1926
 
 
1927
  /* Star Rating */
 
1928
  .wptb-star_rating-container {
1929
  text-align: center;
1930
  }
 
1931
  .wptb-rating-stars-box {
1932
  text-align: center;
1933
  display: inline-block;
@@ -1935,11 +1937,10 @@ td[class*="wptb-fused-cell"] {
1935
  }
1936
 
1937
  .wptb-rating-stars-box ul {
1938
- list-style-type:none;
1939
- padding:0;
1940
-
1941
- -moz-user-select:none;
1942
- -webkit-user-select:none;
1943
  padding: 0.5em 0.2em 0.2em;
1944
  }
1945
 
@@ -1947,7 +1948,7 @@ td[class*="wptb-fused-cell"] {
1947
  display: inline-block;
1948
  }
1949
 
1950
- .wptb-rating-stars-box ul > li.wptb-rating-star {
1951
  color: #ccc;
1952
  cursor: pointer;
1953
  margin: 0px;
@@ -1956,7 +1957,7 @@ td[class*="wptb-fused-cell"] {
1956
  height: 20px;
1957
  }
1958
 
1959
- .wptb-rating-stars-box ul > li.wptb-rating-star span {
1960
  position: absolute;
1961
  height: 100%;
1962
  width: 100%;
@@ -1964,18 +1965,19 @@ td[class*="wptb-fused-cell"] {
1964
  left: 0px;
1965
  z-index: 10;
1966
  }
1967
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-rating-star-left-signal-part,
1968
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-rating-star-right-signal-part{
 
1969
  height: 100%;
1970
  width: 50%;
1971
  z-index: 20;
1972
  }
1973
 
1974
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-rating-star-left-signal-part {
1975
  left: 0px;
1976
  }
1977
 
1978
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-rating-star-left-signal-part span.wptb-rating-star-zero-set {
1979
  left: 0px;
1980
  width: 40%;
1981
  height: 100%;
@@ -1983,99 +1985,91 @@ td[class*="wptb-fused-cell"] {
1983
  z-index: 30px;
1984
  }
1985
 
1986
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-rating-star-right-signal-part {
1987
  right: 0px;
1988
  left: auto;
1989
  }
1990
 
1991
- .wptb-rating-stars-box ul > li.wptb-rating-star span {
1992
  display: block;
1993
  }
1994
 
1995
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-filled-rating-star {
1996
  display: none;
1997
  }
1998
 
1999
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-half-filled-rating-star {
2000
  display: none;
2001
  }
2002
 
2003
- .wptb-rating-stars-box ul > li.wptb-rating-star span.wptb-not-filled-rating-star {
2004
  fill: #ccc;
2005
  }
2006
 
2007
-
2008
-
2009
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-not-filled-rating-star {
2010
  display: none;
2011
  }
2012
 
2013
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-half-filled-rating-star {
2014
  display: block;
2015
  fill: #FF912C;
2016
  opacity: 0.5;
2017
  }
2018
 
2019
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-filled-rating-star {
2020
  display: none;
2021
  }
2022
 
2023
-
2024
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-not-filled-rating-star {
2025
  display: none;
2026
  }
2027
 
2028
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-half-filled-rating-star {
2029
  display: none;
2030
  }
2031
 
2032
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-filled-rating-star {
2033
  display: block;
2034
  fill: #FF912C;
2035
  opacity: 0.5;
2036
  }
2037
 
2038
-
2039
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-half span,
2040
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-full span,
2041
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-full.wptb-rating-star-hover-half span,
2042
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-full.wptb-rating-star-hover-full span{
2043
  opacity: 1;
2044
  }
2045
 
2046
-
2047
-
2048
-
2049
-
2050
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-filled-rating-star {
2051
  display: none;
2052
  }
2053
 
2054
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-full span.wptb-filled-rating-star {
2055
  display: block;
2056
  fill: #FF912C;
2057
  opacity: 0.5;
2058
  }
2059
 
2060
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-not-filled-rating-star {
2061
  display: none;
2062
  }
2063
 
2064
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-half-filled-rating-star {
2065
  display: block;
2066
  fill: #FF912C;
2067
  }
2068
 
2069
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-filled-rating-star {
2070
  display: block;
2071
  fill: #FF912C;
2072
  }
2073
 
2074
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-not-filled-rating-star {
2075
  display: none;
2076
  }
2077
 
2078
- .wptb-rating-stars-box ul > li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-half-filled-rating-star {
2079
  display: none;
2080
  }
2081
 
@@ -2119,14 +2113,14 @@ td[class*="wptb-fused-cell"] {
2119
  font-size: 20px;
2120
  }
2121
 
2122
- .wptb-success-box > div {
2123
- vertical-align:top;
2124
- display:inline-block;
2125
- color:#888;
2126
- text-align: center;
2127
- height: 25px;
2128
- font-size: 25px;
2129
- line-height: 25px;
2130
  }
2131
 
2132
  @media screen and (max-width: 1375px) {
@@ -2216,12 +2210,199 @@ td[class*="wptb-fused-cell"] {
2216
  .wptb-cell img {
2217
  max-width: 100%;
2218
  }
2219
- .wptb-exit-options{
 
2220
  text-decoration: none;
2221
  }
2222
- .wptb-back-button{
 
2223
  float: left;
2224
  }
 
2225
  .wptb-option-text {
2226
  text-align: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2227
  }
106
  margin-top: 30px;
107
  }
108
 
109
+ .wptb-undo,
110
+ .wptb-redo {
111
  display: inline-block;
112
  cursor: pointer;
113
  }
116
  margin-right: 7px;
117
  }
118
 
119
+ .wptb-undo:hover,
120
+ .wptb-redo:hover {}
 
 
121
 
122
  .wptb-undoredo-disabled {
123
  cursor: default;
201
  outline: none;
202
  }
203
 
 
204
  .wptb-close {
205
  background-color: #fff;
206
  border-left: 1px solid #d3d3d3;
1321
  clear: both;
1322
  }
1323
 
1324
+
1325
  /*
1326
  ** Button Style
1327
  */
1923
  display: none;
1924
  }
1925
 
1926
+
1927
  /* Star Rating */
1928
+
1929
  .wptb-star_rating-container {
1930
  text-align: center;
1931
  }
1932
+
1933
  .wptb-rating-stars-box {
1934
  text-align: center;
1935
  display: inline-block;
1937
  }
1938
 
1939
  .wptb-rating-stars-box ul {
1940
+ list-style-type: none;
1941
+ padding: 0;
1942
+ -moz-user-select: none;
1943
+ -webkit-user-select: none;
 
1944
  padding: 0.5em 0.2em 0.2em;
1945
  }
1946
 
1948
  display: inline-block;
1949
  }
1950
 
1951
+ .wptb-rating-stars-box ul>li.wptb-rating-star {
1952
  color: #ccc;
1953
  cursor: pointer;
1954
  margin: 0px;
1957
  height: 20px;
1958
  }
1959
 
1960
+ .wptb-rating-stars-box ul>li.wptb-rating-star span {
1961
  position: absolute;
1962
  height: 100%;
1963
  width: 100%;
1965
  left: 0px;
1966
  z-index: 10;
1967
  }
1968
+
1969
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-rating-star-left-signal-part,
1970
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-rating-star-right-signal-part {
1971
  height: 100%;
1972
  width: 50%;
1973
  z-index: 20;
1974
  }
1975
 
1976
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-rating-star-left-signal-part {
1977
  left: 0px;
1978
  }
1979
 
1980
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-rating-star-left-signal-part span.wptb-rating-star-zero-set {
1981
  left: 0px;
1982
  width: 40%;
1983
  height: 100%;
1985
  z-index: 30px;
1986
  }
1987
 
1988
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-rating-star-right-signal-part {
1989
  right: 0px;
1990
  left: auto;
1991
  }
1992
 
1993
+ .wptb-rating-stars-box ul>li.wptb-rating-star span {
1994
  display: block;
1995
  }
1996
 
1997
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-filled-rating-star {
1998
  display: none;
1999
  }
2000
 
2001
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-half-filled-rating-star {
2002
  display: none;
2003
  }
2004
 
2005
+ .wptb-rating-stars-box ul>li.wptb-rating-star span.wptb-not-filled-rating-star {
2006
  fill: #ccc;
2007
  }
2008
 
2009
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-not-filled-rating-star {
 
 
2010
  display: none;
2011
  }
2012
 
2013
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-half-filled-rating-star {
2014
  display: block;
2015
  fill: #FF912C;
2016
  opacity: 0.5;
2017
  }
2018
 
2019
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-half span.wptb-filled-rating-star {
2020
  display: none;
2021
  }
2022
 
2023
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-not-filled-rating-star {
 
2024
  display: none;
2025
  }
2026
 
2027
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-half-filled-rating-star {
2028
  display: none;
2029
  }
2030
 
2031
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-hover-full span.wptb-filled-rating-star {
2032
  display: block;
2033
  fill: #FF912C;
2034
  opacity: 0.5;
2035
  }
2036
 
2037
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-half span,
2038
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-full span,
2039
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-full.wptb-rating-star-hover-half span,
2040
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-full.wptb-rating-star-hover-full span {
 
2041
  opacity: 1;
2042
  }
2043
 
2044
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-filled-rating-star {
 
 
 
 
2045
  display: none;
2046
  }
2047
 
2048
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half.wptb-rating-star-hover-full span.wptb-filled-rating-star {
2049
  display: block;
2050
  fill: #FF912C;
2051
  opacity: 0.5;
2052
  }
2053
 
2054
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-not-filled-rating-star {
2055
  display: none;
2056
  }
2057
 
2058
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-half span.wptb-half-filled-rating-star {
2059
  display: block;
2060
  fill: #FF912C;
2061
  }
2062
 
2063
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-filled-rating-star {
2064
  display: block;
2065
  fill: #FF912C;
2066
  }
2067
 
2068
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-not-filled-rating-star {
2069
  display: none;
2070
  }
2071
 
2072
+ .wptb-rating-stars-box ul>li.wptb-rating-star.wptb-rating-star-selected-full span.wptb-half-filled-rating-star {
2073
  display: none;
2074
  }
2075
 
2113
  font-size: 20px;
2114
  }
2115
 
2116
+ .wptb-success-box>div {
2117
+ vertical-align: top;
2118
+ display: inline-block;
2119
+ color: #888;
2120
+ text-align: center;
2121
+ height: 25px;
2122
+ font-size: 25px;
2123
+ line-height: 25px;
2124
  }
2125
 
2126
  @media screen and (max-width: 1375px) {
2210
  .wptb-cell img {
2211
  max-width: 100%;
2212
  }
2213
+
2214
+ .wptb-exit-options {
2215
  text-decoration: none;
2216
  }
2217
+
2218
+ .wptb-back-button {
2219
  float: left;
2220
  }
2221
+
2222
  .wptb-option-text {
2223
  text-align: center;
2224
+ }
2225
+
2226
+
2227
+ /*
2228
+ ** Star rating alignment Selector Style
2229
+ */
2230
+
2231
+ .wptb-rating-alignment-btn {
2232
+ padding: 8px 15px 3px 15px;
2233
+ margin: 0;
2234
+ vertical-align: middle;
2235
+ border: solid 1px #ccc;
2236
+ font-size: 12px;
2237
+ border-radius: 4px;
2238
+ cursor: pointer;
2239
+ }
2240
+
2241
+ .wptb-rating-alignment-switcher {
2242
+ background: linear-gradient(to bottom, white, #eeeeee);
2243
+ display: table-cell;
2244
+ border-right: none;
2245
+ border-radius: 0;
2246
+ color: #433f33;
2247
+ }
2248
+
2249
+ .wptb-rating-alignment-switcher:first-child {
2250
+ border-radius: 4px 0 0 4px;
2251
+ }
2252
+
2253
+ .wptb-rating-alignment-switcher:last-child {
2254
+ border-radius: 0 4px 4px 0;
2255
+ border-right: solid 1px #ccc;
2256
+ }
2257
+
2258
+ .wptb-rating-alignment-switcher:hover {
2259
+ background: #fff;
2260
+ }
2261
+
2262
+ .wptb-rating-alignment-switcher:active {
2263
+ box-shadow: inset 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
2264
+ }
2265
+
2266
+ .wptb-rating-alignment-switcher.selected {
2267
+ background: #fff;
2268
+ box-shadow: inset 0px 0px 20px 4px rgba(0, 0, 0, 0.15);
2269
+ cursor: default;
2270
+ }
2271
+
2272
+
2273
+ /*
2274
+ ** list rating alignment Selector Style
2275
+ */
2276
+
2277
+ .wptb-list-alignment-btn {
2278
+ padding: 8px 15px 3px 15px;
2279
+ margin: 0;
2280
+ vertical-align: middle;
2281
+ border: solid 1px #ccc;
2282
+ font-size: 12px;
2283
+ border-radius: 4px;
2284
+ cursor: pointer;
2285
+ }
2286
+
2287
+ .wptb-list-alignment-switcher {
2288
+ background: linear-gradient(to bottom, white, #eeeeee);
2289
+ display: table-cell;
2290
+ border-right: none;
2291
+ border-radius: 0;
2292
+ color: #433f33;
2293
+ }
2294
+
2295
+ .wptb-list-alignment-switcher:first-child {
2296
+ border-radius: 4px 0 0 4px;
2297
+ }
2298
+
2299
+ .wptb-list-alignment-switcher:last-child {
2300
+ border-radius: 0 4px 4px 0;
2301
+ border-right: solid 1px #ccc;
2302
+ }
2303
+
2304
+ .wptb-list-alignment-switcher:hover {
2305
+ background: #fff;
2306
+ }
2307
+
2308
+ .wptb-list-alignment-switcher:active {
2309
+ box-shadow: inset 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
2310
+ }
2311
+
2312
+ .wptb-list-alignment-switcher.selected {
2313
+ background: #fff;
2314
+ box-shadow: inset 0px 0px 20px 4px rgba(0, 0, 0, 0.15);
2315
+ cursor: default;
2316
+ }
2317
+
2318
+
2319
+ /*
2320
+ ** button rating alignment Selector Style
2321
+ */
2322
+
2323
+ .wptb-button-alignment-btn {
2324
+ padding: 8px 15px 3px 15px;
2325
+ margin: 0;
2326
+ vertical-align: middle;
2327
+ border: solid 1px #ccc;
2328
+ font-size: 12px;
2329
+ border-radius: 4px;
2330
+ cursor: pointer;
2331
+ }
2332
+
2333
+ .wptb-button-alignment-switcher {
2334
+ background: linear-gradient(to bottom, white, #eeeeee);
2335
+ display: table-cell;
2336
+ border-right: none;
2337
+ border-radius: 0;
2338
+ color: #433f33;
2339
+ }
2340
+
2341
+ .wptb-button-alignment-switcher:first-child {
2342
+ border-radius: 4px 0 0 4px;
2343
+ }
2344
+
2345
+ .wptb-button-alignment-switcher:last-child {
2346
+ border-radius: 0 4px 4px 0;
2347
+ border-right: solid 1px #ccc;
2348
+ }
2349
+
2350
+ .wptb-button-alignment-switcher:hover {
2351
+ background: #fff;
2352
+ }
2353
+
2354
+ .wptb-button-alignment-switcher:active {
2355
+ box-shadow: inset 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
2356
+ }
2357
+
2358
+ .wptb-button-alignment-switcher.selected {
2359
+ background: #fff;
2360
+ box-shadow: inset 0px 0px 20px 4px rgba(0, 0, 0, 0.15);
2361
+ cursor: default;
2362
+ }
2363
+
2364
+
2365
+ /*
2366
+ ** image rating alignment Selector Style
2367
+ */
2368
+
2369
+ .wptb-image-alignment-btn {
2370
+ padding: 8px 15px 3px 15px;
2371
+ margin: 0;
2372
+ vertical-align: middle;
2373
+ border: solid 1px #ccc;
2374
+ font-size: 12px;
2375
+ border-radius: 4px;
2376
+ cursor: pointer;
2377
+ }
2378
+
2379
+ .wptb-image-alignment-switcher {
2380
+ background: linear-gradient(to bottom, white, #eeeeee);
2381
+ display: table-cell;
2382
+ border-right: none;
2383
+ border-radius: 0;
2384
+ color: #433f33;
2385
+ }
2386
+
2387
+ .wptb-image-alignment-switcher:first-child {
2388
+ border-radius: 4px 0 0 4px;
2389
+ }
2390
+
2391
+ .wptb-image-alignment-switcher:last-child {
2392
+ border-radius: 0 4px 4px 0;
2393
+ border-right: solid 1px #ccc;
2394
+ }
2395
+
2396
+ .wptb-image-alignment-switcher:hover {
2397
+ background: #fff;
2398
+ }
2399
+
2400
+ .wptb-image-alignment-switcher:active {
2401
+ box-shadow: inset 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
2402
+ }
2403
+
2404
+ .wptb-image-alignment-switcher.selected {
2405
+ background: #fff;
2406
+ box-shadow: inset 0px 0px 20px 4px rgba(0, 0, 0, 0.15);
2407
+ cursor: default;
2408
  }
inc/admin/js/admin.js CHANGED
@@ -880,12 +880,10 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
880
  }
881
 
882
  if (wptbButtonWrapper) {
883
- var buttonAlignment = wptbButtonWrapper[0].style.justifyContent,
884
- buttonAlignmentSelect = prop.querySelector('select[data-type="button-alignment"]'),
885
- selectOption = buttonAlignmentSelect.getElementsByTagName('option'),
886
- selectOptionVal = void 0;
887
 
888
- if (buttonAlignment == 'flex-start') {
 
889
  selectOptionVal = 'left';
890
  } else if (buttonAlignment == 'center' || !buttonAlignment) {
891
  selectOptionVal = 'center';
@@ -893,9 +891,13 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
893
  selectOptionVal = 'right';
894
  }
895
 
896
- for (var _i = 0; _i < selectOption.length; _i++) {
897
- if (selectOption[_i].value == selectOptionVal) {
898
- selectOption[_i].selected = true;
 
 
 
 
899
  }
900
  }
901
  }
@@ -943,17 +945,18 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
943
  if (a) {
944
  // set select according to the alignment of the image
945
  var imgAlign = void 0;
946
- if (a.style.float == 'none') {
947
  imgAlign = 'center';
948
  } else {
949
  imgAlign = a.style.float;
950
  }
951
- var imageAlignmentSelect = prop.querySelector('select[data-type="image-alignment"]'),
952
- _selectOption = imageAlignmentSelect.getElementsByTagName('option');
953
 
954
- for (var _i2 = 0; _i2 < _selectOption.length; _i2++) {
955
- if (_selectOption[_i2].value == imgAlign) {
956
- _selectOption[_i2].selected = true;
 
 
957
  }
958
  }
959
 
@@ -1035,7 +1038,7 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1035
  elementListClassSelect.value = 'unordered';
1036
 
1037
  var listIconSelectLabel = elementListClassSelect.parentNode.nextSibling;
1038
- for (var _i3 = 0; _i3 < 10; _i3++) {
1039
  if (listIconSelectLabel.nodeType == '1') {
1040
  break;
1041
  } else {
@@ -1069,8 +1072,8 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1069
  var elementListItemContent = elementList[0].getElementsByClassName('wptb-list-item-content');
1070
  if (elementListItemContent.length > 0) {
1071
  var listItemPTextAlignArr = [];
1072
- for (var _i4 = 0; _i4 < elementListItemContent.length; _i4++) {
1073
- var p = elementListItemContent[_i4].querySelector('p');
1074
  if (p) {
1075
  if (p.style.textAlign) {
1076
  listItemPTextAlignArr.push(p.style.textAlign);
@@ -1085,33 +1088,42 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1085
  listItemPTextAlignRightCount = 0;
1086
 
1087
  if (listItemPTextAlignArr.length > 0) {
1088
- for (var _i5 = 0; _i5 < listItemPTextAlignArr.length; _i5++) {
1089
- if (listItemPTextAlignArr[_i5]) {
1090
- if (listItemPTextAlignArr[_i5] == 'left') {
1091
  listItemPTextAlignLeftCount++;
1092
- } else if (listItemPTextAlignArr[_i5] == 'center') {
1093
  listItemPTextAlignCenterCount++;
1094
- } else if (listItemPTextAlignArr[_i5] == 'right') {
1095
  listItemPTextAlignRightCount++;
1096
  }
1097
  }
1098
  }
1099
  }
1100
 
1101
- var elementListAlignmentSelect = prop.querySelector('select[data-type="list-alignment"]'),
1102
  maxListItemTAlLeftC = Math.max(listItemPTextAlignLeftCount, listItemPTextAlignCenterCount, listItemPTextAlignRightCount);
1103
-
1104
  if (listItemPTextAlignLeftCount == maxListItemTAlLeftC) {
1105
- elementListAlignmentSelect.value = 'left';
1106
  } else if (listItemPTextAlignCenterCount == maxListItemTAlLeftC) {
1107
- elementListAlignmentSelect.value = 'center';
1108
  } else if (listItemPTextAlignRightCount == maxListItemTAlLeftC) {
1109
- elementListAlignmentSelect.value = 'right';
 
 
 
 
 
 
 
 
1110
  }
1111
  }
1112
  }
1113
  } else if (element.kind == 'star_rating') {
1114
- var _affectedEl3 = document.getElementsByClassName('wptb-element-' + kindIndexProt);
 
1115
  if (_affectedEl3.length > 0) {
1116
  _affectedEl3 = _affectedEl3[0];
1117
  var ratingStar = _affectedEl3.querySelector('li');
@@ -1138,21 +1150,20 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1138
  starsCountInputNumber.value = ratingStars.length;
1139
  }
1140
 
1141
- var ratingAlignment = _affectedEl3.style.textAlign,
1142
- ratingAlignmentSelect = prop.querySelector('select[data-type="rating-alignment"]'),
1143
- _selectOption2 = ratingAlignmentSelect.getElementsByTagName('option'),
1144
- _selectOptionVal = void 0;
1145
- if (ratingAlignment == 'start') {
1146
- _selectOptionVal = 'left';
1147
- } else if (ratingAlignment == 'center' || !ratingAlignment) {
1148
- _selectOptionVal = 'center';
1149
- } else if (ratingAlignment == 'right') {
1150
- _selectOptionVal = 'right';
1151
  }
1152
 
1153
- for (var _i6 = 0; _i6 < _selectOption2.length; _i6++) {
1154
- if (_selectOption2[_i6].value == _selectOptionVal) {
1155
- _selectOption2[_i6].selected = true;
 
 
 
 
 
 
1156
  }
1157
  }
1158
 
@@ -1162,8 +1173,8 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1162
  if (successBox.style.display == 'block') {
1163
  showNumberRatingCheckbox.checked = true;
1164
  var numeralRatingOptionContainers = prop.getElementsByClassName('wptb-numeral-rating-option-container');
1165
- for (var _i7 = 0; _i7 < numeralRatingOptionContainers.length; _i7++) {
1166
- numeralRatingOptionContainers[_i7].style.display = 'block';
1167
  }
1168
  } else {
1169
  showNumberRatingCheckbox.checked = false;
@@ -1267,6 +1278,146 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1267
  }
1268
  }
1269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1270
  var optionControls = prop.getElementsByClassName('wptb-element-property');
1271
 
1272
  for (var i = 0; i < optionControls.length; i++) {
@@ -1351,30 +1502,10 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1351
  affectedEl.getElementsByTagName('a')[0].style.height = 'auto';
1352
  this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;
1353
  break;
1354
- case 'image-alignment':
1355
- var wptbImageFloatValue = '';
1356
- if (this.value == 'center') {
1357
- wptbImageFloatValue = 'none';
1358
- } else {
1359
- wptbImageFloatValue = this.value;
1360
- }
1361
- affectedEl.querySelector('.wptb-image-wrapper a').style.float = wptbImageFloatValue;
1362
- break;
1363
  case 'font-size':
1364
  affectedEl.style.fontSize = val + 'px';
1365
  this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;
1366
  break;
1367
- case 'button-alignment':
1368
- var jc = '';
1369
- if (this.value == 'left') {
1370
- jc = 'start';
1371
- } else if (this.value == 'right') {
1372
- jc = 'flex-end';
1373
- } else {
1374
- jc = 'center';
1375
- }
1376
- affectedEl.getElementsByClassName('wptb-button-wrapper')[0].style.justifyContent = jc;
1377
- break;
1378
  case 'rating-alignment':
1379
  var jc = '';
1380
  if (this.value == 'left') {
@@ -1415,15 +1546,6 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1415
  }
1416
  case 'button-color':
1417
  break;
1418
- case 'list-alignment':
1419
- var listItems = affectedEl.querySelectorAll('li');
1420
- for (var i = 0; i < listItems.length; i++) {
1421
- var _p = listItems[i].querySelector('p');
1422
- if (_p) {
1423
- _p.style.textAlign = this.value;
1424
- }
1425
- }
1426
- break;
1427
  case 'list-class':
1428
  var parentNode = event.target.parentNode.parentNode.querySelector('[data-type=list-style-type]').parentNode,
1429
  parentNodeSettingItem = parentNode.parentNode;
@@ -1458,10 +1580,10 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1458
  break;
1459
  case 'star-size':
1460
  var _ratingStar = affectedEl.querySelectorAll('li');
1461
- for (var _i8 = 0; _i8 < _ratingStar.length; _i8++) {
1462
- _ratingStar[_i8].style.width = val + 'px';
1463
- _ratingStar[_i8].style.height = val + 'px';
1464
- var span = _ratingStar[_i8].querySelectorAll('span');
1465
  for (var j = 0; j < span.length; j++) {
1466
  if (span[j].querySelector('svg')) {
1467
  span[j].style.width = val + 'px';
@@ -1481,13 +1603,13 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1481
 
1482
  var _val = this.checked ? 'checked' : 'unchecked';
1483
  if (_val == 'checked') {
1484
- for (var _i9 = 0; _i9 < wptbNumeralRatingOptionContainer.length; _i9++) {
1485
- wptbNumeralRatingOptionContainer[_i9].style.display = 'block';
1486
  }
1487
  _wptbTextMessage.parentNode.style.display = 'block';
1488
  } else if (_val == 'unchecked') {
1489
- for (var _i10 = 0; _i10 < wptbNumeralRatingOptionContainer.length; _i10++) {
1490
- wptbNumeralRatingOptionContainer[_i10].style.display = 'none';
1491
  }
1492
  _wptbTextMessage.parentNode.style.display = 'none';
1493
  }
@@ -1509,11 +1631,11 @@ var WPTB_ElementOptions = function WPTB_ElementOptions(element, index, kindIndex
1509
  var starRatingsLast = starRatings[starRatings.length - 1];
1510
 
1511
  var parent = starRatingsLast.parentNode;
1512
- for (var _i11 = 0; _i11 < difference; _i11++) {
1513
  var newStarRating = starRatingsLast.cloneNode(true);
1514
  newStarRating.removeAttribute('class');
1515
  newStarRating.setAttribute('class', 'wptb-rating-star');
1516
- newStarRating.dataset.value = parseInt(starRatingsLast.dataset.value) + _i11 + 1;
1517
  WPTB_Helper.starRatingEventHandlersAdd(newStarRating);
1518
  parent.appendChild(newStarRating);
1519
  }
@@ -2117,11 +2239,11 @@ var WPTB_Image = function WPTB_Image(src, DOMElementProt) {
2117
  button: {
2118
  text: 'Use this image'
2119
  },
2120
- multiple: false
 
2121
  });
2122
- // When an image is selected, run a callback.
2123
- file_frame.on('select', function () {
2124
- attachment = file_frame.state().get('selection').first().toJSON();
2125
  var imgSrc = attachment.url;
2126
  var linkArr = imgSrc.split(':'),
2127
  linkClean = void 0;
@@ -2135,10 +2257,25 @@ var WPTB_Image = function WPTB_Image(src, DOMElementProt) {
2135
 
2136
  var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
2137
  wptbTableStateSaveManager.tableStateSet();
 
 
 
 
 
 
 
 
 
 
 
 
2138
  });
 
2139
  // Finally, open the modal
2140
  if (src == undefined) {
2141
  file_frame.open();
 
 
2142
  } else {
2143
  img.src = src;
2144
  }
@@ -4437,6 +4574,7 @@ var array = [],
4437
  if (currentTdStyle) {
4438
  td.getDOMElement().setAttribute('style', currentTdStyle);
4439
  td.getDOMElement().style.width = null;
 
4440
  }
4441
 
4442
  table.rows[i].appendChild(td.getDOMElement());
@@ -4476,6 +4614,7 @@ var array = [],
4476
  if (currentTdStyle) {
4477
  td.getDOMElement().setAttribute('style', currentTdStyle);
4478
  td.getDOMElement().style.width = null;
 
4479
  }
4480
  firstCell = table.rows[i].getElementsByTagName('td')[0];
4481
  if (firstCell) {
@@ -4537,6 +4676,7 @@ var array = [],
4537
  if (cellStyle) {
4538
  td.getDOMElement().setAttribute('style', cellStyle);
4539
  td.getDOMElement().style.width = null;
 
4540
  }
4541
  if (currentCell && rows[i].contains(currentCell)) {
4542
  bro = currentCell.nextSibling;
@@ -4624,34 +4764,33 @@ var array = [],
4624
  var r = table.insertRow(-1),
4625
  td = void 0,
4626
  aux = void 0,
4627
- currentTable = document.getElementsByClassName('wptb-preview-table'),
4628
- currentTableTd = void 0,
4629
- currentTdStyle = void 0;
4630
  r.classList.add('wptb-row');
4631
  if (currentTable.length > 0) {
4632
- currentTableTd = currentTable[0].querySelector('td');
4633
- }
4634
 
4635
- if (currentTableTd) {
4636
- currentTdStyle = currentTableTd.getAttribute('style');
4637
- }
 
 
4638
 
4639
- for (var i = 0; i < maxAmountOfCells; i++) {
4640
- td = new WPTB_Cell(mark);
4641
- if (currentTdStyle) {
4642
- td.getDOMElement().setAttribute('style', currentTdStyle);
4643
  }
4644
- r.appendChild(td.getDOMElement());
 
 
 
 
 
 
 
 
 
4645
  }
4646
- aux = Array.from(array[0]);
4647
- array.push(aux);
4648
- drawTable(array);
4649
- table.recalculateIndexes();
4650
- table.addColumnWidth();
4651
- WPTB_Helper.dataTitleColumnSet(table);
4652
- undoSelect();
4653
- var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
4654
- wptbTableStateSaveManager.tableStateSet();
4655
  };
4656
 
4657
  /*
@@ -4668,29 +4807,30 @@ var array = [],
4668
  currentTdStyle = void 0;
4669
  r.classList.add('wptb-row');
4670
  if (currentTable.length > 0) {
4671
- currentTableTd = currentTable[0].querySelector('td');
4672
- }
4673
 
4674
- if (currentTableTd) {
4675
- currentTdStyle = currentTableTd.getAttribute('style');
4676
- }
 
 
4677
 
4678
- for (var i = 0; i < maxAmountOfCells; i++) {
4679
- td = new WPTB_Cell(mark);
4680
- if (currentTdStyle) {
4681
- td.getDOMElement().setAttribute('style', currentTdStyle);
4682
  }
4683
- r.appendChild(td.getDOMElement());
 
 
 
 
 
 
 
 
 
4684
  }
4685
- aux = Array.from(array[0]);
4686
- array.push(aux);
4687
- drawTable(array);
4688
- table.recalculateIndexes();
4689
- table.addColumnWidth();
4690
- WPTB_Helper.dataTitleColumnSet(table);
4691
- undoSelect();
4692
- var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
4693
- wptbTableStateSaveManager.tableStateSet();
4694
  };
4695
 
4696
  /*
880
  }
881
 
882
  if (wptbButtonWrapper) {
883
+ var buttonAlignment = wptbButtonWrapper[0].style.justifyContent;
 
 
 
884
 
885
+ var selectOptionVal = '';
886
+ if (buttonAlignment == 'start') {
887
  selectOptionVal = 'left';
888
  } else if (buttonAlignment == 'center' || !buttonAlignment) {
889
  selectOptionVal = 'center';
891
  selectOptionVal = 'right';
892
  }
893
 
894
+ var elementButtonAlignmentSelect = prop.getElementsByClassName('wptb-button-alignment-btn');
895
+
896
+ for (var i = 0; i < elementButtonAlignmentSelect.length; i++) {
897
+ elementButtonAlignmentSelect[i].classList.remove('selected');
898
+
899
+ if (elementButtonAlignmentSelect[i].getAttribute('data-button_alignment') == selectOptionVal) {
900
+ elementButtonAlignmentSelect[i].classList.add('selected');
901
  }
902
  }
903
  }
945
  if (a) {
946
  // set select according to the alignment of the image
947
  var imgAlign = void 0;
948
+ if (a.style.float == 'none' || !a.style.float) {
949
  imgAlign = 'center';
950
  } else {
951
  imgAlign = a.style.float;
952
  }
953
+ var imageAlignmentSelect = prop.getElementsByClassName('wptb-image-alignment-btn');
 
954
 
955
+ for (var i = 0; i < imageAlignmentSelect.length; i++) {
956
+ imageAlignmentSelect[i].classList.remove('selected');
957
+
958
+ if (imageAlignmentSelect[i].getAttribute('data-image_alignment') == imgAlign) {
959
+ imageAlignmentSelect[i].classList.add('selected');
960
  }
961
  }
962
 
1038
  elementListClassSelect.value = 'unordered';
1039
 
1040
  var listIconSelectLabel = elementListClassSelect.parentNode.nextSibling;
1041
+ for (var _i = 0; _i < 10; _i++) {
1042
  if (listIconSelectLabel.nodeType == '1') {
1043
  break;
1044
  } else {
1072
  var elementListItemContent = elementList[0].getElementsByClassName('wptb-list-item-content');
1073
  if (elementListItemContent.length > 0) {
1074
  var listItemPTextAlignArr = [];
1075
+ for (var _i2 = 0; _i2 < elementListItemContent.length; _i2++) {
1076
+ var p = elementListItemContent[_i2].querySelector('p');
1077
  if (p) {
1078
  if (p.style.textAlign) {
1079
  listItemPTextAlignArr.push(p.style.textAlign);
1088
  listItemPTextAlignRightCount = 0;
1089
 
1090
  if (listItemPTextAlignArr.length > 0) {
1091
+ for (var _i3 = 0; _i3 < listItemPTextAlignArr.length; _i3++) {
1092
+ if (listItemPTextAlignArr[_i3]) {
1093
+ if (listItemPTextAlignArr[_i3] == 'left') {
1094
  listItemPTextAlignLeftCount++;
1095
+ } else if (listItemPTextAlignArr[_i3] == 'center') {
1096
  listItemPTextAlignCenterCount++;
1097
+ } else if (listItemPTextAlignArr[_i3] == 'right') {
1098
  listItemPTextAlignRightCount++;
1099
  }
1100
  }
1101
  }
1102
  }
1103
 
1104
+ var elementListAlignmentSelect = prop.getElementsByClassName('wptb-list-alignment-btn'),
1105
  maxListItemTAlLeftC = Math.max(listItemPTextAlignLeftCount, listItemPTextAlignCenterCount, listItemPTextAlignRightCount);
1106
+ var wptbListAlignmentValue = void 0;
1107
  if (listItemPTextAlignLeftCount == maxListItemTAlLeftC) {
1108
+ wptbListAlignmentValue = 'left';
1109
  } else if (listItemPTextAlignCenterCount == maxListItemTAlLeftC) {
1110
+ wptbListAlignmentValue = 'center';
1111
  } else if (listItemPTextAlignRightCount == maxListItemTAlLeftC) {
1112
+ wptbListAlignmentValue = 'right';
1113
+ }
1114
+
1115
+ for (var i = 0; i < elementListAlignmentSelect.length; i++) {
1116
+ elementListAlignmentSelect[i].classList.remove('selected');
1117
+
1118
+ if (elementListAlignmentSelect[i].getAttribute('data-list_alignment') == wptbListAlignmentValue) {
1119
+ elementListAlignmentSelect[i].classList.add('selected');
1120
+ }
1121
  }
1122
  }
1123
  }
1124
  } else if (element.kind == 'star_rating') {
1125
+ var _affectedEl3 = document.getElementsByClassName('wptb-element-' + kindIndexProt),
1126
+ wptbRatingAlignment = void 0;
1127
  if (_affectedEl3.length > 0) {
1128
  _affectedEl3 = _affectedEl3[0];
1129
  var ratingStar = _affectedEl3.querySelector('li');
1150
  starsCountInputNumber.value = ratingStars.length;
1151
  }
1152
 
1153
+ // Rating default/saved alignment from icons in left panel
1154
+ if (_affectedEl3) {
1155
+ wptbRatingAlignment = _affectedEl3.style.textAlign;
 
 
 
 
 
 
 
1156
  }
1157
 
1158
+ if (wptbRatingAlignment) {
1159
+ var b = prop.getElementsByClassName('wptb-rating-alignment-btn');
1160
+
1161
+ for (var i = 0; i < b.length; i++) {
1162
+ b[i].classList.remove('selected');
1163
+
1164
+ if (b[i].getAttribute('data-star_alignment') == wptbRatingAlignment) {
1165
+ b[i].classList.add('selected');
1166
+ }
1167
  }
1168
  }
1169
 
1173
  if (successBox.style.display == 'block') {
1174
  showNumberRatingCheckbox.checked = true;
1175
  var numeralRatingOptionContainers = prop.getElementsByClassName('wptb-numeral-rating-option-container');
1176
+ for (var _i4 = 0; _i4 < numeralRatingOptionContainers.length; _i4++) {
1177
+ numeralRatingOptionContainers[_i4].style.display = 'block';
1178
  }
1179
  } else {
1180
  showNumberRatingCheckbox.checked = false;
1278
  }
1279
  }
1280
 
1281
+ /*
1282
+ * alignment option in left panel using icons for star-rating
1283
+ */
1284
+ if (element.kind == 'star_rating') {
1285
+ //We must add this special kind of property, since it is triggered with click event
1286
+ var buttons = prop.getElementsByClassName('wptb-rating-alignment-btn');
1287
+
1288
+ for (var i = 0; i < buttons.length; i++) {
1289
+ buttons[i].onclick = function () {
1290
+ var star_alignment = this.getAttribute('data-star_alignment'),
1291
+ n_Class = this.dataset.element,
1292
+ infArr = n_Class.match(/wptb-options-(.+)-(\d+)/i),
1293
+ type = infArr[1],
1294
+ num = infArr[2],
1295
+ affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];
1296
+ affectedEl.style.textAlign = star_alignment;
1297
+
1298
+ var b = this.parentNode.getElementsByClassName('wptb-rating-alignment-btn');
1299
+ for (var i = 0; i < b.length; i++) {
1300
+ b[i].classList.remove('selected');
1301
+ }
1302
+ this.classList.add('selected');
1303
+
1304
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
1305
+ wptbTableStateSaveManager.tableStateSet();
1306
+ };
1307
+ }
1308
+ }
1309
+ /*
1310
+ * alignment option in left panel using icons for list
1311
+ */
1312
+ if (element.kind == 'list') {
1313
+ //We must add this special kind of property, since it is triggered with click event
1314
+ var buttons = prop.getElementsByClassName('wptb-list-alignment-btn');
1315
+
1316
+ for (var i = 0; i < buttons.length; i++) {
1317
+ buttons[i].onclick = function () {
1318
+ var list_alignment = this.getAttribute('data-list_alignment'),
1319
+ n_Class = this.dataset.element,
1320
+ infArr = n_Class.match(/wptb-options-(.+)-(\d+)/i),
1321
+ type = infArr[1],
1322
+ num = infArr[2],
1323
+ affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];
1324
+
1325
+ var listItems = affectedEl.querySelectorAll('li');
1326
+ for (var i = 0; i < listItems.length; i++) {
1327
+ var _p = listItems[i].querySelector('p');
1328
+ if (_p) {
1329
+ _p.style.textAlign = list_alignment;
1330
+ }
1331
+ }
1332
+
1333
+ var b = this.parentNode.getElementsByClassName('wptb-list-alignment-btn');
1334
+ for (var i = 0; i < b.length; i++) {
1335
+ b[i].classList.remove('selected');
1336
+ }
1337
+ this.classList.add('selected');
1338
+
1339
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
1340
+ wptbTableStateSaveManager.tableStateSet();
1341
+ };
1342
+ }
1343
+ }
1344
+ /*
1345
+ * alignment option in left panel using icons for button
1346
+ */
1347
+ if (element.kind == 'button') {
1348
+ //We must add this special kind of property, since it is triggered with click event
1349
+ var buttons = prop.getElementsByClassName('wptb-button-alignment-btn');
1350
+
1351
+ for (var i = 0; i < buttons.length; i++) {
1352
+ buttons[i].onclick = function () {
1353
+ var button_alignment = this.getAttribute('data-button_alignment'),
1354
+ n_Class = this.dataset.element,
1355
+ infArr = n_Class.match(/wptb-options-(.+)-(\d+)/i),
1356
+ type = infArr[1],
1357
+ num = infArr[2],
1358
+ affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];
1359
+
1360
+ var jc = '';
1361
+ if (button_alignment == 'left') {
1362
+ jc = 'start';
1363
+ } else if (button_alignment == 'right') {
1364
+ jc = 'flex-end';
1365
+ } else {
1366
+ jc = 'center';
1367
+ }
1368
+ affectedEl.getElementsByClassName('wptb-button-wrapper')[0].style.justifyContent = jc;
1369
+
1370
+ var b = this.parentNode.getElementsByClassName('wptb-button-alignment-btn');
1371
+ for (var i = 0; i < b.length; i++) {
1372
+ b[i].classList.remove('selected');
1373
+ }
1374
+ this.classList.add('selected');
1375
+
1376
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
1377
+ wptbTableStateSaveManager.tableStateSet();
1378
+ };
1379
+ }
1380
+ }
1381
+
1382
+ /*
1383
+ * alignment option in left panel using icons for image
1384
+ */
1385
+ if (element.kind == 'image') {
1386
+ //We must add this special kind of property, since it is triggered with click event
1387
+ var buttons = prop.getElementsByClassName('wptb-image-alignment-btn');
1388
+
1389
+ for (var i = 0; i < buttons.length; i++) {
1390
+ buttons[i].onclick = function () {
1391
+ var image_alignment = this.getAttribute('data-image_alignment'),
1392
+ n_Class = this.dataset.element,
1393
+ infArr = n_Class.match(/wptb-options-(.+)-(\d+)/i),
1394
+ type = infArr[1],
1395
+ num = infArr[2],
1396
+ affectedEl = document.getElementsByClassName('wptb-element-' + type + '-' + num)[0];
1397
+
1398
+ var image_alignment_value = '';
1399
+ if (image_alignment == 'left') {
1400
+ image_alignment_value = 'left';
1401
+ } else if (image_alignment == 'right') {
1402
+ image_alignment_value = 'right';
1403
+ } else {
1404
+ image_alignment_value = 'none';
1405
+ }
1406
+
1407
+ affectedEl.querySelector('.wptb-image-wrapper a').style.float = image_alignment_value;
1408
+
1409
+ var b = this.parentNode.getElementsByClassName('wptb-image-alignment-btn');
1410
+ for (var i = 0; i < b.length; i++) {
1411
+ b[i].classList.remove('selected');
1412
+ }
1413
+ this.classList.add('selected');
1414
+
1415
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
1416
+ wptbTableStateSaveManager.tableStateSet();
1417
+ };
1418
+ }
1419
+ }
1420
+
1421
  var optionControls = prop.getElementsByClassName('wptb-element-property');
1422
 
1423
  for (var i = 0; i < optionControls.length; i++) {
1502
  affectedEl.getElementsByTagName('a')[0].style.height = 'auto';
1503
  this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;
1504
  break;
 
 
 
 
 
 
 
 
 
1505
  case 'font-size':
1506
  affectedEl.style.fontSize = val + 'px';
1507
  this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;
1508
  break;
 
 
 
 
 
 
 
 
 
 
 
1509
  case 'rating-alignment':
1510
  var jc = '';
1511
  if (this.value == 'left') {
1546
  }
1547
  case 'button-color':
1548
  break;
 
 
 
 
 
 
 
 
 
1549
  case 'list-class':
1550
  var parentNode = event.target.parentNode.parentNode.querySelector('[data-type=list-style-type]').parentNode,
1551
  parentNodeSettingItem = parentNode.parentNode;
1580
  break;
1581
  case 'star-size':
1582
  var _ratingStar = affectedEl.querySelectorAll('li');
1583
+ for (var _i5 = 0; _i5 < _ratingStar.length; _i5++) {
1584
+ _ratingStar[_i5].style.width = val + 'px';
1585
+ _ratingStar[_i5].style.height = val + 'px';
1586
+ var span = _ratingStar[_i5].querySelectorAll('span');
1587
  for (var j = 0; j < span.length; j++) {
1588
  if (span[j].querySelector('svg')) {
1589
  span[j].style.width = val + 'px';
1603
 
1604
  var _val = this.checked ? 'checked' : 'unchecked';
1605
  if (_val == 'checked') {
1606
+ for (var _i6 = 0; _i6 < wptbNumeralRatingOptionContainer.length; _i6++) {
1607
+ wptbNumeralRatingOptionContainer[_i6].style.display = 'block';
1608
  }
1609
  _wptbTextMessage.parentNode.style.display = 'block';
1610
  } else if (_val == 'unchecked') {
1611
+ for (var _i7 = 0; _i7 < wptbNumeralRatingOptionContainer.length; _i7++) {
1612
+ wptbNumeralRatingOptionContainer[_i7].style.display = 'none';
1613
  }
1614
  _wptbTextMessage.parentNode.style.display = 'none';
1615
  }
1631
  var starRatingsLast = starRatings[starRatings.length - 1];
1632
 
1633
  var parent = starRatingsLast.parentNode;
1634
+ for (var _i8 = 0; _i8 < difference; _i8++) {
1635
  var newStarRating = starRatingsLast.cloneNode(true);
1636
  newStarRating.removeAttribute('class');
1637
  newStarRating.setAttribute('class', 'wptb-rating-star');
1638
+ newStarRating.dataset.value = parseInt(starRatingsLast.dataset.value) + _i8 + 1;
1639
  WPTB_Helper.starRatingEventHandlersAdd(newStarRating);
1640
  parent.appendChild(newStarRating);
1641
  }
2239
  button: {
2240
  text: 'Use this image'
2241
  },
2242
+ multiple: false,
2243
+ frame: 'post'
2244
  });
2245
+
2246
+ var imageSetting = function imageSetting(img, attachment) {
 
2247
  var imgSrc = attachment.url;
2248
  var linkArr = imgSrc.split(':'),
2249
  linkClean = void 0;
2257
 
2258
  var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
2259
  wptbTableStateSaveManager.tableStateSet();
2260
+ };
2261
+
2262
+ // When an image is select, run a callback.
2263
+ file_frame.on('select', function () {
2264
+ attachment = file_frame.state().props.toJSON();
2265
+ imageSetting(img, attachment);
2266
+ });
2267
+
2268
+ // When an image is insert, run a callback.
2269
+ file_frame.on('insert', function () {
2270
+ attachment = file_frame.state().get('selection').first().toJSON();
2271
+ imageSetting(img, attachment);
2272
  });
2273
+
2274
  // Finally, open the modal
2275
  if (src == undefined) {
2276
  file_frame.open();
2277
+ file_frame.menuItemVisibility('gallery', 'hide');
2278
+ file_frame.menuItemVisibility("playlist", "hide"), file_frame.menuItemVisibility("video-playlist", "hide"), file_frame.menuItemVisibility("audio-playlist", "hide");
2279
  } else {
2280
  img.src = src;
2281
  }
4574
  if (currentTdStyle) {
4575
  td.getDOMElement().setAttribute('style', currentTdStyle);
4576
  td.getDOMElement().style.width = null;
4577
+ td.getDOMElement().style.height = null;
4578
  }
4579
 
4580
  table.rows[i].appendChild(td.getDOMElement());
4614
  if (currentTdStyle) {
4615
  td.getDOMElement().setAttribute('style', currentTdStyle);
4616
  td.getDOMElement().style.width = null;
4617
+ td.getDOMElement().style.height = null;
4618
  }
4619
  firstCell = table.rows[i].getElementsByTagName('td')[0];
4620
  if (firstCell) {
4676
  if (cellStyle) {
4677
  td.getDOMElement().setAttribute('style', cellStyle);
4678
  td.getDOMElement().style.width = null;
4679
+ td.getDOMElement().style.height = null;
4680
  }
4681
  if (currentCell && rows[i].contains(currentCell)) {
4682
  bro = currentCell.nextSibling;
4764
  var r = table.insertRow(-1),
4765
  td = void 0,
4766
  aux = void 0,
4767
+ currentTable = document.getElementsByClassName('wptb-preview-table');
 
 
4768
  r.classList.add('wptb-row');
4769
  if (currentTable.length > 0) {
4770
+ currentTable = currentTable[0];
 
4771
 
4772
+ for (var i = 0; i < maxAmountOfCells; i++) {
4773
+ td = new WPTB_Cell(mark);
4774
+ var currentTableTd = currentTable.querySelector('[data-x-index="' + i + '"]');
4775
+ if (currentTableTd) {
4776
+ var currentTdStyle = currentTableTd.getAttribute('style');
4777
 
4778
+ td.getDOMElement().setAttribute('style', currentTdStyle);
4779
+ td.getDOMElement().style.height = null;
4780
+ }
4781
+ r.appendChild(td.getDOMElement());
4782
  }
4783
+
4784
+ aux = Array.from(array[0]);
4785
+ array.push(aux);
4786
+ drawTable(array);
4787
+ table.recalculateIndexes();
4788
+ table.addColumnWidth();
4789
+ WPTB_Helper.dataTitleColumnSet(table);
4790
+ undoSelect();
4791
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
4792
+ wptbTableStateSaveManager.tableStateSet();
4793
  }
 
 
 
 
 
 
 
 
 
4794
  };
4795
 
4796
  /*
4807
  currentTdStyle = void 0;
4808
  r.classList.add('wptb-row');
4809
  if (currentTable.length > 0) {
4810
+ currentTable = currentTable[0];
 
4811
 
4812
+ for (var i = 0; i < maxAmountOfCells; i++) {
4813
+ td = new WPTB_Cell(mark);
4814
+ var _currentTableTd = currentTable.querySelector('[data-x-index="' + i + '"]');
4815
+ if (_currentTableTd) {
4816
+ var _currentTdStyle = _currentTableTd.getAttribute('style');
4817
 
4818
+ td.getDOMElement().setAttribute('style', _currentTdStyle);
4819
+ td.getDOMElement().style.height = null;
4820
+ }
4821
+ r.appendChild(td.getDOMElement());
4822
  }
4823
+
4824
+ aux = Array.from(array[0]);
4825
+ array.push(aux);
4826
+ drawTable(array);
4827
+ table.recalculateIndexes();
4828
+ table.addColumnWidth();
4829
+ WPTB_Helper.dataTitleColumnSet(table);
4830
+ undoSelect();
4831
+ var wptbTableStateSaveManager = new WPTB_TableStateSaveManager();
4832
+ wptbTableStateSaveManager.tableStateSet();
4833
  }
 
 
 
 
 
 
 
 
 
4834
  };
4835
 
4836
  /*
inc/admin/js/admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["WPTB_ActionsField.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_LeftPanel.js","WPTB_List.js","WPTB_ListItem.js","WPTB_MultipleSelect.js","WPTB_Parser.js","WPTB_Parser2.js","WPTB_Settings.js","WPTB_Space.js","WPTB_StarRating.js","WPTB_Stringifier.js","WPTB_Stringifier2.js","WPTB_Table.js","WPTB_TableStateSaveManager.js","WPTB_Text.js","WPTB_innerElementSet.js","applyGenericItemSettings.js","wptb-builder.js"],"names":["WPTB_ActionsField","wptbActions","document","getElementsByClassName","length","addActionField","actionType","thisNode","body","getElementsByTagName","actions","previousNode","activeElem","classList","remove","parentNode","removeChild","btnDelete","btnCopy","btnMove","createElement","add","draggable","appendChild","type","onclick","event","act","target","el","kind","thisRow","contains","table","WPTB_Helper","findAncestor","dataTitleColumnSet","wptbActionsField","actionsRemove","wptbTableStateSaveManager","WPTB_TableStateSaveManager","tableStateSet","copy","infArr","activeElement","activeElementClone","cloneNode","className","match","td","temp","srcList","querySelectorAll","i","push","innerHTML","WPTB_List","insertBefore","getDOMElement","nextSibling","WPTB_Text","childNodes","WPTB_Image","text","querySelector","WPTB_Button","WPTB_StarRating","WPTB_innerElementSet","setParameters","ondragstart","dragImagesArr","dataTransfer","effectAllowed","setDragImage","setData","actionsHide","style","display","previous","append","wptbDirectlyhovered","action","item","parent","listItemsRecalculateIndex","coordinatesElement","getBoundingClientRect","coordinatesElementTopBegin","top","listItem","content","html","duplicate","WPTB_ListItem","listItemsTinyMceInit","firstChild","divcontent","setTimeout","coordinatesElementTopEnd","wptbContainer","correctTop","parseFloat","removeEventListener","left","right","clientWidth","addEventListener","leaveFromField","node","relatedTarget","onmouseleave","localName","opacity","WPTB_Builder","table_id","detectMode","http","XMLHttpRequest","urlSet","ajaxurl","open","setRequestHeader","onreadystatechange","d","readyState","status","ans","JSON","parse","responseText","getElementById","value","wptbTableSetupEl","WPTB_Parser","WPTB_Table","WPTB_LeftPanel","WPTB_Settings","send","counter","ElementCounters","select","MultipleSelect","initializer","WPTB_Initializer","settings","DOMElementProt","DOMElement","elButton","el_B","el_BDiv","el_BDivP","kindIndexProt","undefined","wptbElementMutch","Array","isArray","attributesContainer","attributes","setAttribute","name","wptbButtonWrapper","wptbButtonWrapAttributes","wptbButtonA","wptbButtonAttributes","wptbButton","applyGenericItemSettings","WPTB_Cell","callback","highlightRow","parentRow","columnCount","parseInt","tds","classToAdd","ttd","highlightColumn","index","rowCount","tr","padding","jQuery","val","innerBorderWidth","border","wptbPhElement","wptbSpaceBetween","j","WPTB_Space","wptbElementTypeClass","wptbTypeElementArr","split","wptbListItems","setCoords","y","x","dataset","yIndex","xIndex","getCoords","coords","appendElement","getCellDimensions","tdStyleObj","window","getComputedStyle","tdPaddingLeft","getPropertyValue","tdPaddingRight","tdBorderLeftWidth","tdBorderRightWidth","tdPaddingTop","tdPaddingBottom","tdBorderTopWidth","tdBorderBottomWidth","width","offsetWidth","height","offsetHeight","WPTB_DropHandle","thisElem","e","wptbDropHandle","wptbDropBorderMarker","wptbDropBorderMarkerTop","wptbDropBorderMarkerRight","wptbDropBorderMarkerBottom","wptbDropBorderMarkerLeft","ondragenter","ondragover","preventDefault","ondragleave","ondrop","element","getData","newElementProxy","wptbMovingMode","getDOMParentElement","nodeName","toLowerCase","innerElement","innerElementNext","console","log","onscroll","indics","types","notDragEnter","indexOf","elementDrag","offsetY","layerY","bottom","priv","increment","key","nextIndex","WPTB_ElementOptions","elemIdClass","prop","properties","affectedEl","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","imgAlign","float","imageAlignmentSelect","imageLinkHref","inputImageLink","imageLinkTarget","imageLinkTargetInput","imageLinkTargetInputId","imageLinkTargetInputLabel","imgWidth","imageWidthInputRange","imageWidthInputNumber","img","imgAlternativeText","imageAlternativeTextInput","elementFontSize","fontSize","elementTextColor","textFontSizeInputRange","textFontSizeInputNumber","textColorInput","elementList","elementListColor","listColorInput","elementListItem","listItemP","listItemPClasses","elementListClassSelect","listIconSelectLabel","nodeType","listIconSelectLabelId","elementListStyleTypeSelect","elementListItemContent","listItemPTextAlignArr","p","textAlign","listItemPTextAlignLeftCount","listItemPTextAlignCenterCount","listItemPTextAlignRightCount","elementListAlignmentSelect","maxListItemTAlLeftC","Math","max","ratingStar","ratingStarSize","starSizeInputRange","starSizeInputNumber","starColorInput","ratingStarColor","fill","ratingStars","starsCountInputNumber","ratingAlignment","ratingAlignmentSelect","successBox","showNumberRatingCheckbox","numeralRatingOptionContainers","wptbTextMessage","numberRatingSize","numberRatingColor","numberSizeInputRange","numberSizeInputNumber","numberColorInput","optionsClass","children","buttons","size","n_Class","num","optionControls","wpColorPicker","change","ui","wpColorPickerChange","wpColorPickerCheckChangeForTableStateSaving","clear","numberImputSize","slider","oninput","onchange","src","alt","href","linkHttpCheckChange","rel","removeAttribute","wptbImageFloatValue","jc","id","listItems","parentNodeSettingItem","span","wptbNumeralRatingOptionContainer","starRatingTextMessageChenge","wptbTextMessageSize","lineHeight","starRatings","starRatingsCount","difference","starRatingsLast","newStarRating","starRatingEventHandlersAdd","starRatingLength","onmouseup","hexToRgb","hex","result","exec","rgb","toString","slice","getDragImageCustom","hostName","location","protocol","hostname","image","button","list","star_rating","ulElem","par","listStyleTypeIndex","Number","tinyMCE","init","inline","plugins","dialog_type","theme","menubar","fixed_toolbar_container","paste_as_text","toolbar","setup","ed","on","article","keyCode","innerText","pText","replace","trim","selectedText","getSelectionText","wptbListItem","onblur","init_instance_callback","editor","currentEditor","totalWidth","scrollTop","bodyElement","position","buttonsTinyMceInit","wptbButtonContainer","link","linkArr","linkClean","rows","rowHead","computedStyleRowHead","rowHeadChildren","contentsForHeader","tdElements","textContent","thisRowChildren","wptbTitleColumn","wptbTitleColumnFontSize","wptbTitleColumnColor","wptbTitleBackgroundColor","wptbTitleAlign","cls","parentElement","txt","getSelection","selection","createRange","settingsPanelClear","wpColorPickerClear","elementOptionsPanelClear","elementOptionsGroup","originalEvent","wpPickerContainer","irisSquareHandle","uiSliderHandle","attribute","isId","input","newInput","url","regex","RegExp","results","decodeURIComponent","getColumnWidth","cell","xIndexes","cellWidth","getRowHeight","yIndexes","cellHeight","uiColor","classe","ps","number","starRatingSelectHoverSet","starRating","onStar","onmouseover","stopPropagation","onmouseout","wptbStarRatingContainer","wptbNumberInputs","maxCount","maxValue","onkeydown","thisValue","String","substring","onkeyup","starRatingContainer","ratingNumber","wptbTextMessageCommon","wptbTextMessageCommonVal","elImage","anchor","file_frame","wp","media","frames","title","multiple","attachment","state","get","first","toJSON","imgSrc","MIN_COLUMNS","MIN_ROWS","MAX_COLUMNS","MAX_ROWS","tableGenerator","columnsDecrementButton","columnsIncrementButton","rowsDecrementButton","rowsIncrementButton","columnsInput","rowsInput","columns","wptbElementButtons","wptbTdBgColorSavedSet","inputId","trNumber","tableRows","trBackgroundColor","wptbEvenRowBg","tableHeader","tableAdaptiveForMobile","wptbAdaptiveTableCheckbox","wptbAdaptiveTable","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","wptbTableBorderNumber","wptbTextfontSizeNumber","wptbImageWidthNumber","wptbTableColumnWidthNumber","wptbTableRowHeightNumber","tdDefaultWidth","wptbInnerBorderCheck","tableBorderColorSetArea","addColumnWidth","highlighted","addRowHeight","createMobileHeadForTable","thisEvent","wptbElement","toggleTableEditMode","addRowToTheEnd","addRowToTheStart","addRowBefore","addRowAfter","addColumnEnd","addColumnStart","addColumnBefore","addColumnAfter","deleteColumn","deleteRow","mergeCells","splitCell","wptbBuilderPanel","clickOnFreeSpace","wptbHeader","wpcdFixedToolbar","hasAttribute","innerElements","el_L","wptbListItemReturn","styleDot","listItemKeyListener","onmouseenter","selectedCells","multipleCellMode","activateMultipleSelectMode","deactivateMultipleSelectMode","isActivated","pushSelectedCell","flushSelectedCells","getFirst","minXIndex","minYIndex","getLast","maxXIndex","maxYIndex","last","removeAllButFirst","code","div","columnTitleMobile","WPTB_Parser2","elementHtml","createTextNode","tagName","elems","ondragend","wptbUndo","tableStateGet","wptbUndoredo","wptbUndoRedoContainer","wptbRedo","shortcodePopupWindow","onbeforeunload","wptbSaveDisabled","wptbTableStateNumberSave","wptbTableStateNumberShow","bar","wptb_admin_object","t","messagingArea","WPTB_Stringifier","outerHTML","messagingAreaText","params","security_code","rs","wptbId","stringify","data","wptbPreviewBtn","wptbPreviewBtnHref","previewHref","wptbSaveBtn","elSpaceBetween","includes","spaceBetween","t_space","spaceParent","alert","countStarts","ratingStarsBox","ratingStarsList","textMessage","filledRatingStarHtml","notFilledRatingStarHtml","halfFilledRatingStarHtml","ratingStarZeroSet","wptbRatingStarsBox","wptbRatingStarsBoxAttributes","wptbRatingStarsOld","wptbRatingStars","iMax","wptbRatingStarsAttributes","wptbRatingStarsOldSpan","wptbRatingStarsSpan","k","wptbRatingStarsOldSpanAttributes","l","wptbRatingStarsOldSvg","wptbRatingStarsOldSvgStyle","wptbSuccessBox","wptbSuccessBoxAttributes","wptbTextMessageAttributes","codeMain","tableColumns","minWidth","maxWidth","mceContentBodys","dataMceStyle","contentEditable","spellCheck","mceIds","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","wptbAdaptiveTableChoseBlock","mergingCellsVertically","forBreak","currentTable","currentTableTd","currentTdStyle","firstCell","c_pos","cellStyle","pos","pendingInsertion","bro","currentCell","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","actualPoints","addLackingCells","sumRows","totalColspan","nextRow","nextRowChildren","nextRowChildrenLength","tdArr","nextRowChildrenK","jRowChildren","pop","onresize","wptbTableStateSaving","wptbNewPreviewTable","wptbHighlighted","cssForTdsWidthAutoValue","datawptbUndoredo","wptbLeftScrollPanelCellSetting","elText2","elP","classId","wptbElements","elementIndexesArr","elementIndexMax","kindIndexProtArr","force_br_newlines","force_p_newlines","forced_root_block","observer","MutationObserver","mutations","config","attributeFilter","observe","ritingStarZeroSet","ulStarList","node_wptb_element_kind_num"],"mappings":"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","file":"admin.js","sourcesContent":["var WPTB_ActionsField = function() {\n //this.wptbBorderMarker;\n this.wptbActions;\n if( document.getElementsByClassName( 'wptb-actions' ).length != 0 ) {\n this.wptbActions = document.getElementsByClassName( 'wptb-actions' )[0];\n }\n \n this.addActionField = ( actionType, thisNode ) => {\n let body = document.getElementsByTagName( 'body' )[0];\n \n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length != 0 ) {\n let previousNode = actions[0].activeElem;\n if( previousNode ) {\n previousNode.classList.remove( 'wptb-directlyhovered' );\n }\n \n while( actions.length != 0 ) {\n actions[0].parentNode.removeChild( actions[0] );\n }\n }\n \n if( actionType == 1 ) {\n \n let btnDelete, btnCopy, btnMove;\n\n btnDelete = document.createElement( 'span' ),\n btnCopy = document.createElement( 'span' ),\n btnMove = document.createElement( 'span' ),\n actions = document.createElement( 'div' );\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\n actions.appendChild( btnMove );\n actions.appendChild( btnCopy );\n actions.appendChild( btnDelete );\n body.appendChild( actions );\n\n actions.activeElem = thisNode;\n\n actions.type = 1;\n\n btnDelete.onclick = function( event ) {\n let act = event.target.parentNode.activeElem,\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 let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.actionsRemove();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n\n\n btnCopy.onclick = ( event ) => {\n let copy,\n infArr,\n type;\n let activeElement = event.target.parentNode.activeElem;\n let activeElementClone = activeElement.cloneNode( true );\n activeElementClone.classList.remove( 'wptb-directlyhovered' );\n infArr = activeElement.className.match(/wptb-element-(.+)-(\\d+)/i);\n type = infArr[1];\n let td = activeElement.parentNode;\n if ( type == 'list' ) {\n var temp = [],\n srcList = activeElement.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, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if ( type == 'text' ) {\n copy = new WPTB_Text( activeElementClone.childNodes[0].innerHTML, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if ( type == 'image' ) {\n copy = new WPTB_Image( '', activeElement );\n \n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if( type == 'button' ) {\n let text = activeElementClone.childNodes[0].querySelector( 'p' ).innerHTML;\n \n copy = new WPTB_Button( text, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if( type = 'star_rating' ) {\n copy = new WPTB_StarRating( activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n }\n\n WPTB_innerElementSet( copy.getDOMElement() );\n\n let wptbActionsField = new WPTB_ActionsField( 1, activeElement );\n \n wptbActionsField.setParameters( activeElement );\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n btnMove.ondragstart = ( event ) => {\n let dragImagesArr = WPTB_Helper.dragImagesArr(),\n actions = event.target.parentNode,\n activeElem = actions.activeElem,\n infArr,\n type;\n infArr = activeElem.className.match(/wptb-element-(.+)-(\\d+)/i);\n type = infArr[1];\n activeElem.classList.add( 'wptb-moving-mode' );\n\n event.dataTransfer.effectAllowed = 'move';\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.activeElem;\n if( act.kind == 'text' ) {\n let thisRow = act.parentNode.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 //actions.style.display = 'none';\n this.actionsHide();\n };\n\n //actions.style.right = '-' + parseFloat( thisNode.offsetWidth ) + 'px';\n actions.style.display = 'block';\n\n this.wptbActions = actions;\n } else if( actionType == 2 ) {\n let btnDelete,\n btnCopy,\n previous,\n i;\n\n btnDelete = document.createElement('span'),\n btnCopy = document.createElement('span'),\n actions = document.createElement('span')\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\n actions.append( btnCopy, btnDelete );\n body.appendChild( actions );\n\n actions.activeElem = thisNode;\n \n let wptbDirectlyhovered = WPTB_Helper.findAncestor( thisNode, 'wptb-directlyhovered' );\n if( wptbDirectlyhovered ) {\n wptbDirectlyhovered.classList.remove( 'wptb-directlyhovered' );\n }\n\n actions.type = 2;\n\n btnDelete.onclick = ( event ) => {\n var action = event.target.parentNode, \n item = action.activeElem,\n parent = item.parentNode;\n let wptbActionsField = new WPTB_ActionsField( 4 );\n wptbActionsField.actionsRemove();\n parent.removeChild( item );\n WPTB_Helper.listItemsRecalculateIndex( parent );\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n btnCopy.onclick = ( event ) => {\n let coordinatesElement = thisNode.getBoundingClientRect();\n let coordinatesElementTopBegin = coordinatesElement.top;\n\n var listItem = event.target.parentNode.activeElem,\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(), thisNode.nextSibling );\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\n\n let divcontent = thisNode.getElementsByClassName( 'wptb-list-item-content' );\n if( divcontent.length > 0 ) {\n divcontent = divcontent[0];\n }\n setTimeout( function(){\n divcontent.innerHTML = html;\n WPTB_Helper.listItemsRecalculateIndex( listItem.parentNode );\n }, 5 );\n\n coordinatesElement = thisNode.getBoundingClientRect();\n let coordinatesElementTopEnd = coordinatesElement.top;\n\n if( coordinatesElementTopBegin != coordinatesElementTopEnd ) {\n let wptbActionsField = new WPTB_ActionsField( 2, thisNode );\n wptbActionsField.setParameters( thisNode );\n }\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n actions.style.display = 'block';\n\n this.wptbActions = actions;\n }\n }\n \n this.setParameters = ( thisNode ) => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.style.display = 'block';\n }\n \n let coordinatesElement = thisNode.getBoundingClientRect();\n \n let wptbContainer = document.getElementsByClassName( 'wptb-container' )[0];\n let correctTop = () => {\n let coordinatesElement = thisNode.getBoundingClientRect();\n this.wptbActions.style.top = parseFloat( coordinatesElement.top ) - 15 + 'px';\n }\n wptbContainer.removeEventListener( 'scroll', correctTop, false );\n \n this.wptbActions.style.top = parseFloat( coordinatesElement.top ) - 15 + 'px';\n this.wptbActions.style.left = ( parseFloat( coordinatesElement.right ) - parseFloat( this.wptbActions.clientWidth ) ) + 1 + 'px';\n\n// let wptbBorderMarkerTop = this.wptbBorderMarker.querySelector( '.wptb-border-marker-top' );\n// wptbBorderMarkerTop.style.width = ( parseFloat( thisNode.offsetWidth ) + 3 ) + 'px';\n//\n// let wptbBorderMarkerRight = this.wptbBorderMarker.querySelector( '.wptb-border-marker-right' );\n// wptbBorderMarkerRight.style.height = ( parseFloat( coordinatesElement.bottom ) - parseFloat( coordinatesElement.top ) + 4 ) + 'px';\n// wptbBorderMarkerRight.style.left = ( parseFloat( thisNode.offsetWidth ) + 3 ) + 'px';\n//\n// let wptbBorderMarkerBottom = this.wptbBorderMarker.querySelector( '.wptb-border-marker-bottom' );\n// wptbBorderMarkerBottom.style.width = wptbBorderMarkerTop.style.width;\n// wptbBorderMarkerBottom.style.top = ( parseFloat( coordinatesElement.bottom ) - parseFloat( coordinatesElement.top ) + 3 ) + 'px';;\n//\n// let wptbBorderMarkerLeft = this.wptbBorderMarker.querySelector( '.wptb-border-marker-left' );\n// \n \n //this.wptbBorderMarker.style.display = 'block';\n this.wptbActions.style.display = 'block';\n thisNode.classList.add( 'wptb-directlyhovered' );\n \n wptbContainer.addEventListener( 'scroll', correctTop, false );\n }\n \n// if( actionType == 1 || actionType == 2 ) {\n// this.setParameters( thisNode );\n// }\n// } else {\n// this.wptbActions.style.display = 'block';\n// thisNode.classList.add( 'wptb-directlyhovered' );\n// }\n \n this.leaveFromField = ( event, node, actionType ) => {\n if( event.relatedTarget ) {\n if ( event.relatedTarget.classList.contains( 'wptb-actions' ) ||\n event.relatedTarget.classList.contains( 'wptb-move-action' ) ||\n event.relatedTarget.classList.contains( 'wptb-duplicate-action' ) ||\n event.relatedTarget.classList.contains( 'wptb-delete-action' ) ) {\n if( ! this.wptbActions ) {\n this.wptbActions = document.getElementsByClassName( 'wptb-actions' )[0];\n }\n this.wptbActions.onmouseleave = ( event ) => {\n if( event.relatedTarget != null && event.relatedTarget != this.wptbActions.activeElem &&\n WPTB_Helper.findAncestor( event.relatedTarget, 'wptb-directlyhovered') != this.wptbActions.activeElem ) {\n event.target.activeElem.classList.remove( 'wptb-directlyhovered' );\n this.wptbActions.style.display = 'none';\n\n if( this.wptbActions.type == 2 ) {\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, event.relatedTarget.parentNode.parentNode );\n\n wptbActionsField.setParameters( event.relatedTarget.parentNode.parentNode );\n }\n } else {\n return;\n }\n }\n\n return;\n } \n// else if( event.relatedTarget.classList.contains( 'wptb-drop-handle' ) ) {\n// let wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' );\n// if( wptbDropHandle.length > 0 ) {\n// wptbDropHandle = wptbDropHandle[0];\n// wptbDropHandle.onmouseleave\n// }\n// }\n }\n \n node.classList.remove( 'wptb-directlyhovered' );\n this.wptbActions.style.display = 'none';\n \n if( this.wptbActions.type == 2 ) {\n if( event.relatedTarget ) {\n if( event.relatedTarget.localName == 'ul' ) {\n //let wptbActionsField = new WPTB_ActionsField();\n\n this.addActionField( 1, event.relatedTarget.parentNode );\n\n this.setParameters( event.relatedTarget.parentNode );\n }\n }\n \n }\n }\n \n this.actionsRemove = () => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.parentNode.removeChild( this.wptbActions );\n }\n }\n \n this.actionsHide = () => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.style.opacity = 0;\n }\n }\n}","(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 \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 el_BDivP = document.createElement( 'p' ),\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_BDivP.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 wptbButtonA = DOMElementProt.querySelector( 'a' );\n if ( wptbButtonA ) {\n var wptbButtonAttributes = [...wptbButtonA.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 var wptbButton = DOMElementProt.querySelector( '.wptb-button' );\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 el_BDiv.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 el_BDiv.appendChild( el_BDivP );\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 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 = WPTB_Helper.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 element.wptbMovingMode = 1;\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 == 'Above 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 console.log(element);\n if( ! element.classList.contains( 'wptb-image-container' ) || element.wptbMovingMode == 1 ) {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n element.wptbMovingMode == undefined;\n }\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 = parseFloat( 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 = parseFloat( coordinatesElement.top ) - parseFloat( 11 );\n wptbDropHandle.dataset.text = 'Above Element';\n if ( y > height/2 ) {\n top = parseFloat( coordinatesElement.top ) + height - 1;\n wptbDropHandle.dataset.text = 'Below Element';\n }\n } else {\n wptbDropHandle.dataset.text = 'Drop Here';\n top = parseFloat( 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 = ( parseFloat( thisElem.offsetWidth ) - parseFloat( 1 ) ) + 'px';\n\n wptbDropBorderMarkerRight = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-right' );\n wptbDropBorderMarkerRight.style.height = ( parseFloat( coordinatesElement.bottom ) - parseFloat( 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 // set select according to the alignment of the image\n let imgAlign;\n if( a.style.float == 'none' ) {\n imgAlign = 'center';\n } else {\n imgAlign = a.style.float;\n }\n let 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 == imgAlign ) {\n selectOption[i].selected = true;\n }\n }\n\n a.onclick = function( e ) {\n e.preventDefault();\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 // set value for input fields of image size\n let imgWidth = a.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 let img = a.getElementsByTagName( 'img' );\n if ( img.length > 0 ) {\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 ) ? parseInt( elementFontSize ) : 10;\n textFontSizeInputNumber.value = parseInt( elementFontSize ) ? parseInt( elementFontSize ) : 10;\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 } else if( element.kind == 'star_rating' ) {\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt );\n if( affectedEl.length > 0 ) {\n affectedEl = affectedEl[0];\n let ratingStar = affectedEl.querySelector( 'li' );\n if( ratingStar ) {\n let ratingStarSize = ratingStar.style.width;\n let starSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"star-size\"]' ),\n starSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"star-size\"]' );\n\n starSizeInputRange.value = parseInt( ratingStarSize ) ? parseInt( ratingStarSize ) : 10;\n starSizeInputNumber.value = parseInt( ratingStarSize ) ? parseInt( ratingStarSize ) : 10;\n\n if( ratingStar.querySelector( 'span' ) ) {\n let starColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"star-color\"]' ),\n ratingStarColor = ratingStar.querySelector( 'span' ).style.fill;\n starColorInput.value = WPTB_Helper.rgbToHex( ratingStarColor );\n }\n }\n \n let ratingStars = affectedEl.querySelectorAll( 'li' );\n let starsCountInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"stars-count\"]' );\n if( ratingStars.length == 1 && ratingStars[0].style.display == 'none' ) {\n starsCountInputNumber.value = 0;\n } else {\n starsCountInputNumber.value = ratingStars.length;\n }\n\n\n let ratingAlignment = affectedEl.style.textAlign,\n ratingAlignmentSelect = prop.querySelector( 'select[data-type=\"rating-alignment\"]' ),\n selectOption = ratingAlignmentSelect.getElementsByTagName( 'option' ),\n selectOptionVal;\n if ( ratingAlignment == 'start' ) {\n selectOptionVal = 'left';\n } else if ( ratingAlignment == 'center' || ! ratingAlignment ) {\n selectOptionVal = 'center';\n } else if ( ratingAlignment == 'right' ) {\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\n let successBox = affectedEl.querySelector( '.wptb-success-box' );\n if( successBox ) {\n let showNumberRatingCheckbox = prop.querySelector( 'input[type=\"checkbox\"][data-type=\"show-number-rating\"]' );\n if( successBox.style.display == 'block' ) {\n showNumberRatingCheckbox.checked = true;\n let numeralRatingOptionContainers = prop.getElementsByClassName( 'wptb-numeral-rating-option-container' );\n for( let i = 0; i < numeralRatingOptionContainers.length; i++ ) {\n numeralRatingOptionContainers[i].style.display = 'block';\n }\n } else {\n showNumberRatingCheckbox.checked = false;\n }\n\n let wptbTextMessage = successBox.querySelector( '.wptb-text-message' );\n if( wptbTextMessage ) {\n let numberRatingSize = wptbTextMessage.style.fontSize;\n let numberRatingColor = wptbTextMessage.style.color;\n\n let numberSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"numeral-rating-size\"]' ),\n numberSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"numeral-rating-size\"]' ),\n numberColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"numeral-rating-color\"]' );\n\n numberSizeInputRange.value = parseInt( numberRatingSize ) ? parseInt( numberRatingSize ) : 10;\n numberSizeInputNumber.value = parseInt( numberRatingSize ) ? parseInt( numberRatingSize ) : 10;\n numberColorInput.value = WPTB_Helper.rgbToHex( numberRatingColor );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerChange( event, ui );\n \n //console.log(event);\n WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\n },\n clear: function( event ) {\n WPTB_Helper.wpColorPickerChange( event );\n }\n });\n }\n \n if( optionControls[i].classList.contains( 'wptb-stars-count-field' ) ) {\n WPTB_Helper.numberImputSize( optionControls[i], 1, 10 );\n }\n\n if ( optionControls[i].dataset.type === 'font-size' || optionControls[i].dataset.type === 'image-size' ||\n optionControls[i].dataset.type === 'star-size' || optionControls[i].dataset.type === 'numeral-rating-size' ) {\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n slider.oninput = function () {\n this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n }\n }\n\n// if (optionControls[i].dataset.type === 'image-size') {\n// var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n// slider.oninput = function () {\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n// }\n// }\n// \n// if ( optionControls[i].dataset.type === 'star-size' ) {\n// var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n// slider.oninput = function () {\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n// }\n// }\n\n optionControls[i].onchange = function ( event ) {\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-size-slider')[0].value = this.value;\n break;\n case 'image-alignment':\n let wptbImageFloatValue = '';\n if( this.value == 'center' ) {\n wptbImageFloatValue = 'none';\n } else {\n wptbImageFloatValue = this.value;\n }\n affectedEl.querySelector( '.wptb-image-wrapper a' ).style.float = wptbImageFloatValue;\n break;\n case 'font-size':\n affectedEl.style.fontSize = val + 'px';\n this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;\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 'rating-alignment':\n var jc = '';\n if (this.value == 'left') {\n jc = 'start';\n } else if (this.value == 'right') {\n jc = 'right';\n } else {\n jc = 'center';\n }\n affectedEl.style.textAlign = 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 case 'star-size':\n let ratingStar = affectedEl.querySelectorAll('li');\n for( let i = 0; i < ratingStar.length; i++ ) {\n ratingStar[i].style.width = val + 'px';\n ratingStar[i].style.height = val + 'px';\n let span = ratingStar[i].querySelectorAll( 'span' );\n for( let j = 0; j < span.length; j++ ) {\n if( span[j].querySelector( 'svg' ) ) {\n span[j].style.width = val + 'px';\n span[j].style.height = val + 'px';\n span[j].querySelector( 'svg' ).style.width = val + 'px';\n }\n }\n }\n break;\n case 'show-number-rating':\n let wptbNumeralRatingOptionContainer = WPTB_Helper.findAncestor( this, 'wptb-star_rating-options' )\n .getElementsByClassName( 'wptb-numeral-rating-option-container' );\n \n WPTB_Helper.starRatingTextMessageChenge( affectedEl );\n \n if( wptbNumeralRatingOptionContainer.length > 0 ) {\n let wptbTextMessage = affectedEl.querySelector( '.wptb-text-message' );\n \n let val = this.checked ? 'checked' : 'unchecked';\n if( val== 'checked' ) {\n for ( let i = 0; i < wptbNumeralRatingOptionContainer.length; i++ ) {\n wptbNumeralRatingOptionContainer[i].style.display = 'block';\n }\n wptbTextMessage.parentNode.style.display = 'block';\n } else if ( val == 'unchecked' ) {\n for ( let i = 0; i < wptbNumeralRatingOptionContainer.length; i++ ) {\n wptbNumeralRatingOptionContainer[i].style.display = 'none';\n }\n wptbTextMessage.parentNode.style.display = 'none';\n }\n }\n break;\n case 'numeral-rating-size':\n let wptbTextMessageSize = affectedEl.querySelector('.wptb-text-message');\n wptbTextMessageSize.style.fontSize = val + 'px';\n wptbTextMessageSize.style.height = val + 'px';\n wptbTextMessageSize.style.lineHeight = val + 'px';\n break;\n case 'stars-count':\n let starRatings = affectedEl.querySelectorAll( 'li' );\n \n let starRatingsCount = starRatings.length;\n \n if( val > starRatingsCount ) {\n let difference = val - starRatingsCount;\n let starRatingsLast = starRatings[starRatings.length - 1];\n \n let parent = starRatingsLast.parentNode;\n for( let i = 0; i < difference; i++ ){\n let newStarRating = starRatingsLast.cloneNode( true );\n newStarRating.removeAttribute( 'class' );\n newStarRating.setAttribute( 'class', 'wptb-rating-star' );\n newStarRating.dataset.value = parseInt(starRatingsLast.dataset.value) + i + 1;\n WPTB_Helper.starRatingEventHandlersAdd( newStarRating );\n parent.appendChild( newStarRating );\n }\n } else if( val < starRatingsCount ) {\n let difference = parseInt( starRatingsCount ) - parseInt( val );\n \n if( val == 0 ) {\n difference--;\n starRatings[0].removeAttribute( 'class' );\n starRatings[0].setAttribute( 'class', 'wptb-rating-star' );\n starRatings[0].style.display = 'none';\n }\n \n let starRatingLength = starRatings.length;\n for( i = 0; i < difference; i++ ) {\n starRatings[0].parentNode.removeChild( starRatings[starRatingLength - i - 1] );\n }\n } else if( val == starRatingsCount && starRatingsCount == 1 ) {\n starRatings[0].style.display = 'inline-block';\n }\n \n WPTB_Helper.starRatingTextMessageChenge( affectedEl );\n \n break;\n }\n \n \n if( event.target.classList.contains( 'wptb-size-slider' ) || event.target.classList.contains( 'wptb-size-slider' ) ) {\n event.target.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n } else {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 star_rating: WPTB_Helper.getDragImageCustom( 'half-filled-rating-star' )\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 return;\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 let wptbListItem = e.target.parentNode;\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 2, wptbListItem );\n\n wptbActionsField.setParameters( wptbListItem );\n });\n \n ed.on( 'keyup', function( e ) {\n let wptbListItem = e.target.parentNode;\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 2, wptbListItem );\n\n wptbActionsField.setParameters( wptbListItem );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbButtonContainer = WPTB_Helper.findAncestor( target, 'wptb-button-container' );\n \n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, wptbButtonContainer );\n\n wptbActionsField.setParameters( wptbButtonContainer );\n });\n \n ed.on( 'keyup', function(e) {\n let wptbButtonContainer = WPTB_Helper.findAncestor( target, 'wptb-button-container' );\n \n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, wptbButtonContainer );\n\n wptbActionsField.setParameters( wptbButtonContainer );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-adaptive-table-checkbox' ).checked = false;\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', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-header-bg', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-even-row-bg', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-odd-row-bg', true );\n \n document.getElementById( 'wptb-table-cell-slider' ).value = 15;\n document.getElementById( 'wptb-table-cell-number' ).value = 15;\n },\n elementOptionsPanelClear: function() {\n let elementOptionsGroup = document.getElementById( 'element-options-group' );\n if( elementOptionsGroup ) {\n elementOptionsGroup.innerHTML = '';\n }\n },\n wpColorPickerCheckChangeForTableStateSaving: function( event ) {\n if( event.originalEvent.type == 'external' ) {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n } else {\n let wpPickerContainer = WPTB_Helper.findAncestor( event.target, 'wp-picker-container' );\n if( wpPickerContainer ) {\n if( event.originalEvent.type == 'square' ) {\n let irisSquareHandle = wpPickerContainer.getElementsByClassName( 'iris-square-handle' );\n if( irisSquareHandle.length > 0 ) {\n irisSquareHandle = irisSquareHandle[0];\n irisSquareHandle.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n } else if( event.originalEvent.type == 'strip' ) {\n let uiSliderHandle = wpPickerContainer.getElementsByClassName( 'iris-slider-offset' );\n if( uiSliderHandle.length > 0 ) {\n uiSliderHandle = uiSliderHandle[0];\n uiSliderHandle.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n }\n }\n },\n wpColorPickerClear: function( attribute, isId ) {\n let input;\n if( isId ) {\n input = [document.getElementById( attribute )];\n input.length = 1;\n } else {\n input = document.getElementsByClassName( attribute );\n }\n for( let i = 0; i < input.length; i++ ) {\n let wpPickerContainer = WPTB_Helper.findAncestor( input[i], 'wp-picker-container' );\n if( wpPickerContainer ) {\n let parent = wpPickerContainer.parentNode;\n parent.removeChild( wpPickerContainer );\n let newInput = document.createElement( 'input' );\n if( isId ) {\n newInput.setAttribute( 'id', attribute );\n } else {\n newInput.classList.add( 'wptb-element-property', attribute );\n }\n newInput.value = \"\";\n parent.appendChild( newInput );\n }\n }\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 newElementProxy: function(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 } else if( el == 'star_rating' ) {\n return new WPTB_StarRating();\n }\n },\n wpColorPickerChange: function( event, ui ) {\n let uiColor;\n if( ui ) {\n uiColor = ui.color.toString();\n } else {\n uiColor = '';\n }\n \n let parent = WPTB_Helper.findAncestor( event.target, 'wp-picker-input-wrap' ).getElementsByClassName( 'wptb-color-picker' )[0], classe, type, ps, number;\n classe = parent.dataset.element.match(/wptb-options-(.+)-(\\d+)/i);\n type = classe[1];\n number = classe[2];\n let 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 = uiColor;\n } else {\n affectedEl.getElementsByClassName( 'wptb-button' )[0].style.backgroundColor = uiColor;\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 = uiColor;\n }\n }\n } else if( type == 'star_rating' ) {\n if ( parent.dataset.type == 'star-color' ) {\n let ratingStar = affectedEl.querySelectorAll('li');\n for( let i = 0; i < ratingStar.length; i++ ) {\n let span = ratingStar[i].getElementsByTagName( 'span' );\n for( let j = 0; j < span.length; j++ ) {\n span[j].style.fill = uiColor;\n }\n }\n } else if( parent.dataset.type == 'numeral-rating-color' ) {\n let wptbTextMessageSize = affectedEl.querySelector('.wptb-text-message');\n wptbTextMessageSize.style.color = uiColor;\n }\n\n } else {\n affectedEl.style.color = uiColor;\n }\n },\n starRatingSelectHoverSet : function( event ) {\n let starRating;\n if( ! event.target.classList.contains( 'wptb-rating-star' ) ) {\n starRating = WPTB_Helper.findAncestor( event.target, 'wptb-rating-star' );\n } else {\n starRating = event.target;\n }\n \n let onStar = parseInt( starRating.dataset.value, 10 ); // The star currently mouse on\n\n // Now highlight all the stars that's not after the current hovered star\n let children = starRating.parentNode.children;\n if( event.type == \"mouseover\" ) {\n for( let j = 0; j < children.length; j++ ) {\n if( j < onStar ) {\n if( j == onStar - 1 ) {\n if ( event.target.classList.contains( 'wptb-rating-star-left-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-hover-half' );\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n } else if( event.target.classList.contains( 'wptb-rating-star-right-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n } else {\n children[j].classList.add( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n } else {\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n }\n } else if ( event.type == \"click\" ) {\n for( let j = 0; j < children.length; j++ ) {\n if( j < onStar ) {\n if( j == onStar - 1 ) {\n if ( event.target.classList.contains( 'wptb-rating-star-left-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-selected-half' );\n children[j].classList.remove( 'wptb-rating-star-selected-full' );\n } else if( event.target.classList.contains( 'wptb-rating-star-right-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n } else {\n children[j].classList.add( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n } else {\n children[j].classList.remove( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n }\n }\n \n },\n starRatingEventHandlersAdd: function( ratingStar ) {\n ratingStar.onmouseover = function( event ) {\n event.stopPropagation();\n WPTB_Helper.starRatingSelectHoverSet( event );\n }\n ratingStar.onmouseout = function() {\n let children = this.parentNode.children;\n for( let j = 0; j < children.length; j++ ) {\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n }\n }\n\n /* 2. Action to perform on click */\n ratingStar.onclick = function( event ) {\n WPTB_Helper.starRatingSelectHoverSet( event );\n \n /* Rating number message */\n let wptbStarRatingContainer = WPTB_Helper.findAncestor( event.target, 'wptb-star_rating-container' );\n\n WPTB_Helper.starRatingTextMessageChenge( wptbStarRatingContainer );\n\n let wptbActionsField = new WPTB_ActionsField( 1, wptbStarRatingContainer );\n\n wptbActionsField.setParameters( wptbStarRatingContainer );\n\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n },\n numberImputSize: function ( 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 starRatingTextMessageChenge: function( starRatingContainer ) {\n let ratingNumber = starRatingContainer.getElementsByClassName( 'wptb-rating-star-selected-full' ).length;\n if( starRatingContainer.getElementsByClassName( 'wptb-rating-star-selected-half' ).length > 0 ) {\n ratingNumber = parseInt( ratingNumber ) + 0.5;\n }\n \n let wptbTextMessageCommon = starRatingContainer.querySelectorAll( 'li' ),\n wptbTextMessageCommonVal = wptbTextMessageCommon.length,\n wptbTextMessage = starRatingContainer.querySelector( '.wptb-text-message' );\n if( wptbTextMessageCommonVal == 1 && wptbTextMessageCommon[0].style.display == 'none' ) {\n wptbTextMessage.innerHTML = '';\n return;\n }\n \n wptbTextMessage.innerHTML = ratingNumber + '/' + wptbTextMessageCommonVal;\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 = '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 text: '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 let imgSrc = attachment.url;\n let linkArr = imgSrc.split( ':' ),\n linkClean;\n if ( Array.isArray( linkArr ) && linkArr.length > 0 ) {\n linkClean = linkArr[linkArr.length - 1];\n }\n img.src = linkClean;\n img.height = attachment.height;\n img.width = attachment.width;\n img.style.width = '100%';\n\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 = 30,\n MAX_ROWS = 30;\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 console.log(event);\n console.log(this);\n WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\n },\n });\n \n function tableAdaptiveForMobile( table ) {\n let wptbAdaptiveTableCheckbox = document.getElementById( 'wptb-adaptive-table-checkbox' );\n if( table && table.dataset.wptbAdaptiveTable && table.dataset.wptbAdaptiveTable == \"1\" ) {\n wptbAdaptiveTableCheckbox.checked = true;\n } else {\n wptbAdaptiveTableCheckbox.checked = false;\n }\n }\n tableAdaptiveForMobile( table );\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableBorderNumber = document.getElementById( 'wptb-table-border-number' );\n WPTB_Helper.numberImputSize( wptbTableBorderNumber, 1, 50 );\n \n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\n WPTB_Helper.numberImputSize( wptbTableInnerBorderNumber, 1, 50 );\n \n let wptbTableCellNumber = document.getElementById( 'wptb-table-cell-number' );\n WPTB_Helper.numberImputSize( wptbTableCellNumber, 1, 50 );\n \n let wptbTextfontSizeNumber = document.getElementById( 'wptb-size-number' );\n WPTB_Helper.numberImputSize( wptbTextfontSizeNumber, 1, 50 );\n \n let wptbImageWidthNumber = document.getElementById( 'wptb-size-number' );\n WPTB_Helper.numberImputSize( wptbImageWidthNumber, 2, 100 );\n \n let wptbTableColumnWidthNumber = document.getElementById( 'wptb-table-column-width-number' );\n WPTB_Helper.numberImputSize( wptbTableColumnWidthNumber, 2, 500 );\n \n let wptbTableRowHeightNumber = document.getElementById( 'wptb-table-row-height-number' );\n WPTB_Helper.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-slider').onchange = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider').onchange = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider').onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider' ).onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider' ).onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n \n document.getElementById( 'wptb-adaptive-table-checkbox' ).onchange = function() {\n if( this.checked ) {\n table.dataset.wptbAdaptiveTable = 1;\n } else {\n table.dataset.wptbAdaptiveTable = 0;\n }\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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.onclick = 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 clickOnFreeSpace();\n } \n };\n \n let wptbHeader = document.getElementsByClassName( 'wptb-header' );\n if( wptbHeader.length > 0 ) wptbHeader = wptbHeader[0];\n wptbHeader.onclick = function() {\n clickOnFreeSpace();\n }\n \n function clickOnFreeSpace() {\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 document.querySelector('.wptb-panel-left').addEventListener('click', function (event) {\n if (event.target.classList.contains('wptb-exit-options')) {\n clickOnFreeSpace();\n }\n });\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 let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 2, DOMElement );\n \n wptbActionsField.setParameters( DOMElement );\n console.log(DOMElement);\n };\n\n DOMElement.onmouseleave = function ( event ) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.leaveFromField( event, DOMElement, 2 );\n \n return false;\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 wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n \n wptbUndo.onclick = function( event ) {\n if( ! this.classList.contains( 'wptb-undoredo-disabled' ) ) {\n wptbTableStateSaveManager.tableStateGet( this.dataset.wptbUndoredo );\n let wptbUndoRedoContainer = document.getElementsByClassName( 'wptb-undo-redo-container' );\n if( wptbUndoRedoContainer.length > 0 ) {\n wptbUndoRedoContainer = wptbUndoRedoContainer[0];\n wptbUndoRedoContainer.onmouseleave = function( event ) {\n event.target.onmouseleave = '';\n WPTB_Table();\n }\n }\n }\n \n }\n }\n \n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n \n wptbRedo.onclick = function( event ) {\n if( ! this.classList.contains( 'wptb-undoredo-disabled' ) ) {\n wptbTableStateSaveManager.tableStateGet( this.dataset.wptbUndoredo );\n let wptbUndoRedoContainer = document.getElementsByClassName( 'wptb-undo-redo-container' );\n if( wptbUndoRedoContainer.length > 0 ) {\n wptbUndoRedoContainer = wptbUndoRedoContainer[0];\n wptbUndoRedoContainer.onmouseleave = function( event ) {\n event.target.onmouseleave = '';\n WPTB_Table();\n }\n }\n }\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-button-disable' ) ) {\n shortcodePopupWindow.classList.add( 'wptb-popup-show' );\n }\n }\n \n window.onbeforeunload = function(e) {\n let wptbSaveDisabled = document.getElementsByClassName( 'wptb-save-disabled' );\n if( wptbSaveDisabled.length == 0 ) {\n return true;\n } else {\n return null;\n }\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-preview-btn' )[0].onclick = function ( e ) {\n if( this.classList.contains( 'wptb-button-disable' ) ) {\n e.preventDefault();\n }\n }\n\n document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function ( event ) {\n if( ( ! event.target.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == event.target.dataset.wptbTableStateNumberSave ) {\n return;\n }\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-button-disable' );\n document.getElementById( 'wptb-embed-shortcode' ).value = '[wptb id=' + data[1] + ']';\n let wptbPreviewBtn = document.getElementsByClassName( 'wptb-preview-btn' );\n if( wptbPreviewBtn.length > 0 ) {\n wptbPreviewBtn = wptbPreviewBtn[0];\n wptbPreviewBtn.classList.remove( 'wptb-button-disable' );\n let wptbPreviewBtnHref = wptbPreviewBtn.dataset.previewHref;\n wptbPreviewBtnHref = wptbPreviewBtnHref.replace( 'empty', data[1] );\n wptbPreviewBtn.setAttribute( 'href', wptbPreviewBtnHref );\n }\n \n } else if( data[0] == 'edited' ) {\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully updated.</div>';\n event.target.dataset.wptbTableStateNumberSave = window.wptbTableStateNumberShow;\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n }\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_StarRating = function ( DOMElementProt, countStarts ) {\n if( ! countStarts ) {\n if( ! DOMElementProt ) {\n countStarts = 5;\n } else {\n countStarts = DOMElementProt.querySelectorAll( 'li' ).length;\n }\n }\n \n let DOMElement = document.createElement('div'),\n ratingStarsBox = document.createElement( 'div' ),\n ratingStarsList = document.createElement( 'ul' ),\n successBox = document.createElement( 'div' ),\n textMessage = document.createElement( 'div' ),\n kindIndexProt = undefined,\n copy = false;\n \n DOMElement.classList.add( 'wptb-star_rating-container' );\n ratingStarsBox.classList.add( 'wptb-rating-stars-box' );\n ratingStarsList.classList.add( 'wptb-rating-stars-list' );\n successBox.classList.add( 'wptb-success-box' );\n successBox.style.display = 'none';\n textMessage.classList.add( 'wptb-text-message' );\n textMessage.style.fontSize = '25px';\n \n let filledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <polygon points=\"426.667,165.12 273.28,152.107 213.333,10.667 153.387,152.107 0,165.12 \\n\\\n 116.48,266.027 81.493,416 213.333,336.427 345.173,416 310.187,266.027\"/></svg>';\n \n let notFilledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <path d=\"M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573\\n\\\n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533L133.12,344.96l21.333-91.307l-70.827-61.44l93.44-8.107 \\n\\\n l36.267-85.973l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307L213.333,296.533z\"/></svg>';\n \n let halfFilledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <path d=\"M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573 \\n\\\n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533v-198.4l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307 \\n\\\n L213.333,296.533z\"/></svg>';\n \n \n for( let i = 0; i < countStarts; i++ ) {\n let ratingStar = document.createElement( 'li' );\n ratingStar.classList.add( 'wptb-rating-star' );\n ratingStar.style.width = '20px';\n let ratingStarZeroSet = '';\n if( i == 0 ) {\n ratingStarZeroSet = '<span class=\"wptb-rating-star-zero-set\"></span>';\n }\n \n ratingStar.innerHTML = '<span class=\"wptb-rating-star-left-signal-part\">' + ratingStarZeroSet + '</span><span class=\"wptb-filled-rating-star\">' + filledRatingStarHtml + '</span>'\n + '<span class=\"wptb-not-filled-rating-star\">' + notFilledRatingStarHtml + '</span>'\n + '<span class=\"wptb-half-filled-rating-star\">' + halfFilledRatingStarHtml + '</span><span class=\"wptb-rating-star-right-signal-part\"></span>';\n ratingStar.dataset.value = i + 1;\n ratingStarsList.appendChild( ratingStar );\n }\n\n successBox.appendChild( textMessage );\n ratingStarsBox.appendChild( ratingStarsList );\n ratingStarsBox.appendChild( successBox );\n DOMElement.appendChild( ratingStarsBox );\n \n \n\n \n // Creation of a new star rating 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 \n var wptbRatingStarsBox = DOMElementProt.querySelector( '.wptb-rating-stars-box' );\n if ( wptbRatingStarsBox ) {\n var wptbRatingStarsBoxAttributes = [...wptbRatingStarsBox.attributes];\n if ( wptbRatingStarsBoxAttributes.length > 0 ) {\n for( let i = 0; i < wptbRatingStarsBoxAttributes.length; i++ ) {\n if ( wptbRatingStarsBoxAttributes[i].name == 'style') {\n ratingStarsBox.setAttribute( wptbRatingStarsBoxAttributes[i].name, wptbRatingStarsBoxAttributes[i].value );\n }\n } \n }\n }\n \n let wptbRatingStarsOld = wptbRatingStarsBox.querySelectorAll( 'li' );\n let wptbRatingStars = ratingStarsList.querySelectorAll( 'li' );\n if ( wptbRatingStarsOld.length > 0 && wptbRatingStars.length > 0 ) {\n let iMax = wptbRatingStarsOld.length < countStarts ? wptbRatingStarsOld.length : countStarts;\n for( let i = 0; i < wptbRatingStarsOld.length; i++ ) {\n let wptbRatingStarsAttributes = [...wptbRatingStarsOld[i].attributes];\n if ( wptbRatingStarsAttributes.length > 0 ) {\n for( let j = 0; j < wptbRatingStarsAttributes.length; j++ ) {\n wptbRatingStars[i].setAttribute( wptbRatingStarsAttributes[j].name, wptbRatingStarsAttributes[j].value );\n } \n }\n \n let wptbRatingStarsOldSpan = wptbRatingStarsOld[i].children;\n let wptbRatingStarsSpan = wptbRatingStars[i].children;\n for( let k = 0; k < wptbRatingStarsOldSpan.length; k++ ){\n let wptbRatingStarsOldSpanAttributes = [...wptbRatingStarsOldSpan[k].attributes];\n if( wptbRatingStarsOldSpanAttributes.length > 0 ) {\n for ( let l = 0; l < wptbRatingStarsOldSpanAttributes.length; l++ ) {\n wptbRatingStarsSpan[k].setAttribute( wptbRatingStarsOldSpanAttributes[l].name, wptbRatingStarsOldSpanAttributes[l].value );\n let wptbRatingStarsOldSvg = wptbRatingStarsOldSpan[k].querySelector( 'svg' );\n if( wptbRatingStarsOldSvg ) {\n let wptbRatingStarsOldSvgStyle = wptbRatingStarsOldSvg.getAttribute( 'style' );\n wptbRatingStarsSpan[k].querySelector( 'svg' ).setAttribute( 'style', wptbRatingStarsOldSvgStyle );\n }\n }\n }\n }\n }\n }\n \n var wptbSuccessBox = wptbRatingStarsBox.querySelector( '.wptb-success-box' );\n if ( wptbSuccessBox ) {\n var wptbSuccessBoxAttributes = [...wptbSuccessBox.attributes];\n for( let i = 0; i < wptbSuccessBoxAttributes.length; i++ ) {\n if ( wptbSuccessBoxAttributes[i].name == 'style') {\n successBox.setAttribute( wptbSuccessBoxAttributes[i].name, wptbSuccessBoxAttributes[i].value );\n }\n } \n }\n \n var wptbTextMessage = wptbSuccessBox.querySelector( '.wptb-text-message' );\n if ( wptbTextMessage ) {\n textMessage.innerHTML = wptbTextMessage.innerHTML;\n var wptbTextMessageAttributes = [...wptbTextMessage.attributes];\n for( let i = 0; i < wptbTextMessageAttributes.length; i++ ) {\n if ( wptbTextMessageAttributes[i].name == 'style') {\n textMessage.setAttribute( wptbTextMessageAttributes[i].name, wptbTextMessageAttributes[i].value );\n }\n } \n }\n }\n \n this.kind = 'star_rating';\n\n this.getDOMElement = function () {\n return DOMElement;\n };\n\n applyGenericItemSettings( this, kindIndexProt, copy );\n \n return this;\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 \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 if( wptbActions[0] && wptbActions[0].parentNode ) {\n wptbActions[0].parentNode.removeChild( wptbActions[0] );\n wptbActionsLength--;\n } else {\n break;\n }\n \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 cellSettings = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ),\n tds = table.getElementsByClassName('wptb-highlighted');\n while (tds.length) {\n tds[0].classList.remove('wptb-highlighted');\n }\n cellSettings.classList.remove( 'visible' );\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 table.dataset.wptbAdaptiveTable = 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.parentNode.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.parentNode.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 let wptbAdaptiveTableChoseBlock = document.getElementsByClassName( 'wptb-adaptive-table-chose-block' );\n if( wptbAdaptiveTableChoseBlock.length > 0 ) {\n wptbAdaptiveTableChoseBlock = wptbAdaptiveTableChoseBlock[0];\n }\n table.mergingСellsHorizontally = false;\n table.mergingCellsVertically = false;\n table.dataset.reconstraction = 1;\n wptbAdaptiveTableChoseBlock.style.display = 'block';\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 wptbAdaptiveTableChoseBlock.style.display = 'none';\n table.mergingСellsHorizontally = true;\n forBreak++;\n }\n \n if( tds[i].rowSpan > 1 ) {\n table.dataset.reconstraction = 0;\n wptbAdaptiveTableChoseBlock.style.display = 'none';\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 \n undoSelect();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 \n undoSelect();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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_TableStateSaveManager = function() {\n this.tableStateSet = () => {\n // get preview table\n let wptbPreviewTable = document.getElementsByClassName( 'wptb-preview-table' );\n if( wptbPreviewTable.length > 0 ) {\n wptbPreviewTable = wptbPreviewTable[0];\n \n // check if a global array doesn't exist with saved versions of the table \n // them create it\n if( ! window.wptbTableStateSaving ) {\n window.wptbTableStateSaving = [];\n } \n \n // remove the extra part of the array after changing the table \n // when it is showed in the not last modified version\n if( window.wptbTableStateSaving.length > window.wptbTableStateNumberShow + 1 ) {\n window.wptbTableStateSaving = window.wptbTableStateSaving.slice( 0, window.wptbTableStateNumberShow + 1 );\n }\n \n //add new state of table\n let wptbNewPreviewTable = wptbPreviewTable.cloneNode( true );\n let wptbHighlighted = wptbNewPreviewTable.getElementsByClassName( 'wptb-highlighted' );\n for( let i = 0; i < wptbHighlighted.length; i++ ) {\n wptbHighlighted[i].classList.remove( 'wptb-highlighted' );\n }\n let wptbDirectlyhovered = wptbNewPreviewTable.getElementsByClassName( 'wptb-directlyhovered' );\n for( let i = 0; i < wptbDirectlyhovered.length; i++ ) {\n wptbDirectlyhovered[i].classList.remove( 'wptb-directlyhovered' );\n }\n \n let cssForTdsWidthAutoValue = '';\n let head = document.head;\n if( head ) {\n let cssForTdsWidthAuto = head.querySelector( 'style[data-wptb-td-auto-width=\"true\"]' );\n if( cssForTdsWidthAuto ) {\n cssForTdsWidthAutoValue = cssForTdsWidthAuto.innerHTML;\n }\n }\n \n let mceContentBodys = wptbNewPreviewTable.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 = wptbNewPreviewTable.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 mceIds = wptbNewPreviewTable.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 window.wptbTableStateSaving.push( [wptbNewPreviewTable, cssForTdsWidthAutoValue] );\n \n // set new number of state which is showed now\n window.wptbTableStateNumberShow = window.wptbTableStateSaving.length - 1;\n \n // make undo arrow active when the table was changed\n if( window.wptbTableStateSaving.length > 1 ) {\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n\n wptbUndo.classList.remove( 'wptb-undoredo-disabled' );\n }\n }\n \n // make redo arrow not active when the table was changed\n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n \n wptbRedo.classList.add( 'wptb-undoredo-disabled' );\n }\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n if( ( ! wptbSaveBtn.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == wptbSaveBtn.dataset.wptbTableStateNumberSave ) {\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n } else {\n wptbSaveBtn.classList.remove( 'wptb-save-disabled' );\n }\n }\n }\n }\n \n this.tableStateGet = ( datawptbUndoredo ) => {\n if( datawptbUndoredo && window.wptbTableStateSaving && window.wptbTableStateSaving.length > 1 ) {\n \n // changes the number of the state which displays now\n if( datawptbUndoredo == 'undo' ) {\n if( window.wptbTableStateNumberShow > 0 ) {\n window.wptbTableStateNumberShow--;\n } else {\n return false;\n }\n } else if( datawptbUndoredo == 'redo' ) {\n if( window.wptbTableStateNumberShow < window.wptbTableStateSaving.length - 1 ) {\n window.wptbTableStateNumberShow++;\n } else {\n return false;\n }\n }\n \n // add or delete class \"wptb-undoredo-disabled\" for undo button\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n }\n if( window.wptbTableStateNumberShow == 0 ) {\n if( wptbUndo ) {\n wptbUndo.classList.add( 'wptb-undoredo-disabled' )\n }\n } else if( window.wptbTableStateNumberShow > 0 ) {\n if( wptbUndo ) {\n wptbUndo.classList.remove( 'wptb-undoredo-disabled' )\n }\n }\n \n // add or delete class \"wptb-undoredo-disabled\" for redo button\n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n }\n if( window.wptbTableStateNumberShow == window.wptbTableStateSaving.length - 1 ) {\n if( wptbRedo ) {\n wptbRedo.classList.add( 'wptb-undoredo-disabled' )\n }\n } else if( window.wptbTableStateNumberShow < window.wptbTableStateSaving.length - 1 ) {\n if( wptbRedo ) {\n wptbRedo.classList.remove( 'wptb-undoredo-disabled' )\n }\n }\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n if( ( ! wptbSaveBtn.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == wptbSaveBtn.dataset.wptbTableStateNumberSave ) {\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n } else {\n wptbSaveBtn.classList.remove( 'wptb-save-disabled' );\n }\n }\n \n // load necessary saved table state\n let wptbTableSetup = document.getElementsByClassName( 'wptb-table-setup' );\n if( wptbTableSetup.length > 0 ) {\n wptbTableSetup = wptbTableSetup[0];\n\n wptbTableSetup.innerHTML = '';\n wptbTableSetup.innerHTML = window.wptbTableStateSaving[window.wptbTableStateNumberShow][0].outerHTML;\n\n if( window.wptbTableStateSaving[window.wptbTableStateNumberShow][1] ) {\n let cssForTdsWidthAuto = document.createElement( 'style' );\n cssForTdsWidthAuto.setAttribute( 'data-wptb-td-auto-width', true );\n cssForTdsWidthAuto.innerHTML = window.wptbTableStateSaving[window.wptbTableStateNumberShow][1];\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 head.appendChild( cssForTdsWidthAuto );\n }\n }\n\n WPTB_Helper.settingsPanelClear();\n WPTB_Helper.elementOptionsPanelClear();\n WPTB_LeftPanel();\n\n let wptbLeftScrollPanelCellSetting = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ); \n if( wptbLeftScrollPanelCellSetting ) {\n wptbLeftScrollPanelCellSetting.classList.remove( 'visible' );\n }\n }\n }\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 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 = WPTB_Helper.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 == 'Above 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 if( ! element.classList.contains( 'wptb-image-container' ) || element.classList.contains( 'wptb-moving-mode' ) ) {\n element.classList.remove( 'wptb-moving-mode' );\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let kindIndexProtArr = kindIndexProt.split('-');\n index = kindIndexProtArr[kindIndexProtArr.length - 1];\n }\n \n node.onmouseenter = function ( event ) {\n if( event.target.classList.contains( 'wptb-moving-mode' ) ) {\n return;\n }\n \n let i, wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n \n node.classList.remove( 'wptb-ondragenter' );\n \n //wptbActionsField.addActionField( 1, node )\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 force_br_newlines : false,\n force_p_newlines : false,\n forced_root_block : '',\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 });\n \n ed.on( 'keydown', function(e) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n });\n ed.on( 'keyup', function(e) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\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 } else if( element.kind === 'list' ) {\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 \n node.onmouseleave = function ( event ) {\n let wptbActionsField = new WPTB_ActionsField();\n \n if( wptbActionsField.wptbActions && wptbActionsField.wptbActions.type != '1' ) {\n return;\n }\n \n wptbActionsField.leaveFromField( event, node, 1 );\n };\n \n let wptbActions = document.getElementsByClassName( 'wptb-actions' );\n if( wptbActions.length > 0 ) {\n wptbActions = wptbActions[0];\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 } else if( element.kind == 'star_rating' ) {\n let ratingStars = node.getElementsByClassName( 'wptb-rating-star' );\n for ( let i = 0; i < ratingStars.length; i++ ) {\n let ratingStar = ratingStars[i];\n \n \n WPTB_Helper.starRatingEventHandlersAdd( ratingStar );\n \n let ritingStarZeroSet = ratingStar.querySelector( '.wptb-rating-star-zero-set' );\n if( ritingStarZeroSet ) {\n ritingStarZeroSet.onclick = function( event ) {\n let ulStarList = WPTB_Helper.findAncestor( event.target, 'wptb-rating-stars-list' );\n if( ulStarList ) {\n let children = ulStarList.children;\n for( let i = 0; i < children.length; i++ ) {\n children[i].classList.remove( 'wptb-rating-star-selected-full' );\n children[i].classList.remove( 'wptb-rating-star-selected-half' );\n }\n }\n }\n }\n }\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};",""]}
1
+ {"version":3,"sources":["WPTB_ActionsField.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_LeftPanel.js","WPTB_List.js","WPTB_ListItem.js","WPTB_MultipleSelect.js","WPTB_Parser.js","WPTB_Parser2.js","WPTB_Settings.js","WPTB_Space.js","WPTB_StarRating.js","WPTB_Stringifier.js","WPTB_Stringifier2.js","WPTB_Table.js","WPTB_TableStateSaveManager.js","WPTB_Text.js","WPTB_innerElementSet.js","applyGenericItemSettings.js","wptb-builder.js"],"names":["WPTB_ActionsField","wptbActions","document","getElementsByClassName","length","addActionField","actionType","thisNode","body","getElementsByTagName","actions","previousNode","activeElem","classList","remove","parentNode","removeChild","btnDelete","btnCopy","btnMove","createElement","add","draggable","appendChild","type","onclick","event","act","target","el","kind","thisRow","contains","table","WPTB_Helper","findAncestor","dataTitleColumnSet","wptbActionsField","actionsRemove","wptbTableStateSaveManager","WPTB_TableStateSaveManager","tableStateSet","copy","infArr","activeElement","activeElementClone","cloneNode","className","match","td","temp","srcList","querySelectorAll","i","push","innerHTML","WPTB_List","insertBefore","getDOMElement","nextSibling","WPTB_Text","childNodes","WPTB_Image","text","querySelector","WPTB_Button","WPTB_StarRating","WPTB_innerElementSet","setParameters","ondragstart","dragImagesArr","dataTransfer","effectAllowed","setDragImage","setData","actionsHide","style","display","previous","append","wptbDirectlyhovered","action","item","parent","listItemsRecalculateIndex","coordinatesElement","getBoundingClientRect","coordinatesElementTopBegin","top","listItem","content","html","duplicate","WPTB_ListItem","listItemsTinyMceInit","firstChild","divcontent","setTimeout","coordinatesElementTopEnd","wptbContainer","correctTop","parseFloat","removeEventListener","left","right","clientWidth","addEventListener","leaveFromField","node","relatedTarget","onmouseleave","localName","opacity","WPTB_Builder","table_id","detectMode","http","XMLHttpRequest","urlSet","ajaxurl","open","setRequestHeader","onreadystatechange","d","readyState","status","ans","JSON","parse","responseText","getElementById","value","wptbTableSetupEl","WPTB_Parser","WPTB_Table","WPTB_LeftPanel","WPTB_Settings","send","counter","ElementCounters","select","MultipleSelect","initializer","WPTB_Initializer","settings","DOMElementProt","DOMElement","elButton","el_B","el_BDiv","el_BDivP","kindIndexProt","undefined","wptbElementMutch","Array","isArray","attributesContainer","attributes","setAttribute","name","wptbButtonWrapper","wptbButtonWrapAttributes","wptbButtonA","wptbButtonAttributes","wptbButton","applyGenericItemSettings","WPTB_Cell","callback","highlightRow","parentRow","columnCount","parseInt","tds","classToAdd","ttd","highlightColumn","index","rowCount","tr","padding","jQuery","val","innerBorderWidth","border","wptbPhElement","wptbSpaceBetween","j","WPTB_Space","wptbElementTypeClass","wptbTypeElementArr","split","wptbListItems","setCoords","y","x","dataset","yIndex","xIndex","getCoords","coords","appendElement","getCellDimensions","tdStyleObj","window","getComputedStyle","tdPaddingLeft","getPropertyValue","tdPaddingRight","tdBorderLeftWidth","tdBorderRightWidth","tdPaddingTop","tdPaddingBottom","tdBorderTopWidth","tdBorderBottomWidth","width","offsetWidth","height","offsetHeight","WPTB_DropHandle","thisElem","e","wptbDropHandle","wptbDropBorderMarker","wptbDropBorderMarkerTop","wptbDropBorderMarkerRight","wptbDropBorderMarkerBottom","wptbDropBorderMarkerLeft","ondragenter","ondragover","preventDefault","ondragleave","ondrop","element","getData","newElementProxy","wptbMovingMode","getDOMParentElement","nodeName","toLowerCase","innerElement","innerElementNext","console","log","onscroll","indics","types","notDragEnter","indexOf","elementDrag","offsetY","layerY","bottom","priv","increment","key","nextIndex","WPTB_ElementOptions","elemIdClass","prop","properties","affectedEl","wptbSize","b","buttonAlignment","justifyContent","selectOptionVal","elementButtonAlignmentSelect","getAttribute","buttonHref","buttonLinkTarget","buttonId","buttonHrefInput","buttonLinkTargetInput","buttonLinkTargetInputId","buttonLinkTargetInputLabel","buttotIdInput","checked","buttonTextColor","color","buttonColor","backgroundColor","buttonTextColorInput","buttonBackgroundColorInput","rgbToHex","elementsA","a","imgAlign","float","imageAlignmentSelect","imageLinkHref","inputImageLink","imageLinkTarget","imageLinkTargetInput","imageLinkTargetInputId","imageLinkTargetInputLabel","imgWidth","imageWidthInputRange","imageWidthInputNumber","img","imgAlternativeText","imageAlternativeTextInput","elementFontSize","fontSize","elementTextColor","textFontSizeInputRange","textFontSizeInputNumber","textColorInput","elementList","elementListColor","listColorInput","elementListItem","listItemP","listItemPClasses","elementListClassSelect","listIconSelectLabel","nodeType","listIconSelectLabelId","elementListStyleTypeSelect","elementListItemContent","listItemPTextAlignArr","p","textAlign","listItemPTextAlignLeftCount","listItemPTextAlignCenterCount","listItemPTextAlignRightCount","elementListAlignmentSelect","maxListItemTAlLeftC","Math","max","wptbListAlignmentValue","wptbRatingAlignment","ratingStar","ratingStarSize","starSizeInputRange","starSizeInputNumber","starColorInput","ratingStarColor","fill","ratingStars","starsCountInputNumber","successBox","showNumberRatingCheckbox","numeralRatingOptionContainers","wptbTextMessage","numberRatingSize","numberRatingColor","numberSizeInputRange","numberSizeInputNumber","numberColorInput","optionsClass","children","buttons","size","n_Class","num","star_alignment","list_alignment","listItems","button_alignment","jc","image_alignment","image_alignment_value","optionControls","wpColorPicker","change","ui","wpColorPickerChange","wpColorPickerCheckChangeForTableStateSaving","clear","numberImputSize","slider","oninput","onchange","src","alt","href","linkHttpCheckChange","rel","removeAttribute","id","parentNodeSettingItem","span","wptbNumeralRatingOptionContainer","starRatingTextMessageChenge","wptbTextMessageSize","lineHeight","starRatings","starRatingsCount","difference","starRatingsLast","newStarRating","starRatingEventHandlersAdd","starRatingLength","onmouseup","hexToRgb","hex","result","exec","rgb","toString","slice","getDragImageCustom","hostName","location","protocol","hostname","image","button","list","star_rating","ulElem","par","listStyleTypeIndex","Number","tinyMCE","init","inline","plugins","dialog_type","theme","menubar","fixed_toolbar_container","paste_as_text","toolbar","setup","ed","on","article","keyCode","innerText","pText","replace","trim","selectedText","getSelectionText","wptbListItem","onblur","init_instance_callback","editor","currentEditor","totalWidth","scrollTop","bodyElement","position","buttonsTinyMceInit","wptbButtonContainer","link","linkArr","linkClean","rows","rowHead","computedStyleRowHead","rowHeadChildren","contentsForHeader","tdElements","textContent","thisRowChildren","wptbTitleColumn","wptbTitleColumnFontSize","wptbTitleColumnColor","wptbTitleBackgroundColor","wptbTitleAlign","cls","parentElement","txt","getSelection","selection","createRange","settingsPanelClear","wpColorPickerClear","elementOptionsPanelClear","elementOptionsGroup","originalEvent","wpPickerContainer","irisSquareHandle","uiSliderHandle","attribute","isId","input","newInput","url","regex","RegExp","results","decodeURIComponent","getColumnWidth","cell","xIndexes","cellWidth","getRowHeight","yIndexes","cellHeight","uiColor","classe","ps","number","starRatingSelectHoverSet","starRating","onStar","onmouseover","stopPropagation","onmouseout","wptbStarRatingContainer","wptbNumberInputs","maxCount","maxValue","onkeydown","thisValue","String","substring","onkeyup","starRatingContainer","ratingNumber","wptbTextMessageCommon","wptbTextMessageCommonVal","elImage","anchor","file_frame","wp","media","frames","title","multiple","frame","imageSetting","attachment","imgSrc","state","props","toJSON","get","first","menuItemVisibility","MIN_COLUMNS","MIN_ROWS","MAX_COLUMNS","MAX_ROWS","tableGenerator","columnsDecrementButton","columnsIncrementButton","rowsDecrementButton","rowsIncrementButton","columnsInput","rowsInput","columns","wptbElementButtons","wptbTdBgColorSavedSet","inputId","trNumber","tableRows","trBackgroundColor","wptbEvenRowBg","tableHeader","tableAdaptiveForMobile","wptbAdaptiveTableCheckbox","wptbAdaptiveTable","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","wptbTableBorderNumber","wptbTextfontSizeNumber","wptbImageWidthNumber","wptbTableColumnWidthNumber","wptbTableRowHeightNumber","tdDefaultWidth","wptbInnerBorderCheck","tableBorderColorSetArea","addColumnWidth","highlighted","addRowHeight","createMobileHeadForTable","thisEvent","wptbElement","toggleTableEditMode","addRowToTheEnd","addRowToTheStart","addRowBefore","addRowAfter","addColumnEnd","addColumnStart","addColumnBefore","addColumnAfter","deleteColumn","deleteRow","mergeCells","splitCell","wptbBuilderPanel","clickOnFreeSpace","wptbHeader","wpcdFixedToolbar","hasAttribute","innerElements","el_L","wptbListItemReturn","styleDot","listItemKeyListener","onmouseenter","selectedCells","multipleCellMode","activateMultipleSelectMode","deactivateMultipleSelectMode","isActivated","pushSelectedCell","flushSelectedCells","getFirst","minXIndex","minYIndex","getLast","maxXIndex","maxYIndex","last","removeAllButFirst","code","div","columnTitleMobile","WPTB_Parser2","elementHtml","createTextNode","tagName","elems","ondragend","wptbUndo","tableStateGet","wptbUndoredo","wptbUndoRedoContainer","wptbRedo","shortcodePopupWindow","onbeforeunload","wptbSaveDisabled","wptbTableStateNumberSave","wptbTableStateNumberShow","bar","wptb_admin_object","t","messagingArea","WPTB_Stringifier","outerHTML","messagingAreaText","params","security_code","rs","wptbId","stringify","data","wptbPreviewBtn","wptbPreviewBtnHref","previewHref","wptbSaveBtn","elSpaceBetween","includes","spaceBetween","t_space","spaceParent","alert","countStarts","ratingStarsBox","ratingStarsList","textMessage","filledRatingStarHtml","notFilledRatingStarHtml","halfFilledRatingStarHtml","ratingStarZeroSet","wptbRatingStarsBox","wptbRatingStarsBoxAttributes","wptbRatingStarsOld","wptbRatingStars","iMax","wptbRatingStarsAttributes","wptbRatingStarsOldSpan","wptbRatingStarsSpan","k","wptbRatingStarsOldSpanAttributes","l","wptbRatingStarsOldSvg","wptbRatingStarsOldSvgStyle","wptbSuccessBox","wptbSuccessBoxAttributes","wptbTextMessageAttributes","codeMain","tableColumns","minWidth","maxWidth","mceContentBodys","dataMceStyle","contentEditable","spellCheck","mceIds","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","wptbAdaptiveTableChoseBlock","mergingCellsVertically","forBreak","currentTable","currentTableTd","currentTdStyle","firstCell","c_pos","cellStyle","pos","pendingInsertion","bro","currentCell","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","actualPoints","addLackingCells","sumRows","totalColspan","nextRow","nextRowChildren","nextRowChildrenLength","tdArr","nextRowChildrenK","jRowChildren","pop","onresize","wptbTableStateSaving","wptbNewPreviewTable","wptbHighlighted","cssForTdsWidthAutoValue","datawptbUndoredo","wptbLeftScrollPanelCellSetting","elText2","elP","classId","wptbElements","elementIndexesArr","elementIndexMax","kindIndexProtArr","force_br_newlines","force_p_newlines","forced_root_block","observer","MutationObserver","mutations","config","attributeFilter","observe","ritingStarZeroSet","ulStarList","node_wptb_element_kind_num"],"mappings":"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","file":"admin.js","sourcesContent":["var WPTB_ActionsField = function() {\n //this.wptbBorderMarker;\n this.wptbActions;\n if( document.getElementsByClassName( 'wptb-actions' ).length != 0 ) {\n this.wptbActions = document.getElementsByClassName( 'wptb-actions' )[0];\n }\n \n this.addActionField = ( actionType, thisNode ) => {\n let body = document.getElementsByTagName( 'body' )[0];\n \n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length != 0 ) {\n let previousNode = actions[0].activeElem;\n if( previousNode ) {\n previousNode.classList.remove( 'wptb-directlyhovered' );\n }\n \n while( actions.length != 0 ) {\n actions[0].parentNode.removeChild( actions[0] );\n }\n }\n \n if( actionType == 1 ) {\n \n let btnDelete, btnCopy, btnMove;\n\n btnDelete = document.createElement( 'span' ),\n btnCopy = document.createElement( 'span' ),\n btnMove = document.createElement( 'span' ),\n actions = document.createElement( 'div' );\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\n actions.appendChild( btnMove );\n actions.appendChild( btnCopy );\n actions.appendChild( btnDelete );\n body.appendChild( actions );\n\n actions.activeElem = thisNode;\n\n actions.type = 1;\n\n btnDelete.onclick = function( event ) {\n let act = event.target.parentNode.activeElem,\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 let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.actionsRemove();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n\n\n btnCopy.onclick = ( event ) => {\n let copy,\n infArr,\n type;\n let activeElement = event.target.parentNode.activeElem;\n let activeElementClone = activeElement.cloneNode( true );\n activeElementClone.classList.remove( 'wptb-directlyhovered' );\n infArr = activeElement.className.match(/wptb-element-(.+)-(\\d+)/i);\n type = infArr[1];\n let td = activeElement.parentNode;\n if ( type == 'list' ) {\n var temp = [],\n srcList = activeElement.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, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if ( type == 'text' ) {\n copy = new WPTB_Text( activeElementClone.childNodes[0].innerHTML, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if ( type == 'image' ) {\n copy = new WPTB_Image( '', activeElement );\n \n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if( type == 'button' ) {\n let text = activeElementClone.childNodes[0].querySelector( 'p' ).innerHTML;\n \n copy = new WPTB_Button( text, activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n } else if( type = 'star_rating' ) {\n copy = new WPTB_StarRating( activeElementClone );\n\n td.insertBefore( copy.getDOMElement(), activeElement.nextSibling );\n }\n\n WPTB_innerElementSet( copy.getDOMElement() );\n\n let wptbActionsField = new WPTB_ActionsField( 1, activeElement );\n \n wptbActionsField.setParameters( activeElement );\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n btnMove.ondragstart = ( event ) => {\n let dragImagesArr = WPTB_Helper.dragImagesArr(),\n actions = event.target.parentNode,\n activeElem = actions.activeElem,\n infArr,\n type;\n infArr = activeElem.className.match(/wptb-element-(.+)-(\\d+)/i);\n type = infArr[1];\n activeElem.classList.add( 'wptb-moving-mode' );\n\n event.dataTransfer.effectAllowed = 'move';\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.activeElem;\n if( act.kind == 'text' ) {\n let thisRow = act.parentNode.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 //actions.style.display = 'none';\n this.actionsHide();\n };\n\n //actions.style.right = '-' + parseFloat( thisNode.offsetWidth ) + 'px';\n actions.style.display = 'block';\n\n this.wptbActions = actions;\n } else if( actionType == 2 ) {\n let btnDelete,\n btnCopy,\n previous,\n i;\n\n btnDelete = document.createElement('span'),\n btnCopy = document.createElement('span'),\n actions = document.createElement('span')\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\n actions.append( btnCopy, btnDelete );\n body.appendChild( actions );\n\n actions.activeElem = thisNode;\n \n let wptbDirectlyhovered = WPTB_Helper.findAncestor( thisNode, 'wptb-directlyhovered' );\n if( wptbDirectlyhovered ) {\n wptbDirectlyhovered.classList.remove( 'wptb-directlyhovered' );\n }\n\n actions.type = 2;\n\n btnDelete.onclick = ( event ) => {\n var action = event.target.parentNode, \n item = action.activeElem,\n parent = item.parentNode;\n let wptbActionsField = new WPTB_ActionsField( 4 );\n wptbActionsField.actionsRemove();\n parent.removeChild( item );\n WPTB_Helper.listItemsRecalculateIndex( parent );\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n btnCopy.onclick = ( event ) => {\n let coordinatesElement = thisNode.getBoundingClientRect();\n let coordinatesElementTopBegin = coordinatesElement.top;\n\n var listItem = event.target.parentNode.activeElem,\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(), thisNode.nextSibling );\n WPTB_Helper.listItemsTinyMceInit( duplicate.getDOMElement().firstChild );\n\n let divcontent = thisNode.getElementsByClassName( 'wptb-list-item-content' );\n if( divcontent.length > 0 ) {\n divcontent = divcontent[0];\n }\n setTimeout( function(){\n divcontent.innerHTML = html;\n WPTB_Helper.listItemsRecalculateIndex( listItem.parentNode );\n }, 5 );\n\n coordinatesElement = thisNode.getBoundingClientRect();\n let coordinatesElementTopEnd = coordinatesElement.top;\n\n if( coordinatesElementTopBegin != coordinatesElementTopEnd ) {\n let wptbActionsField = new WPTB_ActionsField( 2, thisNode );\n wptbActionsField.setParameters( thisNode );\n }\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n\n actions.style.display = 'block';\n\n this.wptbActions = actions;\n }\n }\n \n this.setParameters = ( thisNode ) => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.style.display = 'block';\n }\n \n let coordinatesElement = thisNode.getBoundingClientRect();\n \n let wptbContainer = document.getElementsByClassName( 'wptb-container' )[0];\n let correctTop = () => {\n let coordinatesElement = thisNode.getBoundingClientRect();\n this.wptbActions.style.top = parseFloat( coordinatesElement.top ) - 15 + 'px';\n }\n wptbContainer.removeEventListener( 'scroll', correctTop, false );\n \n this.wptbActions.style.top = parseFloat( coordinatesElement.top ) - 15 + 'px';\n this.wptbActions.style.left = ( parseFloat( coordinatesElement.right ) - parseFloat( this.wptbActions.clientWidth ) ) + 1 + 'px';\n\n// let wptbBorderMarkerTop = this.wptbBorderMarker.querySelector( '.wptb-border-marker-top' );\n// wptbBorderMarkerTop.style.width = ( parseFloat( thisNode.offsetWidth ) + 3 ) + 'px';\n//\n// let wptbBorderMarkerRight = this.wptbBorderMarker.querySelector( '.wptb-border-marker-right' );\n// wptbBorderMarkerRight.style.height = ( parseFloat( coordinatesElement.bottom ) - parseFloat( coordinatesElement.top ) + 4 ) + 'px';\n// wptbBorderMarkerRight.style.left = ( parseFloat( thisNode.offsetWidth ) + 3 ) + 'px';\n//\n// let wptbBorderMarkerBottom = this.wptbBorderMarker.querySelector( '.wptb-border-marker-bottom' );\n// wptbBorderMarkerBottom.style.width = wptbBorderMarkerTop.style.width;\n// wptbBorderMarkerBottom.style.top = ( parseFloat( coordinatesElement.bottom ) - parseFloat( coordinatesElement.top ) + 3 ) + 'px';;\n//\n// let wptbBorderMarkerLeft = this.wptbBorderMarker.querySelector( '.wptb-border-marker-left' );\n// \n \n //this.wptbBorderMarker.style.display = 'block';\n this.wptbActions.style.display = 'block';\n thisNode.classList.add( 'wptb-directlyhovered' );\n \n wptbContainer.addEventListener( 'scroll', correctTop, false );\n }\n \n// if( actionType == 1 || actionType == 2 ) {\n// this.setParameters( thisNode );\n// }\n// } else {\n// this.wptbActions.style.display = 'block';\n// thisNode.classList.add( 'wptb-directlyhovered' );\n// }\n \n this.leaveFromField = ( event, node, actionType ) => {\n if( event.relatedTarget ) {\n if ( event.relatedTarget.classList.contains( 'wptb-actions' ) ||\n event.relatedTarget.classList.contains( 'wptb-move-action' ) ||\n event.relatedTarget.classList.contains( 'wptb-duplicate-action' ) ||\n event.relatedTarget.classList.contains( 'wptb-delete-action' ) ) {\n if( ! this.wptbActions ) {\n this.wptbActions = document.getElementsByClassName( 'wptb-actions' )[0];\n }\n this.wptbActions.onmouseleave = ( event ) => {\n if( event.relatedTarget != null && event.relatedTarget != this.wptbActions.activeElem &&\n WPTB_Helper.findAncestor( event.relatedTarget, 'wptb-directlyhovered') != this.wptbActions.activeElem ) {\n event.target.activeElem.classList.remove( 'wptb-directlyhovered' );\n this.wptbActions.style.display = 'none';\n\n if( this.wptbActions.type == 2 ) {\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, event.relatedTarget.parentNode.parentNode );\n\n wptbActionsField.setParameters( event.relatedTarget.parentNode.parentNode );\n }\n } else {\n return;\n }\n }\n\n return;\n } \n// else if( event.relatedTarget.classList.contains( 'wptb-drop-handle' ) ) {\n// let wptbDropHandle = document.getElementsByClassName( 'wptb-drop-handle' );\n// if( wptbDropHandle.length > 0 ) {\n// wptbDropHandle = wptbDropHandle[0];\n// wptbDropHandle.onmouseleave\n// }\n// }\n }\n \n node.classList.remove( 'wptb-directlyhovered' );\n this.wptbActions.style.display = 'none';\n \n if( this.wptbActions.type == 2 ) {\n if( event.relatedTarget ) {\n if( event.relatedTarget.localName == 'ul' ) {\n //let wptbActionsField = new WPTB_ActionsField();\n\n this.addActionField( 1, event.relatedTarget.parentNode );\n\n this.setParameters( event.relatedTarget.parentNode );\n }\n }\n \n }\n }\n \n this.actionsRemove = () => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.parentNode.removeChild( this.wptbActions );\n }\n }\n \n this.actionsHide = () => {\n if( ! this.wptbActions ) {\n let actions = document.getElementsByClassName( 'wptb-actions' );\n if( actions.length > 0 ) {\n this.wptbActions = actions[0];\n }\n }\n \n if( this.wptbActions ) {\n this.wptbActions.style.opacity = 0;\n }\n }\n}","(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 \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 el_BDivP = document.createElement( 'p' ),\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_BDivP.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 wptbButtonA = DOMElementProt.querySelector( 'a' );\n if ( wptbButtonA ) {\n var wptbButtonAttributes = [...wptbButtonA.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 var wptbButton = DOMElementProt.querySelector( '.wptb-button' );\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 el_BDiv.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 el_BDiv.appendChild( el_BDivP );\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 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 = WPTB_Helper.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 element.wptbMovingMode = 1;\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 == 'Above 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 console.log(element);\n if( ! element.classList.contains( 'wptb-image-container' ) || element.wptbMovingMode == 1 ) {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n element.wptbMovingMode == undefined;\n }\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 = parseFloat( 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 = parseFloat( coordinatesElement.top ) - parseFloat( 11 );\n wptbDropHandle.dataset.text = 'Above Element';\n if ( y > height/2 ) {\n top = parseFloat( coordinatesElement.top ) + height - 1;\n wptbDropHandle.dataset.text = 'Below Element';\n }\n } else {\n wptbDropHandle.dataset.text = 'Drop Here';\n top = parseFloat( 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 = ( parseFloat( thisElem.offsetWidth ) - parseFloat( 1 ) ) + 'px';\n\n wptbDropBorderMarkerRight = wptbDropBorderMarker.querySelector( '.wptb-drop-border-marker-right' );\n wptbDropBorderMarkerRight.style.height = ( parseFloat( coordinatesElement.bottom ) - parseFloat( 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\n var selectOptionVal='';\n if ( buttonAlignment == '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 let elementButtonAlignmentSelect = prop.getElementsByClassName('wptb-button-alignment-btn');\n\n\n\n\n for ( var i = 0; i < elementButtonAlignmentSelect.length; i++ ) {\n elementButtonAlignmentSelect[i].classList.remove( 'selected' );\n \n if ( elementButtonAlignmentSelect[i].getAttribute('data-button_alignment') == selectOptionVal ) {\n elementButtonAlignmentSelect[i].classList.add( 'selected' );\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 // set select according to the alignment of the image\n let imgAlign;\n if( a.style.float == 'none' || ! a.style.float) {\n imgAlign = 'center';\n } else {\n imgAlign = a.style.float;\n }\n let imageAlignmentSelect = prop.getElementsByClassName('wptb-image-alignment-btn');\n\n for ( var i = 0; i < imageAlignmentSelect.length; i++ ) {\n imageAlignmentSelect[i].classList.remove( 'selected' );\n \n if ( imageAlignmentSelect[i].getAttribute('data-image_alignment') == imgAlign ) {\n imageAlignmentSelect[i].classList.add( 'selected' );\n }\n }\n\n\n a.onclick = function( e ) {\n e.preventDefault();\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 // set value for input fields of image size\n let imgWidth = a.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 let img = a.getElementsByTagName( 'img' );\n if ( img.length > 0 ) {\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 ) ? parseInt( elementFontSize ) : 10;\n textFontSizeInputNumber.value = parseInt( elementFontSize ) ? parseInt( elementFontSize ) : 10;\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.getElementsByClassName('wptb-list-alignment-btn'),\n maxListItemTAlLeftC = Math.max( listItemPTextAlignLeftCount, listItemPTextAlignCenterCount, listItemPTextAlignRightCount );\n let wptbListAlignmentValue;\n if ( listItemPTextAlignLeftCount == maxListItemTAlLeftC ) {\n wptbListAlignmentValue = 'left';\n } else if ( listItemPTextAlignCenterCount == maxListItemTAlLeftC ) {\n wptbListAlignmentValue = 'center';\n } else if ( listItemPTextAlignRightCount == maxListItemTAlLeftC ) {\n wptbListAlignmentValue = 'right';\n }\n\n for ( var i = 0; i < elementListAlignmentSelect.length; i++ ) {\n elementListAlignmentSelect[i].classList.remove( 'selected' );\n \n if ( elementListAlignmentSelect[i].getAttribute('data-list_alignment') == wptbListAlignmentValue ) {\n elementListAlignmentSelect[i].classList.add( 'selected' );\n }\n }\n }\n } \n } else if( element.kind == 'star_rating' ) {\n let affectedEl = document.getElementsByClassName( 'wptb-element-' + kindIndexProt ),wptbRatingAlignment;\n if( affectedEl.length > 0 ) {\n affectedEl = affectedEl[0];\n let ratingStar = affectedEl.querySelector( 'li' );\n if( ratingStar ) {\n let ratingStarSize = ratingStar.style.width;\n let starSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"star-size\"]' ),\n starSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"star-size\"]' );\n\n starSizeInputRange.value = parseInt( ratingStarSize ) ? parseInt( ratingStarSize ) : 10;\n starSizeInputNumber.value = parseInt( ratingStarSize ) ? parseInt( ratingStarSize ) : 10;\n\n if( ratingStar.querySelector( 'span' ) ) {\n let starColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"star-color\"]' ),\n ratingStarColor = ratingStar.querySelector( 'span' ).style.fill;\n starColorInput.value = WPTB_Helper.rgbToHex( ratingStarColor );\n }\n }\n \n let ratingStars = affectedEl.querySelectorAll( 'li' );\n let starsCountInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"stars-count\"]' );\n if( ratingStars.length == 1 && ratingStars[0].style.display == 'none' ) {\n starsCountInputNumber.value = 0;\n } else {\n starsCountInputNumber.value = ratingStars.length;\n }\n\n // Rating default/saved alignment from icons in left panel\n if ( affectedEl ) {\n wptbRatingAlignment = affectedEl.style.textAlign;\n }\n \n if( wptbRatingAlignment ) {\n var b = prop.getElementsByClassName('wptb-rating-alignment-btn');\n \n for ( var i = 0; i < b.length; i++ ) {\n b[i].classList.remove( 'selected' );\n \n if ( b[i].getAttribute('data-star_alignment') == wptbRatingAlignment ) {\n b[i].classList.add( 'selected' );\n }\n }\n }\n\n let successBox = affectedEl.querySelector( '.wptb-success-box' );\n if( successBox ) {\n let showNumberRatingCheckbox = prop.querySelector( 'input[type=\"checkbox\"][data-type=\"show-number-rating\"]' );\n if( successBox.style.display == 'block' ) {\n showNumberRatingCheckbox.checked = true;\n let numeralRatingOptionContainers = prop.getElementsByClassName( 'wptb-numeral-rating-option-container' );\n for( let i = 0; i < numeralRatingOptionContainers.length; i++ ) {\n numeralRatingOptionContainers[i].style.display = 'block';\n }\n } else {\n showNumberRatingCheckbox.checked = false;\n }\n\n let wptbTextMessage = successBox.querySelector( '.wptb-text-message' );\n if( wptbTextMessage ) {\n let numberRatingSize = wptbTextMessage.style.fontSize;\n let numberRatingColor = wptbTextMessage.style.color;\n\n let numberSizeInputRange = prop.querySelector( 'input[type=\"range\"][data-type=\"numeral-rating-size\"]' ),\n numberSizeInputNumber = prop.querySelector( 'input[type=\"number\"][data-type=\"numeral-rating-size\"]' ),\n numberColorInput = prop.querySelector( 'input[type=\"text\"][data-type=\"numeral-rating-color\"]' );\n\n numberSizeInputRange.value = parseInt( numberRatingSize ) ? parseInt( numberRatingSize ) : 10;\n numberSizeInputNumber.value = parseInt( numberRatingSize ) ? parseInt( numberRatingSize ) : 10;\n numberColorInput.value = WPTB_Helper.rgbToHex( numberRatingColor );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n\n /*\n * alignment option in left panel using icons for star-rating\n */\n if (element.kind == 'star_rating') {\n //We must add this special kind of property, since it is triggered with click event\n var buttons = prop.getElementsByClassName('wptb-rating-alignment-btn');\n\n for (var i = 0; i < buttons.length; i++) {\n buttons[i].onclick = function () {\n var star_alignment = this.getAttribute('data-star_alignment'),\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.style.textAlign = star_alignment;\n\n var b = this.parentNode.getElementsByClassName('wptb-rating-alignment-btn');\n for (var i = 0; i < b.length; i++) {\n b[i].classList.remove('selected');\n }\n this.classList.add('selected');\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n /*\n * alignment option in left panel using icons for list\n */\n if (element.kind == 'list') {\n //We must add this special kind of property, since it is triggered with click event\n var buttons = prop.getElementsByClassName('wptb-list-alignment-btn');\n\n for (var i = 0; i < buttons.length; i++) {\n buttons[i].onclick = function () {\n var list_alignment = this.getAttribute('data-list_alignment'),\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\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 = list_alignment;\n }\n }\n\n var b = this.parentNode.getElementsByClassName('wptb-list-alignment-btn');\n for (var i = 0; i < b.length; i++) {\n b[i].classList.remove('selected');\n }\n this.classList.add('selected');\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n /*\n * alignment option in left panel using icons for button\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-button-alignment-btn');\n\n for (var i = 0; i < buttons.length; i++) {\n buttons[i].onclick = function () {\n var button_alignment = this.getAttribute('data-button_alignment'),\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\n var jc = '';\n if (button_alignment == 'left') {\n jc = 'start';\n } else if (button_alignment == 'right') {\n jc = 'flex-end';\n } else {\n jc = 'center';\n }\n affectedEl.getElementsByClassName('wptb-button-wrapper')[0].style.justifyContent = jc;\n\n var b = this.parentNode.getElementsByClassName('wptb-button-alignment-btn');\n for (var i = 0; i < b.length; i++) {\n b[i].classList.remove('selected');\n }\n this.classList.add('selected');\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n\n /*\n * alignment option in left panel using icons for image\n */\n if (element.kind == 'image') {\n //We must add this special kind of property, since it is triggered with click event\n var buttons = prop.getElementsByClassName('wptb-image-alignment-btn');\n\n for (var i = 0; i < buttons.length; i++) {\n buttons[i].onclick = function () {\n var image_alignment = this.getAttribute('data-image_alignment'),\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\n var image_alignment_value = '';\n if (image_alignment == 'left') {\n image_alignment_value = 'left';\n } else if (image_alignment == 'right') {\n image_alignment_value = 'right';\n } else {\n image_alignment_value = 'none';\n }\n \n affectedEl.querySelector( '.wptb-image-wrapper a' ).style.float = image_alignment_value;\n\n var b = this.parentNode.getElementsByClassName('wptb-image-alignment-btn');\n for (var i = 0; i < b.length; i++) {\n b[i].classList.remove('selected');\n }\n this.classList.add('selected');\n \n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerChange( event, ui );\n \n //console.log(event);\n WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\n },\n clear: function( event ) {\n WPTB_Helper.wpColorPickerChange( event );\n }\n });\n }\n \n if( optionControls[i].classList.contains( 'wptb-stars-count-field' ) ) {\n WPTB_Helper.numberImputSize( optionControls[i], 1, 10 );\n }\n\n if ( optionControls[i].dataset.type === 'font-size' || optionControls[i].dataset.type === 'image-size' ||\n optionControls[i].dataset.type === 'star-size' || optionControls[i].dataset.type === 'numeral-rating-size' ) {\n var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n slider.oninput = function () {\n this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n }\n }\n\n// if (optionControls[i].dataset.type === 'image-size') {\n// var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n// slider.oninput = function () {\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n// }\n// }\n// \n// if ( optionControls[i].dataset.type === 'star-size' ) {\n// var slider = optionControls[i].parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0];\n// slider.oninput = function () {\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].value = this.value;\n// this.parentNode.parentNode.getElementsByClassName('wptb-size-number')[0].onchange( event );\n// }\n// }\n\n optionControls[i].onchange = function ( event ) {\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-size-slider')[0].value = this.value;\n break;\n case 'font-size':\n affectedEl.style.fontSize = val + 'px';\n this.parentNode.parentNode.getElementsByClassName('wptb-size-slider')[0].value = this.value;\n break;\n case 'rating-alignment':\n var jc = '';\n if (this.value == 'left') {\n jc = 'start';\n } else if (this.value == 'right') {\n jc = 'right';\n } else {\n jc = 'center';\n }\n affectedEl.style.textAlign = 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-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 case 'star-size':\n let ratingStar = affectedEl.querySelectorAll('li');\n for( let i = 0; i < ratingStar.length; i++ ) {\n ratingStar[i].style.width = val + 'px';\n ratingStar[i].style.height = val + 'px';\n let span = ratingStar[i].querySelectorAll( 'span' );\n for( let j = 0; j < span.length; j++ ) {\n if( span[j].querySelector( 'svg' ) ) {\n span[j].style.width = val + 'px';\n span[j].style.height = val + 'px';\n span[j].querySelector( 'svg' ).style.width = val + 'px';\n }\n }\n }\n break;\n case 'show-number-rating':\n let wptbNumeralRatingOptionContainer = WPTB_Helper.findAncestor( this, 'wptb-star_rating-options' )\n .getElementsByClassName( 'wptb-numeral-rating-option-container' );\n \n WPTB_Helper.starRatingTextMessageChenge( affectedEl );\n \n if( wptbNumeralRatingOptionContainer.length > 0 ) {\n let wptbTextMessage = affectedEl.querySelector( '.wptb-text-message' );\n \n let val = this.checked ? 'checked' : 'unchecked';\n if( val== 'checked' ) {\n for ( let i = 0; i < wptbNumeralRatingOptionContainer.length; i++ ) {\n wptbNumeralRatingOptionContainer[i].style.display = 'block';\n }\n wptbTextMessage.parentNode.style.display = 'block';\n } else if ( val == 'unchecked' ) {\n for ( let i = 0; i < wptbNumeralRatingOptionContainer.length; i++ ) {\n wptbNumeralRatingOptionContainer[i].style.display = 'none';\n }\n wptbTextMessage.parentNode.style.display = 'none';\n }\n }\n break;\n case 'numeral-rating-size':\n let wptbTextMessageSize = affectedEl.querySelector('.wptb-text-message');\n wptbTextMessageSize.style.fontSize = val + 'px';\n wptbTextMessageSize.style.height = val + 'px';\n wptbTextMessageSize.style.lineHeight = val + 'px';\n break;\n case 'stars-count':\n let starRatings = affectedEl.querySelectorAll( 'li' );\n \n let starRatingsCount = starRatings.length;\n \n if( val > starRatingsCount ) {\n let difference = val - starRatingsCount;\n let starRatingsLast = starRatings[starRatings.length - 1];\n \n let parent = starRatingsLast.parentNode;\n for( let i = 0; i < difference; i++ ){\n let newStarRating = starRatingsLast.cloneNode( true );\n newStarRating.removeAttribute( 'class' );\n newStarRating.setAttribute( 'class', 'wptb-rating-star' );\n newStarRating.dataset.value = parseInt(starRatingsLast.dataset.value) + i + 1;\n WPTB_Helper.starRatingEventHandlersAdd( newStarRating );\n parent.appendChild( newStarRating );\n }\n } else if( val < starRatingsCount ) {\n let difference = parseInt( starRatingsCount ) - parseInt( val );\n \n if( val == 0 ) {\n difference--;\n starRatings[0].removeAttribute( 'class' );\n starRatings[0].setAttribute( 'class', 'wptb-rating-star' );\n starRatings[0].style.display = 'none';\n }\n \n let starRatingLength = starRatings.length;\n for( i = 0; i < difference; i++ ) {\n starRatings[0].parentNode.removeChild( starRatings[starRatingLength - i - 1] );\n }\n } else if( val == starRatingsCount && starRatingsCount == 1 ) {\n starRatings[0].style.display = 'inline-block';\n }\n \n WPTB_Helper.starRatingTextMessageChenge( affectedEl );\n \n break;\n }\n \n \n if( event.target.classList.contains( 'wptb-size-slider' ) || event.target.classList.contains( 'wptb-size-slider' ) ) {\n event.target.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n } else {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 star_rating: WPTB_Helper.getDragImageCustom( 'half-filled-rating-star' )\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 return;\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 let wptbListItem = e.target.parentNode;\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 2, wptbListItem );\n\n wptbActionsField.setParameters( wptbListItem );\n });\n \n ed.on( 'keyup', function( e ) {\n let wptbListItem = e.target.parentNode;\n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 2, wptbListItem );\n\n wptbActionsField.setParameters( wptbListItem );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbButtonContainer = WPTB_Helper.findAncestor( target, 'wptb-button-container' );\n \n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, wptbButtonContainer );\n\n wptbActionsField.setParameters( wptbButtonContainer );\n });\n \n ed.on( 'keyup', function(e) {\n let wptbButtonContainer = WPTB_Helper.findAncestor( target, 'wptb-button-container' );\n \n let wptbActionsField = new WPTB_ActionsField();\n\n wptbActionsField.addActionField( 1, wptbButtonContainer );\n\n wptbActionsField.setParameters( wptbButtonContainer );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-adaptive-table-checkbox' ).checked = false;\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', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-table-header-bg', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-even-row-bg', true );\n \n WPTB_Helper.wpColorPickerClear( 'wptb-odd-row-bg', true );\n \n document.getElementById( 'wptb-table-cell-slider' ).value = 15;\n document.getElementById( 'wptb-table-cell-number' ).value = 15;\n },\n elementOptionsPanelClear: function() {\n let elementOptionsGroup = document.getElementById( 'element-options-group' );\n if( elementOptionsGroup ) {\n elementOptionsGroup.innerHTML = '';\n }\n },\n wpColorPickerCheckChangeForTableStateSaving: function( event ) {\n if( event.originalEvent.type == 'external' ) {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n } else {\n let wpPickerContainer = WPTB_Helper.findAncestor( event.target, 'wp-picker-container' );\n if( wpPickerContainer ) {\n if( event.originalEvent.type == 'square' ) {\n let irisSquareHandle = wpPickerContainer.getElementsByClassName( 'iris-square-handle' );\n if( irisSquareHandle.length > 0 ) {\n irisSquareHandle = irisSquareHandle[0];\n irisSquareHandle.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n } else if( event.originalEvent.type == 'strip' ) {\n let uiSliderHandle = wpPickerContainer.getElementsByClassName( 'iris-slider-offset' );\n if( uiSliderHandle.length > 0 ) {\n uiSliderHandle = uiSliderHandle[0];\n uiSliderHandle.onmouseup = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n }\n }\n }\n }\n },\n wpColorPickerClear: function( attribute, isId ) {\n let input;\n if( isId ) {\n input = [document.getElementById( attribute )];\n input.length = 1;\n } else {\n input = document.getElementsByClassName( attribute );\n }\n for( let i = 0; i < input.length; i++ ) {\n let wpPickerContainer = WPTB_Helper.findAncestor( input[i], 'wp-picker-container' );\n if( wpPickerContainer ) {\n let parent = wpPickerContainer.parentNode;\n parent.removeChild( wpPickerContainer );\n let newInput = document.createElement( 'input' );\n if( isId ) {\n newInput.setAttribute( 'id', attribute );\n } else {\n newInput.classList.add( 'wptb-element-property', attribute );\n }\n newInput.value = \"\";\n parent.appendChild( newInput );\n }\n }\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 newElementProxy: function(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 } else if( el == 'star_rating' ) {\n return new WPTB_StarRating();\n }\n },\n wpColorPickerChange: function( event, ui ) {\n let uiColor;\n if( ui ) {\n uiColor = ui.color.toString();\n } else {\n uiColor = '';\n }\n \n let parent = WPTB_Helper.findAncestor( event.target, 'wp-picker-input-wrap' ).getElementsByClassName( 'wptb-color-picker' )[0], classe, type, ps, number;\n classe = parent.dataset.element.match(/wptb-options-(.+)-(\\d+)/i);\n type = classe[1];\n number = classe[2];\n let 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 = uiColor;\n } else {\n affectedEl.getElementsByClassName( 'wptb-button' )[0].style.backgroundColor = uiColor;\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 = uiColor;\n }\n }\n } else if( type == 'star_rating' ) {\n if ( parent.dataset.type == 'star-color' ) {\n let ratingStar = affectedEl.querySelectorAll('li');\n for( let i = 0; i < ratingStar.length; i++ ) {\n let span = ratingStar[i].getElementsByTagName( 'span' );\n for( let j = 0; j < span.length; j++ ) {\n span[j].style.fill = uiColor;\n }\n }\n } else if( parent.dataset.type == 'numeral-rating-color' ) {\n let wptbTextMessageSize = affectedEl.querySelector('.wptb-text-message');\n wptbTextMessageSize.style.color = uiColor;\n }\n\n } else {\n affectedEl.style.color = uiColor;\n }\n },\n starRatingSelectHoverSet : function( event ) {\n let starRating;\n if( ! event.target.classList.contains( 'wptb-rating-star' ) ) {\n starRating = WPTB_Helper.findAncestor( event.target, 'wptb-rating-star' );\n } else {\n starRating = event.target;\n }\n \n let onStar = parseInt( starRating.dataset.value, 10 ); // The star currently mouse on\n\n // Now highlight all the stars that's not after the current hovered star\n let children = starRating.parentNode.children;\n if( event.type == \"mouseover\" ) {\n for( let j = 0; j < children.length; j++ ) {\n if( j < onStar ) {\n if( j == onStar - 1 ) {\n if ( event.target.classList.contains( 'wptb-rating-star-left-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-hover-half' );\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n } else if( event.target.classList.contains( 'wptb-rating-star-right-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n } else {\n children[j].classList.add( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n } else {\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n }\n }\n } else if ( event.type == \"click\" ) {\n for( let j = 0; j < children.length; j++ ) {\n if( j < onStar ) {\n if( j == onStar - 1 ) {\n if ( event.target.classList.contains( 'wptb-rating-star-left-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-selected-half' );\n children[j].classList.remove( 'wptb-rating-star-selected-full' );\n } else if( event.target.classList.contains( 'wptb-rating-star-right-signal-part' ) ) {\n children[j].classList.add( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n } else {\n children[j].classList.add( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n } else {\n children[j].classList.remove( 'wptb-rating-star-selected-full' );\n children[j].classList.remove( 'wptb-rating-star-selected-half' );\n }\n }\n }\n \n },\n starRatingEventHandlersAdd: function( ratingStar ) {\n ratingStar.onmouseover = function( event ) {\n event.stopPropagation();\n WPTB_Helper.starRatingSelectHoverSet( event );\n }\n ratingStar.onmouseout = function() {\n let children = this.parentNode.children;\n for( let j = 0; j < children.length; j++ ) {\n children[j].classList.remove( 'wptb-rating-star-hover-half' );\n children[j].classList.remove( 'wptb-rating-star-hover-full' );\n }\n }\n\n /* 2. Action to perform on click */\n ratingStar.onclick = function( event ) {\n WPTB_Helper.starRatingSelectHoverSet( event );\n \n /* Rating number message */\n let wptbStarRatingContainer = WPTB_Helper.findAncestor( event.target, 'wptb-star_rating-container' );\n\n WPTB_Helper.starRatingTextMessageChenge( wptbStarRatingContainer );\n\n let wptbActionsField = new WPTB_ActionsField( 1, wptbStarRatingContainer );\n\n wptbActionsField.setParameters( wptbStarRatingContainer );\n\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n },\n numberImputSize: function ( 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 starRatingTextMessageChenge: function( starRatingContainer ) {\n let ratingNumber = starRatingContainer.getElementsByClassName( 'wptb-rating-star-selected-full' ).length;\n if( starRatingContainer.getElementsByClassName( 'wptb-rating-star-selected-half' ).length > 0 ) {\n ratingNumber = parseInt( ratingNumber ) + 0.5;\n }\n \n let wptbTextMessageCommon = starRatingContainer.querySelectorAll( 'li' ),\n wptbTextMessageCommonVal = wptbTextMessageCommon.length,\n wptbTextMessage = starRatingContainer.querySelector( '.wptb-text-message' );\n if( wptbTextMessageCommonVal == 1 && wptbTextMessageCommon[0].style.display == 'none' ) {\n wptbTextMessage.innerHTML = '';\n return;\n }\n \n wptbTextMessage.innerHTML = ratingNumber + '/' + wptbTextMessageCommonVal;\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 = '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 text: 'Use this image'\n\t\t},\n\t\tmultiple: false,\n frame: 'post'\n });\n \n let imageSetting = function( img, attachment ) {\n let imgSrc = attachment.url;\n let linkArr = imgSrc.split( ':' ),\n linkClean;\n if ( Array.isArray( linkArr ) && linkArr.length > 0 ) {\n linkClean = linkArr[linkArr.length - 1];\n }\n img.src = linkClean;\n img.height = attachment.height;\n img.width = attachment.width;\n img.style.width = '100%';\n\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\n \n // When an image is select, run a callback.\n file_frame.on( 'select', function() {\n attachment = file_frame.state().props.toJSON();\n imageSetting( img, attachment );\n });\n \n // When an image is insert, run a callback.\n file_frame.on( 'insert', function () {\n attachment = file_frame.state().get( 'selection' ).first().toJSON();\n imageSetting( img, attachment );\n });\n \n // Finally, open the modal\n if (src == undefined) {\n file_frame.open();\n file_frame.menuItemVisibility( 'gallery', 'hide' );\n file_frame.menuItemVisibility(\"playlist\", \"hide\"), \n file_frame.menuItemVisibility(\"video-playlist\", \"hide\"), \n file_frame.menuItemVisibility(\"audio-playlist\", \"hide\")\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 = 30,\n MAX_ROWS = 30;\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 console.log(event);\n console.log(this);\n WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\n },\n });\n \n function tableAdaptiveForMobile( table ) {\n let wptbAdaptiveTableCheckbox = document.getElementById( 'wptb-adaptive-table-checkbox' );\n if( table && table.dataset.wptbAdaptiveTable && table.dataset.wptbAdaptiveTable == \"1\" ) {\n wptbAdaptiveTableCheckbox.checked = true;\n } else {\n wptbAdaptiveTableCheckbox.checked = false;\n }\n }\n tableAdaptiveForMobile( table );\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 WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving( event );\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableBorderNumber = document.getElementById( 'wptb-table-border-number' );\n WPTB_Helper.numberImputSize( wptbTableBorderNumber, 1, 50 );\n \n let wptbTableInnerBorderNumber = document.getElementById( 'wptb-table-inner-border-number' );\n WPTB_Helper.numberImputSize( wptbTableInnerBorderNumber, 1, 50 );\n \n let wptbTableCellNumber = document.getElementById( 'wptb-table-cell-number' );\n WPTB_Helper.numberImputSize( wptbTableCellNumber, 1, 50 );\n \n let wptbTextfontSizeNumber = document.getElementById( 'wptb-size-number' );\n WPTB_Helper.numberImputSize( wptbTextfontSizeNumber, 1, 50 );\n \n let wptbImageWidthNumber = document.getElementById( 'wptb-size-number' );\n WPTB_Helper.numberImputSize( wptbImageWidthNumber, 2, 100 );\n \n let wptbTableColumnWidthNumber = document.getElementById( 'wptb-table-column-width-number' );\n WPTB_Helper.numberImputSize( wptbTableColumnWidthNumber, 2, 500 );\n \n let wptbTableRowHeightNumber = document.getElementById( 'wptb-table-row-height-number' );\n WPTB_Helper.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-slider').onchange = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider').onchange = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider').onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider' ).onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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-slider' ).onchange = function () {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n };\n \n document.getElementById( 'wptb-adaptive-table-checkbox' ).onchange = function() {\n if( this.checked ) {\n table.dataset.wptbAdaptiveTable = 1;\n } else {\n table.dataset.wptbAdaptiveTable = 0;\n }\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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.onclick = 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 clickOnFreeSpace();\n } \n };\n \n let wptbHeader = document.getElementsByClassName( 'wptb-header' );\n if( wptbHeader.length > 0 ) wptbHeader = wptbHeader[0];\n wptbHeader.onclick = function() {\n clickOnFreeSpace();\n }\n \n function clickOnFreeSpace() {\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 document.querySelector('.wptb-panel-left').addEventListener('click', function (event) {\n if (event.target.classList.contains('wptb-exit-options')) {\n clickOnFreeSpace();\n }\n });\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 let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 2, DOMElement );\n \n wptbActionsField.setParameters( DOMElement );\n console.log(DOMElement);\n };\n\n DOMElement.onmouseleave = function ( event ) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.leaveFromField( event, DOMElement, 2 );\n \n return false;\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 wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n \n wptbUndo.onclick = function( event ) {\n if( ! this.classList.contains( 'wptb-undoredo-disabled' ) ) {\n wptbTableStateSaveManager.tableStateGet( this.dataset.wptbUndoredo );\n let wptbUndoRedoContainer = document.getElementsByClassName( 'wptb-undo-redo-container' );\n if( wptbUndoRedoContainer.length > 0 ) {\n wptbUndoRedoContainer = wptbUndoRedoContainer[0];\n wptbUndoRedoContainer.onmouseleave = function( event ) {\n event.target.onmouseleave = '';\n WPTB_Table();\n }\n }\n }\n \n }\n }\n \n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n \n wptbRedo.onclick = function( event ) {\n if( ! this.classList.contains( 'wptb-undoredo-disabled' ) ) {\n wptbTableStateSaveManager.tableStateGet( this.dataset.wptbUndoredo );\n let wptbUndoRedoContainer = document.getElementsByClassName( 'wptb-undo-redo-container' );\n if( wptbUndoRedoContainer.length > 0 ) {\n wptbUndoRedoContainer = wptbUndoRedoContainer[0];\n wptbUndoRedoContainer.onmouseleave = function( event ) {\n event.target.onmouseleave = '';\n WPTB_Table();\n }\n }\n }\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-button-disable' ) ) {\n shortcodePopupWindow.classList.add( 'wptb-popup-show' );\n }\n }\n \n window.onbeforeunload = function(e) {\n let wptbSaveDisabled = document.getElementsByClassName( 'wptb-save-disabled' );\n if( wptbSaveDisabled.length == 0 ) {\n return true;\n } else {\n return null;\n }\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-preview-btn' )[0].onclick = function ( e ) {\n if( this.classList.contains( 'wptb-button-disable' ) ) {\n e.preventDefault();\n }\n }\n\n document.getElementsByClassName( 'wptb-save-btn' )[0].onclick = function ( event ) {\n if( ( ! event.target.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == event.target.dataset.wptbTableStateNumberSave ) {\n return;\n }\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-button-disable' );\n document.getElementById( 'wptb-embed-shortcode' ).value = '[wptb id=' + data[1] + ']';\n let wptbPreviewBtn = document.getElementsByClassName( 'wptb-preview-btn' );\n if( wptbPreviewBtn.length > 0 ) {\n wptbPreviewBtn = wptbPreviewBtn[0];\n wptbPreviewBtn.classList.remove( 'wptb-button-disable' );\n let wptbPreviewBtnHref = wptbPreviewBtn.dataset.previewHref;\n wptbPreviewBtnHref = wptbPreviewBtnHref.replace( 'empty', data[1] );\n wptbPreviewBtn.setAttribute( 'href', wptbPreviewBtnHref );\n }\n \n } else if( data[0] == 'edited' ) {\n messagingArea.innerHTML = '<div class=\"wptb-success wptb-message\">Table \"' + t + '\" was successfully updated.</div>';\n event.target.dataset.wptbTableStateNumberSave = window.wptbTableStateNumberShow;\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n }\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_StarRating = function ( DOMElementProt, countStarts ) {\n if( ! countStarts ) {\n if( ! DOMElementProt ) {\n countStarts = 5;\n } else {\n countStarts = DOMElementProt.querySelectorAll( 'li' ).length;\n }\n }\n \n let DOMElement = document.createElement('div'),\n ratingStarsBox = document.createElement( 'div' ),\n ratingStarsList = document.createElement( 'ul' ),\n successBox = document.createElement( 'div' ),\n textMessage = document.createElement( 'div' ),\n kindIndexProt = undefined,\n copy = false;\n \n DOMElement.classList.add( 'wptb-star_rating-container' );\n ratingStarsBox.classList.add( 'wptb-rating-stars-box' );\n ratingStarsList.classList.add( 'wptb-rating-stars-list' );\n successBox.classList.add( 'wptb-success-box' );\n successBox.style.display = 'none';\n textMessage.classList.add( 'wptb-text-message' );\n textMessage.style.fontSize = '25px';\n \n let filledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <polygon points=\"426.667,165.12 273.28,152.107 213.333,10.667 153.387,152.107 0,165.12 \\n\\\n 116.48,266.027 81.493,416 213.333,336.427 345.173,416 310.187,266.027\"/></svg>';\n \n let notFilledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <path d=\"M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573\\n\\\n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533L133.12,344.96l21.333-91.307l-70.827-61.44l93.44-8.107 \\n\\\n l36.267-85.973l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307L213.333,296.533z\"/></svg>';\n \n let halfFilledRatingStarHtml = '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" \\n\\\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"20px\" style=\"width: 20px;\" viewBox=\"0 0 426.667 426.667\" \\n\\\n style=\"enable-background:new 0 0 426.667 426.667;\" xml:space=\"preserve\">\\n\\\n <path d=\"M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573 \\n\\\n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533v-198.4l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307 \\n\\\n L213.333,296.533z\"/></svg>';\n \n \n for( let i = 0; i < countStarts; i++ ) {\n let ratingStar = document.createElement( 'li' );\n ratingStar.classList.add( 'wptb-rating-star' );\n ratingStar.style.width = '20px';\n let ratingStarZeroSet = '';\n if( i == 0 ) {\n ratingStarZeroSet = '<span class=\"wptb-rating-star-zero-set\"></span>';\n }\n \n ratingStar.innerHTML = '<span class=\"wptb-rating-star-left-signal-part\">' + ratingStarZeroSet + '</span><span class=\"wptb-filled-rating-star\">' + filledRatingStarHtml + '</span>'\n + '<span class=\"wptb-not-filled-rating-star\">' + notFilledRatingStarHtml + '</span>'\n + '<span class=\"wptb-half-filled-rating-star\">' + halfFilledRatingStarHtml + '</span><span class=\"wptb-rating-star-right-signal-part\"></span>';\n ratingStar.dataset.value = i + 1;\n ratingStarsList.appendChild( ratingStar );\n }\n\n successBox.appendChild( textMessage );\n ratingStarsBox.appendChild( ratingStarsList );\n ratingStarsBox.appendChild( successBox );\n DOMElement.appendChild( ratingStarsBox );\n \n \n\n \n // Creation of a new star rating 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 \n var wptbRatingStarsBox = DOMElementProt.querySelector( '.wptb-rating-stars-box' );\n if ( wptbRatingStarsBox ) {\n var wptbRatingStarsBoxAttributes = [...wptbRatingStarsBox.attributes];\n if ( wptbRatingStarsBoxAttributes.length > 0 ) {\n for( let i = 0; i < wptbRatingStarsBoxAttributes.length; i++ ) {\n if ( wptbRatingStarsBoxAttributes[i].name == 'style') {\n ratingStarsBox.setAttribute( wptbRatingStarsBoxAttributes[i].name, wptbRatingStarsBoxAttributes[i].value );\n }\n } \n }\n }\n \n let wptbRatingStarsOld = wptbRatingStarsBox.querySelectorAll( 'li' );\n let wptbRatingStars = ratingStarsList.querySelectorAll( 'li' );\n if ( wptbRatingStarsOld.length > 0 && wptbRatingStars.length > 0 ) {\n let iMax = wptbRatingStarsOld.length < countStarts ? wptbRatingStarsOld.length : countStarts;\n for( let i = 0; i < wptbRatingStarsOld.length; i++ ) {\n let wptbRatingStarsAttributes = [...wptbRatingStarsOld[i].attributes];\n if ( wptbRatingStarsAttributes.length > 0 ) {\n for( let j = 0; j < wptbRatingStarsAttributes.length; j++ ) {\n wptbRatingStars[i].setAttribute( wptbRatingStarsAttributes[j].name, wptbRatingStarsAttributes[j].value );\n } \n }\n \n let wptbRatingStarsOldSpan = wptbRatingStarsOld[i].children;\n let wptbRatingStarsSpan = wptbRatingStars[i].children;\n for( let k = 0; k < wptbRatingStarsOldSpan.length; k++ ){\n let wptbRatingStarsOldSpanAttributes = [...wptbRatingStarsOldSpan[k].attributes];\n if( wptbRatingStarsOldSpanAttributes.length > 0 ) {\n for ( let l = 0; l < wptbRatingStarsOldSpanAttributes.length; l++ ) {\n wptbRatingStarsSpan[k].setAttribute( wptbRatingStarsOldSpanAttributes[l].name, wptbRatingStarsOldSpanAttributes[l].value );\n let wptbRatingStarsOldSvg = wptbRatingStarsOldSpan[k].querySelector( 'svg' );\n if( wptbRatingStarsOldSvg ) {\n let wptbRatingStarsOldSvgStyle = wptbRatingStarsOldSvg.getAttribute( 'style' );\n wptbRatingStarsSpan[k].querySelector( 'svg' ).setAttribute( 'style', wptbRatingStarsOldSvgStyle );\n }\n }\n }\n }\n }\n }\n \n var wptbSuccessBox = wptbRatingStarsBox.querySelector( '.wptb-success-box' );\n if ( wptbSuccessBox ) {\n var wptbSuccessBoxAttributes = [...wptbSuccessBox.attributes];\n for( let i = 0; i < wptbSuccessBoxAttributes.length; i++ ) {\n if ( wptbSuccessBoxAttributes[i].name == 'style') {\n successBox.setAttribute( wptbSuccessBoxAttributes[i].name, wptbSuccessBoxAttributes[i].value );\n }\n } \n }\n \n var wptbTextMessage = wptbSuccessBox.querySelector( '.wptb-text-message' );\n if ( wptbTextMessage ) {\n textMessage.innerHTML = wptbTextMessage.innerHTML;\n var wptbTextMessageAttributes = [...wptbTextMessage.attributes];\n for( let i = 0; i < wptbTextMessageAttributes.length; i++ ) {\n if ( wptbTextMessageAttributes[i].name == 'style') {\n textMessage.setAttribute( wptbTextMessageAttributes[i].name, wptbTextMessageAttributes[i].value );\n }\n } \n }\n }\n \n this.kind = 'star_rating';\n\n this.getDOMElement = function () {\n return DOMElement;\n };\n\n applyGenericItemSettings( this, kindIndexProt, copy );\n \n return this;\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 \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 if( wptbActions[0] && wptbActions[0].parentNode ) {\n wptbActions[0].parentNode.removeChild( wptbActions[0] );\n wptbActionsLength--;\n } else {\n break;\n }\n \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 cellSettings = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ),\n tds = table.getElementsByClassName('wptb-highlighted');\n while (tds.length) {\n tds[0].classList.remove('wptb-highlighted');\n }\n cellSettings.classList.remove( 'visible' );\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 table.dataset.wptbAdaptiveTable = 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.parentNode.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.parentNode.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 let wptbAdaptiveTableChoseBlock = document.getElementsByClassName( 'wptb-adaptive-table-chose-block' );\n if( wptbAdaptiveTableChoseBlock.length > 0 ) {\n wptbAdaptiveTableChoseBlock = wptbAdaptiveTableChoseBlock[0];\n }\n table.mergingСellsHorizontally = false;\n table.mergingCellsVertically = false;\n table.dataset.reconstraction = 1;\n wptbAdaptiveTableChoseBlock.style.display = 'block';\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 wptbAdaptiveTableChoseBlock.style.display = 'none';\n table.mergingСellsHorizontally = true;\n forBreak++;\n }\n \n if( tds[i].rowSpan > 1 ) {\n table.dataset.reconstraction = 0;\n wptbAdaptiveTableChoseBlock.style.display = 'none';\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 td.getDOMElement().style.height = 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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 td.getDOMElement().style.height = 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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 td.getDOMElement().style.height = 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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 r.classList.add( 'wptb-row' );\n if (currentTable.length > 0) {\n currentTable = currentTable[0];\n \n for (var i = 0; i < maxAmountOfCells; i++) {\n td = new WPTB_Cell(mark);\n let currentTableTd = currentTable.querySelector('[data-x-index=\"' + i + '\"]');\n if( currentTableTd ) {\n let currentTdStyle = currentTableTd.getAttribute( 'style' );\n \n td.getDOMElement().setAttribute( 'style', currentTdStyle );\n td.getDOMElement().style.height = null;\n }\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\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 currentTable = currentTable[0];\n \n for (var i = 0; i < maxAmountOfCells; i++) {\n td = new WPTB_Cell(mark);\n let currentTableTd = currentTable.querySelector('[data-x-index=\"' + i + '\"]');\n if( currentTableTd ) {\n let currentTdStyle = currentTableTd.getAttribute( 'style' );\n \n td.getDOMElement().setAttribute( 'style', currentTdStyle );\n td.getDOMElement().style.height = null;\n }\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 \n undoSelect();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 \n undoSelect();\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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_TableStateSaveManager = function() {\n this.tableStateSet = () => {\n // get preview table\n let wptbPreviewTable = document.getElementsByClassName( 'wptb-preview-table' );\n if( wptbPreviewTable.length > 0 ) {\n wptbPreviewTable = wptbPreviewTable[0];\n \n // check if a global array doesn't exist with saved versions of the table \n // them create it\n if( ! window.wptbTableStateSaving ) {\n window.wptbTableStateSaving = [];\n } \n \n // remove the extra part of the array after changing the table \n // when it is showed in the not last modified version\n if( window.wptbTableStateSaving.length > window.wptbTableStateNumberShow + 1 ) {\n window.wptbTableStateSaving = window.wptbTableStateSaving.slice( 0, window.wptbTableStateNumberShow + 1 );\n }\n \n //add new state of table\n let wptbNewPreviewTable = wptbPreviewTable.cloneNode( true );\n let wptbHighlighted = wptbNewPreviewTable.getElementsByClassName( 'wptb-highlighted' );\n for( let i = 0; i < wptbHighlighted.length; i++ ) {\n wptbHighlighted[i].classList.remove( 'wptb-highlighted' );\n }\n let wptbDirectlyhovered = wptbNewPreviewTable.getElementsByClassName( 'wptb-directlyhovered' );\n for( let i = 0; i < wptbDirectlyhovered.length; i++ ) {\n wptbDirectlyhovered[i].classList.remove( 'wptb-directlyhovered' );\n }\n \n let cssForTdsWidthAutoValue = '';\n let head = document.head;\n if( head ) {\n let cssForTdsWidthAuto = head.querySelector( 'style[data-wptb-td-auto-width=\"true\"]' );\n if( cssForTdsWidthAuto ) {\n cssForTdsWidthAutoValue = cssForTdsWidthAuto.innerHTML;\n }\n }\n \n let mceContentBodys = wptbNewPreviewTable.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 = wptbNewPreviewTable.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 mceIds = wptbNewPreviewTable.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 window.wptbTableStateSaving.push( [wptbNewPreviewTable, cssForTdsWidthAutoValue] );\n \n // set new number of state which is showed now\n window.wptbTableStateNumberShow = window.wptbTableStateSaving.length - 1;\n \n // make undo arrow active when the table was changed\n if( window.wptbTableStateSaving.length > 1 ) {\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n\n wptbUndo.classList.remove( 'wptb-undoredo-disabled' );\n }\n }\n \n // make redo arrow not active when the table was changed\n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n \n wptbRedo.classList.add( 'wptb-undoredo-disabled' );\n }\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n if( ( ! wptbSaveBtn.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == wptbSaveBtn.dataset.wptbTableStateNumberSave ) {\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n } else {\n wptbSaveBtn.classList.remove( 'wptb-save-disabled' );\n }\n }\n }\n }\n \n this.tableStateGet = ( datawptbUndoredo ) => {\n if( datawptbUndoredo && window.wptbTableStateSaving && window.wptbTableStateSaving.length > 1 ) {\n \n // changes the number of the state which displays now\n if( datawptbUndoredo == 'undo' ) {\n if( window.wptbTableStateNumberShow > 0 ) {\n window.wptbTableStateNumberShow--;\n } else {\n return false;\n }\n } else if( datawptbUndoredo == 'redo' ) {\n if( window.wptbTableStateNumberShow < window.wptbTableStateSaving.length - 1 ) {\n window.wptbTableStateNumberShow++;\n } else {\n return false;\n }\n }\n \n // add or delete class \"wptb-undoredo-disabled\" for undo button\n let wptbUndo = document.getElementsByClassName( 'wptb-undo' );\n if( wptbUndo.length > 0 ) {\n wptbUndo = wptbUndo[0];\n }\n if( window.wptbTableStateNumberShow == 0 ) {\n if( wptbUndo ) {\n wptbUndo.classList.add( 'wptb-undoredo-disabled' )\n }\n } else if( window.wptbTableStateNumberShow > 0 ) {\n if( wptbUndo ) {\n wptbUndo.classList.remove( 'wptb-undoredo-disabled' )\n }\n }\n \n // add or delete class \"wptb-undoredo-disabled\" for redo button\n let wptbRedo = document.getElementsByClassName( 'wptb-redo' );\n if( wptbRedo.length > 0 ) {\n wptbRedo = wptbRedo[0];\n }\n if( window.wptbTableStateNumberShow == window.wptbTableStateSaving.length - 1 ) {\n if( wptbRedo ) {\n wptbRedo.classList.add( 'wptb-undoredo-disabled' )\n }\n } else if( window.wptbTableStateNumberShow < window.wptbTableStateSaving.length - 1 ) {\n if( wptbRedo ) {\n wptbRedo.classList.remove( 'wptb-undoredo-disabled' )\n }\n }\n \n let wptbSaveBtn = document.getElementsByClassName( 'wptb-save-btn' );\n if( wptbSaveBtn.length > 0 ) {\n wptbSaveBtn = wptbSaveBtn[0];\n if( ( ! wptbSaveBtn.dataset.wptbTableStateNumberSave && window.wptbTableStateNumberShow == 0 ) || \n window.wptbTableStateNumberShow == wptbSaveBtn.dataset.wptbTableStateNumberSave ) {\n wptbSaveBtn.classList.add( 'wptb-save-disabled' );\n } else {\n wptbSaveBtn.classList.remove( 'wptb-save-disabled' );\n }\n }\n \n // load necessary saved table state\n let wptbTableSetup = document.getElementsByClassName( 'wptb-table-setup' );\n if( wptbTableSetup.length > 0 ) {\n wptbTableSetup = wptbTableSetup[0];\n\n wptbTableSetup.innerHTML = '';\n wptbTableSetup.innerHTML = window.wptbTableStateSaving[window.wptbTableStateNumberShow][0].outerHTML;\n\n if( window.wptbTableStateSaving[window.wptbTableStateNumberShow][1] ) {\n let cssForTdsWidthAuto = document.createElement( 'style' );\n cssForTdsWidthAuto.setAttribute( 'data-wptb-td-auto-width', true );\n cssForTdsWidthAuto.innerHTML = window.wptbTableStateSaving[window.wptbTableStateNumberShow][1];\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 head.appendChild( cssForTdsWidthAuto );\n }\n }\n\n WPTB_Helper.settingsPanelClear();\n WPTB_Helper.elementOptionsPanelClear();\n WPTB_LeftPanel();\n\n let wptbLeftScrollPanelCellSetting = document.getElementById( 'wptb-left-scroll-panel-cell-settings' ); \n if( wptbLeftScrollPanelCellSetting ) {\n wptbLeftScrollPanelCellSetting.classList.remove( 'visible' );\n }\n }\n }\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 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 = WPTB_Helper.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 == 'Above 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 if( ! element.classList.contains( 'wptb-image-container' ) || element.classList.contains( 'wptb-moving-mode' ) ) {\n element.classList.remove( 'wptb-moving-mode' );\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\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 let kindIndexProtArr = kindIndexProt.split('-');\n index = kindIndexProtArr[kindIndexProtArr.length - 1];\n }\n \n node.onmouseenter = function ( event ) {\n if( event.target.classList.contains( 'wptb-moving-mode' ) ) {\n return;\n }\n \n let i, wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n \n node.classList.remove( 'wptb-ondragenter' );\n \n //wptbActionsField.addActionField( 1, node )\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 force_br_newlines : false,\n force_p_newlines : false,\n forced_root_block : '',\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 });\n \n ed.on( 'keydown', function(e) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n });\n ed.on( 'keyup', function(e) {\n let wptbActionsField = new WPTB_ActionsField();\n \n wptbActionsField.addActionField( 1, node );\n \n wptbActionsField.setParameters( node );\n \n e.target.onblur = function() {\n let wptbTableStateSaveManager = new WPTB_TableStateSaveManager();\n wptbTableStateSaveManager.tableStateSet();\n }\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 } else if( element.kind === 'list' ) {\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 \n node.onmouseleave = function ( event ) {\n let wptbActionsField = new WPTB_ActionsField();\n \n if( wptbActionsField.wptbActions && wptbActionsField.wptbActions.type != '1' ) {\n return;\n }\n \n wptbActionsField.leaveFromField( event, node, 1 );\n };\n \n let wptbActions = document.getElementsByClassName( 'wptb-actions' );\n if( wptbActions.length > 0 ) {\n wptbActions = wptbActions[0];\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 } else if( element.kind == 'star_rating' ) {\n let ratingStars = node.getElementsByClassName( 'wptb-rating-star' );\n for ( let i = 0; i < ratingStars.length; i++ ) {\n let ratingStar = ratingStars[i];\n \n \n WPTB_Helper.starRatingEventHandlersAdd( ratingStar );\n \n let ritingStarZeroSet = ratingStar.querySelector( '.wptb-rating-star-zero-set' );\n if( ritingStarZeroSet ) {\n ritingStarZeroSet.onclick = function( event ) {\n let ulStarList = WPTB_Helper.findAncestor( event.target, 'wptb-rating-stars-list' );\n if( ulStarList ) {\n let children = ulStarList.children;\n for( let i = 0; i < children.length; i++ ) {\n children[i].classList.remove( 'wptb-rating-star-selected-full' );\n children[i].classList.remove( 'wptb-rating-star-selected-half' );\n }\n }\n }\n }\n }\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
- var WPTB_ActionsField=function p(){var m=this;this.wptbActions,0!=document.getElementsByClassName("wptb-actions").length&&(this.wptbActions=document.getElementsByClassName("wptb-actions")[0]),this.addActionField=function(e,i){var t=document.getElementsByTagName("body")[0],a=document.getElementsByClassName("wptb-actions");if(0!=a.length){var n=a[0].activeElem;for(n&&n.classList.remove("wptb-directlyhovered");0!=a.length;)a[0].parentNode.removeChild(a[0])}if(1==e){var l=void 0,r=void 0,o=void 0;l=document.createElement("span"),r=document.createElement("span"),o=document.createElement("span"),(a=document.createElement("div")).classList.add("wptb-actions"),l.classList.add("dashicons","dashicons-trash","wptb-delete-action"),r.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),o.classList.add("dashicons","dashicons-move","wptb-move-action"),o.draggable=!0,a.appendChild(o),a.appendChild(r),a.appendChild(l),t.appendChild(a),a.activeElem=i,a.type=1,l.onclick=function(e){var t=e.target.parentNode.activeElem,a=t.parentNode;if(a.removeChild(t),"text"==t.kind){var n=a.parentNode;if(n.classList.contains("wptb-table-head")){var l=WPTB_Helper.findAncestor(n,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(l)}}(new p).actionsRemove(),(new WPTB_TableStateSaveManager).tableStateSet()},r.onclick=function(e){var t=void 0,a=void 0,n=e.target.parentNode.activeElem,l=n.cloneNode(!0);l.classList.remove("wptb-directlyhovered"),a=n.className.match(/wptb-element-(.+)-(\d+)/i)[1];var r=n.parentNode;if("list"==a){for(var o=[],i=n.querySelectorAll("ul li .wptb-list-item-content"),s=0;s<i.length;s++)o.push(i[s].innerHTML);t=new WPTB_List(o,l),r.insertBefore(t.getDOMElement(),n.nextSibling)}else if("text"==a)t=new WPTB_Text(l.childNodes[0].innerHTML,l),r.insertBefore(t.getDOMElement(),n.nextSibling);else if("image"==a)t=new WPTB_Image("",n),r.insertBefore(t.getDOMElement(),n.nextSibling);else if("button"==a){var d=l.childNodes[0].querySelector("p").innerHTML;t=new WPTB_Button(d,l),r.insertBefore(t.getDOMElement(),n.nextSibling)}else(a="star_rating")&&(t=new WPTB_StarRating(l),r.insertBefore(t.getDOMElement(),n.nextSibling));WPTB_innerElementSet(t.getDOMElement()),new p(1,n).setParameters(n),(new WPTB_TableStateSaveManager).tableStateSet()},o.ondragstart=function(e){var t,a,n=WPTB_Helper.dragImagesArr(),l=e.target.parentNode.activeElem;a=(t=l.className.match(/wptb-element-(.+)-(\d+)/i))[1],l.classList.add("wptb-moving-mode"),e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage(n[a],0,0),e.dataTransfer.setData("node","wptb-element-"+t[1]+"-"+t[2]),e.dataTransfer.setData("wptb-moving-mode","wptb-element-"+t[1]+"-"+t[2]),e.dataTransfer.setData("wptbElIndic-"+t[1],"wptbElIndic-"+t[1]);var r=e.target.parentNode.activeElem;if("text"==r.kind){var o=r.parentNode.parentNode;if(o.classList.contains("wptb-table-head")){var i=WPTB_Helper.findAncestor(o,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(i)}}m.actionsHide()},a.style.display="block",m.wptbActions=a}else if(2==e){var s=void 0,d=void 0;s=document.createElement("span"),d=document.createElement("span"),(a=document.createElement("span")).classList.add("wptb-actions"),s.classList.add("dashicons","dashicons-trash","wptb-delete-action"),d.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),a.append(d,s),t.appendChild(a),a.activeElem=i;var c=WPTB_Helper.findAncestor(i,"wptb-directlyhovered");c&&c.classList.remove("wptb-directlyhovered"),a.type=2,s.onclick=function(e){var t=e.target.parentNode.activeElem,a=t.parentNode;new p(4).actionsRemove(),a.removeChild(t),WPTB_Helper.listItemsRecalculateIndex(a),(new WPTB_TableStateSaveManager).tableStateSet()},d.onclick=function(e){var t=i.getBoundingClientRect(),a=t.top,n=e.target.parentNode.activeElem,l=n.querySelector(".wptb-list-item-content").innerHTML,r=new WPTB_ListItem(l,n,!0);n.parentNode.insertBefore(r.getDOMElement(),i.nextSibling),WPTB_Helper.listItemsTinyMceInit(r.getDOMElement().firstChild);var o=i.getElementsByClassName("wptb-list-item-content");(0<o.length&&(o=o[0]),setTimeout(function(){o.innerHTML=l,WPTB_Helper.listItemsRecalculateIndex(n.parentNode)},5),a!=(t=i.getBoundingClientRect()).top)&&new p(2,i).setParameters(i);(new WPTB_TableStateSaveManager).tableStateSet()},a.style.display="block",m.wptbActions=a}},this.setParameters=function(t){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&(m.wptbActions.style.display="block");var a=t.getBoundingClientRect(),n=document.getElementsByClassName("wptb-container")[0],l=function(){var e=t.getBoundingClientRect();m.wptbActions.style.top=parseFloat(e.top)-15+"px"};n.removeEventListener("scroll",l,!1),m.wptbActions.style.top=parseFloat(a.top)-15+"px",m.wptbActions.style.left=parseFloat(a.right)-parseFloat(m.wptbActions.clientWidth)+1+"px",m.wptbActions.style.display="block",t.classList.add("wptb-directlyhovered"),n.addEventListener("scroll",l,!1)},this.leaveFromField=function(e,t,a){if(e.relatedTarget&&(e.relatedTarget.classList.contains("wptb-actions")||e.relatedTarget.classList.contains("wptb-move-action")||e.relatedTarget.classList.contains("wptb-duplicate-action")||e.relatedTarget.classList.contains("wptb-delete-action")))return m.wptbActions||(m.wptbActions=document.getElementsByClassName("wptb-actions")[0]),void(m.wptbActions.onmouseleave=function(e){if(null!=e.relatedTarget&&e.relatedTarget!=m.wptbActions.activeElem&&WPTB_Helper.findAncestor(e.relatedTarget,"wptb-directlyhovered")!=m.wptbActions.activeElem&&(e.target.activeElem.classList.remove("wptb-directlyhovered"),m.wptbActions.style.display="none",2==m.wptbActions.type)){var t=new p;t.addActionField(1,e.relatedTarget.parentNode.parentNode),t.setParameters(e.relatedTarget.parentNode.parentNode)}});t.classList.remove("wptb-directlyhovered"),m.wptbActions.style.display="none",2==m.wptbActions.type&&e.relatedTarget&&"ul"==e.relatedTarget.localName&&(m.addActionField(1,e.relatedTarget.parentNode),m.setParameters(e.relatedTarget.parentNode))},this.actionsRemove=function(){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&m.wptbActions.parentNode.removeChild(m.wptbActions)},this.actionsHide=function(){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&(m.wptbActions.style.opacity=0)}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}document.addEventListener("DOMContentLoaded",function(){var e=WPTB_Helper.detectMode();if(e){var a=new XMLHttpRequest,t=ajaxurl+"?action=get_table&id="+e;a.open("GET",t,!0),a.setRequestHeader("Content-type","application/x-www-form-urlencoded"),a.onreadystatechange=function(e){if(4!=this.readyState||200!=this.status);else{var t=JSON.parse(a.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(),(new WPTB_TableStateSaveManager).tableStateSet()):document.getElementsByClassName("wptb-table-generator")[0].style.display="table"}},a.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 a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("a"),r=document.createElement("div"),o=document.createElement("p"),i=void 0,s=!1;if(a.classList.add("wptb-button-container","wptb-size-M","wptb-"),n.classList.add("wptb-button-wrapper"),r.classList.add("wptb-button"),o.innerHTML=null!=e?e:"Button Text",t){var d=t.className.match(/wptb-element-((.+-)\d+)/i);d&&Array.isArray(d)&&(i=d[1],s=!0);var c=[].concat(_toConsumableArray(t.attributes));if(0<c.length)for(var p=0;p<c.length;p++)a.setAttribute(c[p].name,c[p].value);var m=t.querySelector(".wptb-button-wrapper");if(m){var u=[].concat(_toConsumableArray(m.attributes));if(0<u.length)for(var b=0;b<u.length;b++)"style"==u[b].name&&n.setAttribute(u[b].name,u[b].value)}var g=t.querySelector("a");if(g)if(0<(v=[].concat(_toConsumableArray(g.attributes))).length)for(var w=0;w<v.length;w++)"style"!=v[w].name&&"href"!=v[w].name&&"target"!=v[w].name||l.setAttribute(v[w].name,v[w].value);var v,h=t.querySelector(".wptb-button");if(h)if(0<(v=[].concat(_toConsumableArray(h.attributes))).length)for(var y=0;y<v.length;y++)"style"==v[y].name&&r.setAttribute(v[y].name,v[y].value)}return n.appendChild(l),l.appendChild(r),r.appendChild(o),a.appendChild(n),this.kind="button",this.getDOMElement=function(){return a},applyGenericItemSettings(this,i,s),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 a=function(e){var t=i.getElementsByClassName("wptb-space-between");if(0<t.length)for(var a=0;a<t.length;a++)WPTB_Space(t[a]);s[e].getDOMElement=function(){return s[e]},WPTB_innerElementSet(s[e]);var n=s[e].className.match(/wptb-element-((.+-)\d+)/i);if(n&&Array.isArray(n)){var l=n[1].split("-");if(s[e].kind=l[0],applyGenericItemSettings(s[e],n[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])}}},n=0;n<s.length;n++)a(n);return this.getDOMElement=function(){return i},this.setCoords=function(e,t){var a=this.getDOMElement();a.dataset.yIndex=e,a.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"),a=e.getPropertyValue("padding-right"),n=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(a,10)-parseFloat(n,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(i,e){var s=void 0,d=void 0;if(0==document.getElementsByClassName("wptb-drop-handle").length){(s=document.createElement("div")).classList.add("wptb-drop-handle"),(d=document.createElement("div")).classList.add("wptb-drop-border-marker");var t=document.createElement("div"),a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("div");t.classList.add("wptb-drop-border-marker-top"),a.classList.add("wptb-drop-border-marker-right"),n.classList.add("wptb-drop-border-marker-bottom"),l.classList.add("wptb-drop-border-marker-left"),d.appendChild(t),d.appendChild(a),d.appendChild(n),d.appendChild(l);var r=document.getElementsByTagName("body");0<r.length&&(r[0].appendChild(s),r[0].appendChild(d)),s.ondragenter=function(){},s.ondragover=function(e){e.preventDefault()},s.ondragleave=function(){},s.ondrop=function(e){e.preventDefault();var t=void 0;e.dataTransfer.getData("wptbElement")?t=(t=WPTB_Helper.newElementProxy(e.dataTransfer.getData("wptbElement"))).getDOMElement():((t=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).classList.remove("wptb-moving-mode"),t.classList.remove("wptb-moving-into-same-elem"),t.wptbMovingMode=1);var a=void 0;if("Drop Here"==s.dataset.text)"td"==(i=s.getDOMParentElement()).nodeName.toLowerCase()&&(a=s.getDOMParentElement()).appendChild(t);else{var n=s.getDOMParentElement();if(a=n.parentNode,"Above Element"==s.dataset.text)a.insertBefore(t,n);else if("Below Element"==s.dataset.text){var l=n.nextSibling;a.insertBefore(t,l)}}var r=a.parentNode;if(r.classList.contains("wptb-table-head")){var o=WPTB_Helper.findAncestor(r,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(o)}(s.style.display="none",d.style.display="none",WPTB_innerElementSet(t),console.log(t),t.classList.contains("wptb-image-container")&&1!=t.wptbMovingMode)||((new WPTB_TableStateSaveManager).tableStateSet(),t.wptbMovingMode)},document.querySelector(".wptb-container").onscroll=function(){s.style.display="none",d.style.display="none"}}else s=document.getElementsByClassName("wptb-drop-handle")[0],d=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 c=e.dataTransfer.types,p=!1,m=0;m<c.length;m++){var u=c[m].match(/wptbelindic-([a-z]+)/i);if(u&&"text"!=u[1]){p=!0;break}}if(p)return}s.style.width=i.offsetWidth+"px";var b=i.offsetHeight,g=i.getBoundingClientRect(),w=parseFloat(g.left),v=void 0;if(s.style.left=w+"px",-1!=e.dataTransfer.types.indexOf("wptb-moving-mode")){var h=document.getElementsByClassName("wptb-moving-mode")[0];i==h?(s.classList.add("wptb-moving-into-same-elem"),d.classList.add("wptb-moving-into-same-elem")):(s.classList.remove("wptb-moving-into-same-elem"),d.classList.remove("wptb-moving-into-same-elem"))}if(s.getDOMParentElement=function(){return i},s.style.display="block",d.style.display="block","td"!=i.nodeName.toLowerCase()){var y=null==e.offsetY?e.layerY:e.offsetY;v=parseFloat(g.top)-parseFloat(11),s.dataset.text="Above Element",b/2<y&&(v=parseFloat(g.top)+b-1,s.dataset.text="Below Element")}else s.dataset.text="Drop Here",v=parseFloat(g.top)+b/2-5;s.style.top=v+"px",d.style.top=g.top+"px",d.style.left=g.left+"px",wptbDropBorderMarkerTop=d.querySelector(".wptb-drop-border-marker-top"),wptbDropBorderMarkerTop.style.width=parseFloat(i.offsetWidth)-parseFloat(1)+"px",wptbDropBorderMarkerRight=d.querySelector(".wptb-drop-border-marker-right"),wptbDropBorderMarkerRight.style.height=parseFloat(g.bottom)-parseFloat(g.top)-1+"px",wptbDropBorderMarkerRight.style.left=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom=d.querySelector(".wptb-drop-border-marker-bottom"),wptbDropBorderMarkerBottom.style.width=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom.style.top=wptbDropBorderMarkerRight.style.height,wptbDropBorderMarkerLeft=d.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,a){var n,l=e.getDOMElement();prop=document.querySelector(".wptb-"+e.kind+"-options-prototype").cloneNode(!0),prop.classList.remove("wptb-"+e.kind+"-options-prototype"),n="wptb-options-"+e.kind+"-"+t;for(var r=prop.getElementsByClassName("wptb-element-property"),o=0;o<r.length;o++)r[o].dataset.element=n;if(prop.classList.add(n),document.getElementById("element-options-group").appendChild(prop),a)if("button"==e.kind){var i=document.getElementsByClassName("wptb-element-"+a)[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 w=0;w<b.length;w++)b[w].value==g&&(b[w].selected=!0)}if(0<d.length){var v=d[0].getAttribute("href"),h=d[0].getAttribute("target"),y=d[0].getAttribute("id"),f=prop.querySelector('input[data-type="button-link"]'),B=prop.querySelector('input[data-type="button-link-target"]'),S=B.getAttribute("id"),T=B.parentNode.getElementsByTagName("label")[0],E=prop.querySelector('input[data-type="button-id"]');S=S+"-"+a.split("-")[1],B.setAttribute("id",S),T.setAttribute("for",S),f.value=v,h&&"_blank"==h&&(B.checked=!0),E.value=y}if(c){var C=c[0].style.color,x=c[0].style.backgroundColor,_=prop.querySelector('input[data-type="button-text-color"]'),N=prop.querySelector('input[data-type="button-color"]');_.value=WPTB_Helper.rgbToHex(C),N.value=WPTB_Helper.rgbToHex(x)}}else if("image"==e.kind){var I=document.getElementsByClassName("wptb-element-"+a);if(0<I.length){var P=I[0].getElementsByTagName("a");if(0<P.length){var A=P[0];if(A){var k=void 0;k="none"==A.style.float?"center":A.style.float;for(var L=prop.querySelector('select[data-type="image-alignment"]').getElementsByTagName("option"),W=0;W<L.length;W++)L[W].value==k&&(L[W].selected=!0);A.onclick=function(e){e.preventDefault()};var M=A.getAttribute("href"),H=prop.querySelector('input[data-type="image-link"]');M&&(H.value=M);var q=A.getAttribute("target"),D=prop.querySelector('input[data-type="image-link-target"]'),F=D.getAttribute("id"),O=D.parentNode.getElementsByTagName("label")[0];F=F+"-"+a.split("-")[1],D.setAttribute("id",F),O.setAttribute("for",F),q&&"_blank"==q&&(D.checked=!0);var z=A.style.width;if(z){var R=prop.querySelector('input[type="range"][data-type="image-size"]'),j=prop.querySelector('input[type="number"][data-type="image-size"]');R.value=parseInt(z),j.value=parseInt(z)}var Q=A.getElementsByTagName("img");if(0<Q.length){var V=Q[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-"+a);if(0<G.length){var J=G[0].style.fontSize,U=G[0].style.color,Y=prop.querySelector('input[type="range"][data-type="font-size"]'),X=prop.querySelector('input[type="number"][data-type="font-size"]'),K=prop.querySelector('input[type="text"][data-type="color"]');Y.value=parseInt(J)?parseInt(J):10,X.value=parseInt(J)?parseInt(J):10,K.value=WPTB_Helper.rgbToHex(U)}}else if("list"==e.kind){var $=document.getElementsByClassName("wptb-element-"+a);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 ae=prop.querySelector('select[data-type="list-class"]');if(ae){ae.value="unordered";for(var ne=ae.parentNode.nextSibling,le=0;le<10&&"1"!=ne.nodeType;le++)ne=ne.nextSibling;if(ne){var re=ne.getAttribute("id");ne.setAttribute("id",re+"-"+a),ne.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"]'),we=Math.max(pe,me,ue);pe==we?ge.value="left":me==we?ge.value="center":ue==we&&(ge.value="right")}}}else if("star_rating"==e.kind){var ve=document.getElementsByClassName("wptb-element-"+a);if(0<ve.length){var he=(ve=ve[0]).querySelector("li");if(he){var ye=he.style.width,fe=prop.querySelector('input[type="range"][data-type="star-size"]'),Be=prop.querySelector('input[type="number"][data-type="star-size"]');if(fe.value=parseInt(ye)?parseInt(ye):10,Be.value=parseInt(ye)?parseInt(ye):10,he.querySelector("span")){var Se=prop.querySelector('input[type="text"][data-type="star-color"]'),Te=he.querySelector("span").style.fill;Se.value=WPTB_Helper.rgbToHex(Te)}}var Ee=ve.querySelectorAll("li"),Ce=prop.querySelector('input[type="number"][data-type="stars-count"]');1==Ee.length&&"none"==Ee[0].style.display?Ce.value=0:Ce.value=Ee.length;var xe=ve.style.textAlign,_e=prop.querySelector('select[data-type="rating-alignment"]').getElementsByTagName("option"),Ne=void 0;"start"==xe?Ne="left":"center"!=xe&&xe?"right"==xe&&(Ne="right"):Ne="center";for(var Ie=0;Ie<_e.length;Ie++)_e[Ie].value==Ne&&(_e[Ie].selected=!0);var Pe=ve.querySelector(".wptb-success-box");if(Pe){var Ae=prop.querySelector('input[type="checkbox"][data-type="show-number-rating"]');if("block"==Pe.style.display){Ae.checked=!0;for(var ke=prop.getElementsByClassName("wptb-numeral-rating-option-container"),Le=0;Le<ke.length;Le++)ke[Le].style.display="block"}else Ae.checked=!1;var We=Pe.querySelector(".wptb-text-message");if(We){var Me=We.style.fontSize,He=We.style.color,qe=prop.querySelector('input[type="range"][data-type="numeral-rating-size"]'),De=prop.querySelector('input[type="number"][data-type="numeral-rating-size"]'),Fe=prop.querySelector('input[type="text"][data-type="numeral-rating-color"]');qe.value=parseInt(Me)?parseInt(Me):10,De.value=parseInt(Me)?parseInt(Me):10,Fe.value=WPTB_Helper.rgbToHex(He)}}}}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 a=document.getElementById("element-options-group").childNodes,n=0;n<a.length;n++)a[n].style&&(a[n].style.display="none");document.querySelector(t).style.display="block"},"button"==e.kind){var Oe=prop.getElementsByClassName("wptb-btn-size-btn");for(o=0;o<Oe.length;o++)Oe[o].onclick=function(){var e=this.innerHTML,t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l=document.getElementsByClassName("wptb-element-"+a+"-"+n)[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"),(new WPTB_TableStateSaveManager).tableStateSet()}}var ze=prop.getElementsByClassName("wptb-element-property");for(o=0;o<ze.length;o++){if(ze[o].classList.contains("wptb-color-picker")&&jQuery(ze[o]).wpColorPicker({change:function(e,t){WPTB_Helper.wpColorPickerChange(e,t),WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(e)},clear:function(e){WPTB_Helper.wpColorPickerChange(e)}}),ze[o].classList.contains("wptb-stars-count-field")&&WPTB_Helper.numberImputSize(ze[o],1,10),"font-size"===ze[o].dataset.type||"image-size"===ze[o].dataset.type||"star-size"===ze[o].dataset.type||"numeral-rating-size"===ze[o].dataset.type)ze[o].parentNode.parentNode.getElementsByClassName("wptb-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-size-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-size-number")[0].onchange(event)};ze[o].onchange=function(e){var t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l=document.getElementsByClassName("wptb-element-"+a+"-"+n)[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-size-slider")[0].value=this.value;break;case"image-alignment":var o="";o="center"==this.value?"none":this.value,l.querySelector(".wptb-image-wrapper a").style.float=o;break;case"font-size":l.style.fontSize=r+"px",this.parentNode.parentNode.getElementsByClassName("wptb-size-slider")[0].value=this.value;break;case"button-alignment":var i="";i="left"==this.value?"start":"right"==this.value?"flex-end":"center",l.getElementsByClassName("wptb-button-wrapper")[0].style.justifyContent=i;break;case"rating-alignment":i="";i="left"==this.value?"start":"right"==this.value?"right":"center",l.style.textAlign=i;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 s=l.querySelectorAll("li"),d=0;d<s.length;d++){var c=s[d].querySelector("p");c&&(c.style.textAlign=this.value)}break;case"list-class":var p=e.target.parentNode.parentNode.querySelector("[data-type=list-style-type]").parentNode,m=p.parentNode;if("unordered"==r){p.style.display="flex",m.querySelector(".wptb-list-icon-select-label").style.display="flex";var u=l.querySelectorAll("li");for(d=0;d<u.length;d++){var b=u[d].querySelector("p");b.removeAttribute("class"),b.classList.add("wptb-list-style-type-disc")}m.querySelector("[data-type=list-style-type]").value="disc"}else{p.style.display="none",m.querySelector(".wptb-list-icon-select-label").style.display="none";var g=l.querySelectorAll("li");for(d=0;d<g.length;d++){g[d].querySelector("p").removeAttribute("class")}}break;case"list-style-type":for(g=l.querySelectorAll("li"),d=0;d<g.length;d++){var w=g[d].querySelector("p");w.removeAttribute("class"),w.classList.add("wptb-list-style-type-"+r.toLowerCase())}break;case"star-size":for(var v=l.querySelectorAll("li"),h=0;h<v.length;h++){v[h].style.width=r+"px",v[h].style.height=r+"px";for(var y=v[h].querySelectorAll("span"),f=0;f<y.length;f++)y[f].querySelector("svg")&&(y[f].style.width=r+"px",y[f].style.height=r+"px",y[f].querySelector("svg").style.width=r+"px")}break;case"show-number-rating":var B=WPTB_Helper.findAncestor(this,"wptb-star_rating-options").getElementsByClassName("wptb-numeral-rating-option-container");if(WPTB_Helper.starRatingTextMessageChenge(l),0<B.length){var S=l.querySelector(".wptb-text-message"),T=this.checked?"checked":"unchecked";if("checked"==T){for(var E=0;E<B.length;E++)B[E].style.display="block";S.parentNode.style.display="block"}else if("unchecked"==T){for(var C=0;C<B.length;C++)B[C].style.display="none";S.parentNode.style.display="none"}}break;case"numeral-rating-size":var x=l.querySelector(".wptb-text-message");x.style.fontSize=r+"px",x.style.height=r+"px",x.style.lineHeight=r+"px";break;case"stars-count":var _=l.querySelectorAll("li"),N=_.length;if(N<r)for(var I=r-N,P=_[_.length-1],A=P.parentNode,k=0;k<I;k++){var L=P.cloneNode(!0);L.removeAttribute("class"),L.setAttribute("class","wptb-rating-star"),L.dataset.value=parseInt(P.dataset.value)+k+1,WPTB_Helper.starRatingEventHandlersAdd(L),A.appendChild(L)}else if(r<N){var W=parseInt(N)-parseInt(r);0==r&&(W--,_[0].removeAttribute("class"),_[0].setAttribute("class","wptb-rating-star"),_[0].style.display="none");var M=_.length;for(d=0;d<W;d++)_[0].parentNode.removeChild(_[M-d-1])}else r==N&&1==N&&(_[0].style.display="inline-block");WPTB_Helper.starRatingTextMessageChenge(l)}e.target.classList.contains("wptb-size-slider")||e.target.classList.contains("wptb-size-slider")?e.target.onmouseup=function(){(new WPTB_TableStateSaveManager).tableStateSet()}:(new WPTB_TableStateSaveManager).tableStateSet()}}},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,a=document.createElement("img");return a.src=t+"/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/"+e+".png",a},dragImagesArr:function(){return{text:WPTB_Helper.getDragImageCustom("text"),image:WPTB_Helper.getDragImageCustom("image"),button:WPTB_Helper.getDragImageCustom("button"),list:WPTB_Helper.getDragImageCustom("list"),star_rating:WPTB_Helper.getDragImageCustom("half-filled-rating-star")}},listItemsRecalculateIndex:function(e){var t=e.querySelectorAll("p");if(0<t.length)for(var a=0;a<t.length;a++)t[a].dataset.listStyleTypeIndex=Number(a)+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 a=e.target.innerHTML,n=new WPTB_ListItem(a,t,!0);return t.parentNode.insertBefore(n.getDOMElement(),t),WPTB_Helper.listItemsTinyMceInit(n.getDOMElement().firstChild),e.target.querySelector("p").innerText="New List Item",void WPTB_Helper.listItemsRecalculateIndex(t.parentNode)}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")}}var o=e.target.parentNode,i=new WPTB_ActionsField;i.addActionField(2,o),i.setParameters(o)}),e.on("keyup",function(e){var t=e.target.parentNode,a=new WPTB_ActionsField;a.addActionField(2,t),a.setParameters(t),e.target.onblur=function(){(new WPTB_TableStateSaveManager).tableStateSet()}})},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(n){tinyMCE.init({target:n,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();var t=WPTB_Helper.findAncestor(n,"wptb-button-container"),a=new WPTB_ActionsField;a.addActionField(1,t),a.setParameters(t)}),e.on("keyup",function(e){var t=WPTB_Helper.findAncestor(n,"wptb-button-container"),a=new WPTB_ActionsField;a.addActionField(1,t),a.setParameters(t),e.target.onblur=function(){(new WPTB_TableStateSaveManager).tableStateSet()}})},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("/"),a=void 0;return Array.isArray(t)&&0<t.length&&(a=t[t.length-1]),document.location.protocol+"//"+a}return""},dataTitleColumnSet:function(e){for(var t=e.rows,a=t[0],n=getComputedStyle(a),l=a.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,n.backgroundColor,m];break}}r[l[o].dataset.xIndex]||(r[l[o].dataset.xIndex]=["","","",n.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-adaptive-table-checkbox").checked=!1,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",!0),WPTB_Helper.wpColorPickerClear("wptb-table-header-bg",!0),WPTB_Helper.wpColorPickerClear("wptb-even-row-bg",!0),WPTB_Helper.wpColorPickerClear("wptb-odd-row-bg",!0),document.getElementById("wptb-table-cell-slider").value=15,document.getElementById("wptb-table-cell-number").value=15},elementOptionsPanelClear:function(){var e=document.getElementById("element-options-group");e&&(e.innerHTML="")},wpColorPickerCheckChangeForTableStateSaving:function(e){if("external"==e.originalEvent.type){(new WPTB_TableStateSaveManager).tableStateSet()}else{var t=WPTB_Helper.findAncestor(e.target,"wp-picker-container");if(t)if("square"==e.originalEvent.type){var a=t.getElementsByClassName("iris-square-handle");0<a.length&&((a=a[0]).onmouseup=function(){(new WPTB_TableStateSaveManager).tableStateSet()})}else if("strip"==e.originalEvent.type){var n=t.getElementsByClassName("iris-slider-offset");0<n.length&&((n=n[0]).onmouseup=function(){(new WPTB_TableStateSaveManager).tableStateSet()})}}},wpColorPickerClear:function(e,t){var a=void 0;t?(a=[document.getElementById(e)]).length=1:a=document.getElementsByClassName(e);for(var n=0;n<a.length;n++){var l=WPTB_Helper.findAncestor(a[n],"wp-picker-container");if(l){var r=l.parentNode;r.removeChild(l);var o=document.createElement("input");t?o.setAttribute("id",e):o.classList.add("wptb-element-property",e),o.value="",r.appendChild(o)}}},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 a=t.dataset.xIndex,n=e.querySelectorAll('[data-x-index="'+a+'"]'),l=t.getCellDimensions().width,r=0;r<n.length;r++)l>n[r].getCellDimensions().width&&(l=n[r].getCellDimensions().width);return l},getRowHeight:function(e,t){for(var a=t.dataset.yIndex,n=e.querySelectorAll('[data-y-index="'+a+'"]'),l=t.getCellDimensions().height,r=0;r<n.length;r++)l>n[r].getCellDimensions().height&&(l=n[r].getCellDimensions().height);return l},newElementProxy:function(e){return"list"==e?new WPTB_List:"image"==e?new WPTB_Image:"text"==e?new WPTB_Text:"button"==e?new WPTB_Button:"star_rating"==e?new WPTB_StarRating:void 0},wpColorPickerChange:function(e,t){var a=void 0;a=t?t.color.toString():"";var n,l,r,o=WPTB_Helper.findAncestor(e.target,"wp-picker-input-wrap").getElementsByClassName("wptb-color-picker")[0];l=(n=o.dataset.element.match(/wptb-options-(.+)-(\d+)/i))[1],r=n[2];var i=document.getElementsByClassName("wptb-element-"+l+"-"+r)[0];if("button"==l)"button-text-color"==o.dataset.type?i.getElementsByClassName("wptb-button")[0].style.color=a:i.getElementsByClassName("wptb-button")[0].style.backgroundColor=a;else if("list"==l){var s=i.querySelectorAll("p");if(0<s.length)for(var d=0;d<s.length;d++)s[d].style.color=a}else if("star_rating"==l){if("star-color"==o.dataset.type)for(var c=i.querySelectorAll("li"),p=0;p<c.length;p++)for(var m=c[p].getElementsByTagName("span"),u=0;u<m.length;u++)m[u].style.fill=a;else if("numeral-rating-color"==o.dataset.type){i.querySelector(".wptb-text-message").style.color=a}}else i.style.color=a},starRatingSelectHoverSet:function(e){var t=void 0;t=e.target.classList.contains("wptb-rating-star")?e.target:WPTB_Helper.findAncestor(e.target,"wptb-rating-star");var a=parseInt(t.dataset.value,10),n=t.parentNode.children;if("mouseover"==e.type)for(var l=0;l<n.length;l++)l<a?l==a-1?e.target.classList.contains("wptb-rating-star-left-signal-part")?(n[l].classList.add("wptb-rating-star-hover-half"),n[l].classList.remove("wptb-rating-star-hover-full")):e.target.classList.contains("wptb-rating-star-right-signal-part")&&(n[l].classList.add("wptb-rating-star-hover-full"),n[l].classList.remove("wptb-rating-star-hover-half")):(n[l].classList.add("wptb-rating-star-hover-full"),n[l].classList.remove("wptb-rating-star-hover-half")):(n[l].classList.remove("wptb-rating-star-hover-full"),n[l].classList.remove("wptb-rating-star-hover-half"));else if("click"==e.type)for(var r=0;r<n.length;r++)r<a?r==a-1?e.target.classList.contains("wptb-rating-star-left-signal-part")?(n[r].classList.add("wptb-rating-star-selected-half"),n[r].classList.remove("wptb-rating-star-selected-full")):e.target.classList.contains("wptb-rating-star-right-signal-part")&&(n[r].classList.add("wptb-rating-star-selected-full"),n[r].classList.remove("wptb-rating-star-selected-half")):(n[r].classList.add("wptb-rating-star-selected-full"),n[r].classList.remove("wptb-rating-star-selected-half")):(n[r].classList.remove("wptb-rating-star-selected-full"),n[r].classList.remove("wptb-rating-star-selected-half"))},starRatingEventHandlersAdd:function(e){e.onmouseover=function(e){e.stopPropagation(),WPTB_Helper.starRatingSelectHoverSet(e)},e.onmouseout=function(){for(var e=this.parentNode.children,t=0;t<e.length;t++)e[t].classList.remove("wptb-rating-star-hover-half"),e[t].classList.remove("wptb-rating-star-hover-full")},e.onclick=function(e){WPTB_Helper.starRatingSelectHoverSet(e);var t=WPTB_Helper.findAncestor(e.target,"wptb-star_rating-container");WPTB_Helper.starRatingTextMessageChenge(t),new WPTB_ActionsField(1,t).setParameters(t),(new WPTB_TableStateSaveManager).tableStateSet()}},numberImputSize:function(e,t,a){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),a<e&&(this.value=a)}},starRatingTextMessageChenge:function(e){var t=e.getElementsByClassName("wptb-rating-star-selected-full").length;0<e.getElementsByClassName("wptb-rating-star-selected-half").length&&(t=parseInt(t)+.5);var a=e.querySelectorAll("li"),n=a.length,l=e.querySelector(".wptb-text-message");1!=n||"none"!=a[0].style.display?l.innerHTML=t+"/"+n:l.innerHTML=""}},WPTB_Image=function(e,t){var a=void 0,n=void 0,l=void 0,r=!1;if(null==t){a=document.createElement("div"),n=document.createElement("div");var o=document.createElement("a"),i=document.createElement("img");o.style.display="block",o.appendChild(i),a.classList.add("wptb-image-container"),n.classList.add("wptb-image-wrapper"),n.appendChild(o),a.appendChild(n),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();var e=attachment.url.split(":"),t=void 0;Array.isArray(e)&&0<e.length&&(t=e[e.length-1]),i.src=t,i.height=attachment.height,i.width=attachment.width,i.style.width="100%",(new WPTB_TableStateSaveManager).tableStateSet()}),null==e?file_frame.open():i.src=e}else{(a=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 a},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<30&&columnsInput.value++},rowsDecrementButton.onclick=function(){1<rowsInput.value&&rowsInput.value--},rowsIncrementButton.onclick=function(){rowsInput.value<30&&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),(new WPTB_TableStateSaveManager).tableStateSet()}},WPTB_LeftPanel=function(){var e,t,a,n,r=document.getElementsByClassName("wptb-preview-table")[0],l=document.getElementsByClassName("wptb-element");function o(e,t){if(!(3<t)&&r){var a=r.getElementsByTagName("tr");if(a.length>t){var n=a[t].style.backgroundColor,l=document.getElementById(e);l&&n&&(l.value=WPTB_Helper.rgbToHex(n))}}}function i(e){for(var t=r.getElementsByTagName("td"),a=0;a<t.length;a++)t[a].style.borderWidth=document.querySelector("#wptb-table-inner-border-number").value+"px",t[a].style.borderStyle="solid"}function s(e){for(var t=r.getElementsByTagName("td"),a=0;a<t.length;a++)t[a].style.padding=e+"px"}function d(e){r.style.borderWidth=e+"px",r.style.borderStyle="solid"}o("wptb-even-row-bg",1),jQuery("#wptb-even-row-bg").wpColorPicker({change:function(e,t){for(var a=r.getElementsByTagName("tr"),n=1;n<a.length;n+=2)a[n].style.backgroundColor=t.color.toString();console.log(e),console.log(this),WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(e)},clear:function(){for(var e=r.getElementsByTagName("tr"),t=1;t<e.length;t+=2){e[t].style.backgroundColor="";for(var a=e[t].getElementsByTagName("td"),n=0;n<a.length;n++)a[n].style.backgroundColor=""}(new WPTB_TableStateSaveManager).tableStateSet()}}),o("wptb-odd-row-bg",2),jQuery("#wptb-odd-row-bg").wpColorPicker({change:function(e,t){for(var a=r.getElementsByTagName("tr"),n=2;n<a.length;n+=2)a[n].style.backgroundColor=t.color.toString();WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(e)},clear:function(){for(var e=r.getElementsByTagName("tr"),t=2;t<e.length;t+=2){e[t].style.backgroundColor="";for(var a=e[t].getElementsByTagName("td"),n=0;n<a.length;n++)a[n].style.backgroundColor=""}(new WPTB_TableStateSaveManager).tableStateSet()}}),o("wptb-table-header-bg",0),jQuery("#wptb-table-header-bg").wpColorPicker({change:function(e,t){r.getElementsByTagName("tr")[0].style.backgroundColor=t.color.toString(),(new WPTB_TableStateSaveManager).tableStateSet()},clear:function(){var e=r.getElementsByTagName("tr")[0];e.style.backgroundColor="";for(var t=e.getElementsByTagName("td"),a=0;a<t.length;a++)t[a].style.backgroundColor="";WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(event)}}),e=r,t=document.getElementById("wptb-adaptive-table-checkbox"),e&&e.dataset.wptbAdaptiveTable&&"1"==e.dataset.wptbAdaptiveTable?t.checked=!0:t.checked=!1,a=r,n=document.getElementById("wptb-top-row-as-header"),a&&a.classList.contains("wptb-table-preview-head")?n.checked=!0:n.checked=!1,function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].style.borderColor;if(t){var a=document.getElementById("wptb-table-border-color");a&&(a.value=WPTB_Helper.rgbToHex(t))}var n=e[0].style.borderWidth;if(n){var l=document.getElementById("wptb-table-border-slider"),r=document.getElementById("wptb-table-border-number");l&&(l.value=parseInt(n)),r&&(r.value=parseInt(n))}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}(n&&0<parseInt(n)||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 a=r.getElementsByTagName("td");r.style.border=document.querySelector("#wptb-table-border-number").value+"px solid "+t.color.toString();for(var n=0;n<a.length;n++){var l=document.querySelector("#wptb-table-inner-border-number").value;document.getElementById("wptb-inner-border-check").checked&&(a[n].style.border=(0!=l?l:1)+"px solid "+t.color.toString())}WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(e)},clear:function(){var e=r.getElementsByTagName("td");r.style.borderColor="";for(var t=0;t<e.length;t++)e[t].style.borderColor="";(new WPTB_TableStateSaveManager).tableStateSet()}}),function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){var t=e[0].querySelector("td");if(t){var a=t.style.padding;if(a){var n=document.getElementById("wptb-table-cell-slider"),l=document.getElementById("wptb-table-cell-number");n&&(n.value=parseInt(a)),l&&(l.value=parseInt(a))}}}}();var c=document.getElementById("wptb-table-border-number");WPTB_Helper.numberImputSize(c,1,50);var p=document.getElementById("wptb-table-inner-border-number");WPTB_Helper.numberImputSize(p,1,50);var m=document.getElementById("wptb-table-cell-number");WPTB_Helper.numberImputSize(m,1,50);var u=document.getElementById("wptb-size-number");WPTB_Helper.numberImputSize(u,1,50);var b=document.getElementById("wptb-size-number");WPTB_Helper.numberImputSize(b,2,100);var g=document.getElementById("wptb-table-column-width-number");WPTB_Helper.numberImputSize(g,2,500);var w=document.getElementById("wptb-table-row-height-number");WPTB_Helper.numberImputSize(w,2,200),document.getElementById("wptb-table-cell-slider").oninput=function(){document.getElementById("wptb-table-cell-number").value=this.value,s(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-cell-slider").onchange=function(){(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-cell-number").onchange=function(){document.getElementById("wptb-table-cell-slider").value=this.value,s(this.value),r.tdDefaultWidth(),(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-border-slider").oninput=function(){document.getElementById("wptb-table-border-number").value=this.value,d(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-slider").onchange=function(){(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-border-number").onchange=function(){document.getElementById("wptb-table-border-slider").value=this.value,d(this.value),r.tdDefaultWidth(),(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-inner-border-slider").oninput=function(){document.getElementById("wptb-table-inner-border-number").value=this.value,i(this.value),r.tdDefaultWidth()},document.getElementById("wptb-table-inner-border-slider").onchange=function(){(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-inner-border-number").onchange=function(){document.getElementById("wptb-table-inner-border-slider").value=this.value,i(this.value),r.tdDefaultWidth(),(new WPTB_TableStateSaveManager).tableStateSet()},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 a=document.querySelector("#wptb-table-inner-border-slider").value+"px",n=document.getElementsByClassName("wptb-preview-table");if(0<n.length)if("checked"==e){document.getElementById("wptb-apply-inner-border").style.marginBottom="0px";for(var l=n[0].getElementsByTagName("td"),r=0;r<l.length;r++)l[r].style.border=a+" solid "+t;document.getElementById("wptb-apply-inner-border").classList.add("visible")}else for(document.getElementById("wptb-apply-inner-border").classList.remove("visible"),l=n[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,a=document.getElementById("wptb-table-border-color-set-area");a.style.display="unchecked"==e&&0==t?"none":"",(new WPTB_TableStateSaveManager).tableStateSet()}},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-slider").onchange=function(){(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-column-width-number").onchange=function(){document.getElementById("wptb-table-column-width-slider").value=this.value,r.addColumnWidth(this.value),(new WPTB_TableStateSaveManager).tableStateSet()},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 a=r.querySelector(".wptb-highlighted"),n=WPTB_Helper.getColumnWidth(r,a);document.getElementById("wptb-table-column-width-number").value=n,document.getElementById("wptb-table-column-width-slider").value=n}(new WPTB_TableStateSaveManager).tableStateSet()},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-slider").onchange=function(){(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-table-row-height-number").onchange=function(){document.getElementById("wptb-table-row-height-slider").value=this.value,r.addRowHeight(this.value),(new WPTB_TableStateSaveManager).tableStateSet()},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 a=r.querySelector(".wptb-highlighted"),n=WPTB_Helper.getRowHeight(r,a);document.getElementById("wptb-table-row-height-number").value=n,document.getElementById("wptb-table-row-height-slider").value=n}(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementById("wptb-adaptive-table-checkbox").onchange=function(){this.checked?r.dataset.wptbAdaptiveTable=1:r.dataset.wptbAdaptiveTable=0,(new WPTB_TableStateSaveManager).tableStateSet()},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 a=e.rows;e.classList.remove("wptb-table-preview-head"),a[0].classList.remove("wptb-table-head");for(var n=1;n<a.length;n++)for(var l=a[n].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),(new WPTB_TableStateSaveManager).tableStateSet()};for(var v=0;v<l.length;v++)l[v].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].onclick=function(e){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")||y()};var h=document.getElementsByClassName("wptb-header");function y(){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 e=document.getElementById("wpcd_fixed_toolbar");e.hasAttribute("data-toolbar-active-id")&&document.getElementById(e.getAttribute("data-toolbar-active-id")).classList.remove("toolbar-active")}0<h.length&&(h=h[0]),h.onclick=function(){y()},document.querySelector(".wptb-panel-left").addEventListener("click",function(e){e.target.classList.contains("wptb-exit-options")&&y()})},WPTB_List=function(e,t){var a,n=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");a=new WPTB_ListItem(e[d],s,!0),n.appendChild(a.getDOMElement())}}else for(var d=0;d<3;d++)a=new WPTB_ListItem("<p>List Item "+(d+1)+"</p>"),n.appendChild(a.getDOMElement());return l.appendChild(n),this.getDOMElement=function(){return l},applyGenericItemSettings(this,r,o),WPTB_Helper.listItemsRecalculateIndex(n),this},WPTB_ListItem=function(e,t,a){var n=void 0;if(null==t||t&&a){null==e&&(e="New List Item");var l=document.createElement("li");if((o=document.createElement("div")).classList.add("wptb-list-item-content"),t){var r=t.getAttribute("style");r&&l.setAttribute("style",r)}l.appendChild(o),o.innerHTML=e,o.onkeyup=window.listItemKeyListener,n=!0}else{var o;(o=(l=t).getElementsByClassName("wptb-list-item-content")[0]).onkeyup=window.listItemKeyListener,n=!1}if(l.onmouseenter=function(e){var t=new WPTB_ActionsField;t.addActionField(2,l),t.setParameters(l),console.log(l)},l.onmouseleave=function(e){return(new WPTB_ActionsField).leaveFromField(e,l,2),!1},this.getDOMElement=function(){return l},n)return this},MultipleSelect=function(){var l=[],a=!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");a=!0},this.deactivateMultipleSelectMode=function(){a=!1},this.isActivated=function(){return a},this.pushSelectedCell=function(e){a&&(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,a=1e3,n=l.length-1;0<=n;n--)t>=l[n].dataset.xIndex&&a>=l[n].dataset.yIndex&&(e=l[n],t=l[n].dataset.xIndex,a=l[n].dataset.yIndex);return e},this.getLast=function(){for(var e,t=-1,a=-1,n=l.length-1;0<=n;n--)t<=l[n].dataset.xIndex&&a<=l[n].dataset.yIndex&&(e=l[n],t=l[n].dataset.xIndex,a=l[n].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,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}var WPTB_Parser=function(e){var t=document.createElement("div");t.innerHTML=e;for(var a=t.children[0],n=[].concat(_toConsumableArray(a.querySelectorAll(".wptb-column-title-mobile-container"))),l=0;l<n.length;l++){n[l].parentNode.removeChild(n[l])}for(var r=a.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 a},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 a=e[0];if(t=document.createElement(a),1 in e&&Array.isArray(e[1]))for(var n=e[1],l=0;l<n.length;l++)Array.isArray(n[l])&&t.setAttribute(n[l][0],n[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"!=a.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 a=new WPTB_TableStateSaveManager,n=document.getElementsByClassName("wptb-undo");0<n.length&&((n=n[0]).onclick=function(e){if(!this.classList.contains("wptb-undoredo-disabled")){a.tableStateGet(this.dataset.wptbUndoredo);var t=document.getElementsByClassName("wptb-undo-redo-container");0<t.length&&((t=t[0]).onmouseleave=function(e){e.target.onmouseleave="",WPTB_Table()})}});var l=document.getElementsByClassName("wptb-redo");0<l.length&&((l=l[0]).onclick=function(e){if(!this.classList.contains("wptb-undoredo-disabled")){a.tableStateGet(this.dataset.wptbUndoredo);var t=document.getElementsByClassName("wptb-undo-redo-container");0<t.length&&((t=t[0]).onmouseleave=function(e){e.target.onmouseleave="",WPTB_Table()})}});var r=document.getElementsByClassName("wptb-popup-window-modal")[0];document.getElementsByClassName("wptb-embed-btn")[0].onclick=function(){this.classList.contains("wptb-button-disable")||r.classList.add("wptb-popup-show")},window.onbeforeunload=function(e){return 0==document.getElementsByClassName("wptb-save-disabled").length||null},document.getElementsByClassName("wptb-popup-dark-area")[0].onclick=function(){r.classList.remove("wptb-popup-show")},document.getElementsByClassName("wptb-popup-window-close-icon")[0].onclick=function(){r.classList.remove("wptb-popup-show")},document.getElementsByClassName("wptb-preview-btn")[0].onclick=function(e){this.classList.contains("wptb-button-disable")&&e.preventDefault()},document.getElementsByClassName("wptb-save-btn")[0].onclick=function(r){if((r.target.dataset.wptbTableStateNumberSave||0!=window.wptbTableStateNumberShow)&&window.wptbTableStateNumberShow!=r.target.dataset.wptbTableStateNumberSave){var e=document.querySelector(".wptb-edit-bar");if(e&&e.classList.contains("visible"))document.getElementsByClassName("wptb-preview-table")[0].toggleTableEditMode();var o=new XMLHttpRequest,t=(wptb_admin_object?wptb_admin_object.ajaxurl:ajaxurl)+"?action=save_table",i=document.getElementById("wptb-setup-name").value.trim(),s=void 0,a=document.getElementsByClassName("wptb-preview-table");if(a=0<a.length?(a=WPTB_Stringifier(a[0])).outerHTML:"",""===i||""===a){var n="";return""===i&&(n+="You must assign a name to the table before saving it.</br>"),""===a&&(n+="Table wasn't created"),(s=document.getElementById("wptb-messaging-area")).innerHTML='<div class="wptb-error wptb-message">Error: '+n+"</div>",s.classList.add("wptb-warning"),void setTimeout(function(){s.removeChild(s.firstChild)},4e3)}var l={title:i,content:a,security_code:wptb_admin_object.security_code};((rs=WPTB_Helper.detectMode())||(rs=document.wptbId))&&(l.id=rs),l=JSON.stringify(l),o.open("POST",t,!0),o.setRequestHeader("Content-type","application/json; charset=utf-8"),o.onreadystatechange=function(e){if(4==this.readyState&&200==this.status){var t=JSON.parse(o.responseText);if(s=document.getElementById("wptb-messaging-area"),"saved"==t[0]){document.wptbId=t[1],s.innerHTML='<div class="wptb-success wptb-message">Table "'+i+'" was successfully saved.</div>',document.getElementsByClassName("wptb-embed-btn")[0].classList.remove("wptb-button-disable"),document.getElementById("wptb-embed-shortcode").value="[wptb id="+t[1]+"]";var a=document.getElementsByClassName("wptb-preview-btn");if(0<a.length){(a=a[0]).classList.remove("wptb-button-disable");var n=a.dataset.previewHref;n=n.replace("empty",t[1]),a.setAttribute("href",n)}}else if("edited"==t[0]){s.innerHTML='<div class="wptb-success wptb-message">Table "'+i+'" was successfully updated.</div>',r.target.dataset.wptbTableStateNumberSave=window.wptbTableStateNumberShow;var l=document.getElementsByClassName("wptb-save-btn");0<l.length&&(l=l[0]).classList.add("wptb-save-disabled")}else s.innerHTML='<div class="wptb-error wptb-message">Safety problems</div>';s.classList.add("wptb-success"),setTimeout(function(){s.removeChild(s.firstChild)},4e3)}},o.send(l)}}},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,a,n,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")),a=(t=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).nextSibling,n=t.parentNode,null!=a&&n.removeChild(a),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};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}var WPTB_StarRating=function(e,t){t||(t=e?e.querySelectorAll("li").length:5);var a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("ul"),r=document.createElement("div"),o=document.createElement("div"),i=void 0,s=!1;a.classList.add("wptb-star_rating-container"),n.classList.add("wptb-rating-stars-box"),l.classList.add("wptb-rating-stars-list"),r.classList.add("wptb-success-box"),r.style.display="none",o.classList.add("wptb-text-message"),o.style.fontSize="25px";for(var d=0;d<t;d++){var c=document.createElement("li");c.classList.add("wptb-rating-star"),c.style.width="20px";var p="";0==d&&(p='<span class="wptb-rating-star-zero-set"></span>'),c.innerHTML='<span class="wptb-rating-star-left-signal-part">'+p+'</span><span class="wptb-filled-rating-star"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" \n xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="20px" style="width: 20px;" viewBox="0 0 426.667 426.667" \n style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve">\n <polygon points="426.667,165.12 273.28,152.107 213.333,10.667 153.387,152.107 0,165.12 \n 116.48,266.027 81.493,416 213.333,336.427 345.173,416 310.187,266.027"/></svg></span><span class="wptb-not-filled-rating-star"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" \n xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="20px" style="width: 20px;" viewBox="0 0 426.667 426.667" \n style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve">\n <path d="M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573\n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533L133.12,344.96l21.333-91.307l-70.827-61.44l93.44-8.107 \n l36.267-85.973l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307L213.333,296.533z"/></svg></span><span class="wptb-half-filled-rating-star"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" \n xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="20px" style="width: 20px;" viewBox="0 0 426.667 426.667" \n style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve">\n <path d="M426.667,165.12L273.28,151.893L213.333,10.667l-59.947,141.44L0,165.12l116.48,100.907L81.493,416l131.84-79.573 \n L345.173,416L310.4,266.027L426.667,165.12z M213.333,296.533v-198.4l36.48,86.187l93.44,8.107l-70.827,61.44l21.333,91.307 \n L213.333,296.533z"/></svg></span><span class="wptb-rating-star-right-signal-part"></span>',c.dataset.value=d+1,l.appendChild(c)}if(r.appendChild(o),n.appendChild(l),n.appendChild(r),a.appendChild(n),e){var m=e.className.match(/wptb-element-((.+-)\d+)/i);m&&Array.isArray(m)&&(i=m[1],s=!0);var u=e.querySelector(".wptb-rating-stars-box");if(u){var b=[].concat(_toConsumableArray(u.attributes));if(0<b.length)for(var g=0;g<b.length;g++)"style"==b[g].name&&n.setAttribute(b[g].name,b[g].value)}var w=u.querySelectorAll("li"),v=l.querySelectorAll("li");if(0<w.length&&0<v.length){w.length<t&&w.length;for(var h=0;h<w.length;h++){var y=[].concat(_toConsumableArray(w[h].attributes));if(0<y.length)for(var f=0;f<y.length;f++)v[h].setAttribute(y[f].name,y[f].value);for(var B=w[h].children,S=v[h].children,T=0;T<B.length;T++){var E=[].concat(_toConsumableArray(B[T].attributes));if(0<E.length)for(var C=0;C<E.length;C++){S[T].setAttribute(E[C].name,E[C].value);var x=B[T].querySelector("svg");if(x){var _=x.getAttribute("style");S[T].querySelector("svg").setAttribute("style",_)}}}}}var N=u.querySelector(".wptb-success-box");if(N)for(var I=[].concat(_toConsumableArray(N.attributes)),P=0;P<I.length;P++)"style"==I[P].name&&r.setAttribute(I[P].name,I[P].value);var A=N.querySelector(".wptb-text-message");if(A){o.innerHTML=A.innerHTML;for(var k=[].concat(_toConsumableArray(A.attributes)),L=0;L<k.length;L++)"style"==k[L].name&&o.setAttribute(k[L].name,k[L].value)}}return this.kind="star_rating",this.getDOMElement=function(){return a},applyGenericItemSettings(this,i,s),this},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 a=t.getElementsByTagName("td");if(0<a.length)for(var n=0;n<a.length;n++){e.querySelector("wptb-table-preview-head")&&a[n].removeAttribute("data-x-index"),a[n].removeAttribute("data-y-index"),a[n].removeAttribute("draggable"),a[n].classList.remove("wptb-droppable");var l=a[n].getElementsByClassName("wptb-ph-element");if(0<l.length)for(var r=0;r<l.length;r++){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 w=l[r].querySelectorAll(".wptb-actions"),v=w.length;0<v&&w[0]&&w[0].parentNode;)w[0].parentNode.removeChild(w[0]),v--}if(a[n].hasAttribute("data-wptb-title-column")){var h=document.createElement("div"),y=document.createElement("div");h.classList.add("wptb-column-title-mobile-container"),y.classList.add("wptb-column-title-mobile"),y.dataset.wptbTitleColumn=a[n].dataset.wptbTitleColumn,y.setAttribute("style","font-size:"+a[n].dataset.wptbTitleColumnFontSize+"; \n color:"+a[n].dataset.wptbTitleColumnColor+"; background-color:"+a[n].dataset.wptbTitleBackgroundColor+"; text-align:"+a[n].dataset.wptbTitleAlign+";"),y.style.padding=a[n].style.padding,0==a[n].children.length&&a[n].classList.add("wptb-column-title-mobile-not-elements"),h.appendChild(y),a[n].insertBefore(h,a[n].firstChild)}}return t}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}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=[],a=void 0,n=!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()?(a=e.childNodes,n=!0):a=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<a.length)for(var s=0;s<a.length;s++){var d=WPTB_Stringifier(a[s]);Array.isArray(d)||n?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 P,a,n,v,l=document.getElementsByClassName("wptb-settings-items"),f=document.getElementsByClassName("wptb-table-setup")[0],B=function(e){var t,a=this.rowSpan,n=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=E(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<a;p++)for(var m=0;m<n;m++)array[d+p][c+m]=0}else{this.classList.add("wptb-highlighted");for(p=0;p<a;p++)for(m=0;m<n;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"),w=document.getElementById("wptb-table-column-width-auto-fixed"),v=u.style.width;if(v)b.value=parseFloat(v,10),g.value=parseFloat(v,10),w.checked=!0;else if(u.dataset.wptbFixedWidth)b.value=u.dataset.wptbFixedWidth,g.value=u.dataset.wptbFixedWidth,w.checked=!0;else{var h=WPTB_Helper.getColumnWidth(P,u);b.value=h,g.value=h,w.checked=!1}var y=document.getElementById("wptb-table-row-height-slider"),f=document.getElementById("wptb-table-row-height-number"),B=document.getElementById("wptb-table-row-height-auto-fixed"),S=u.style.height;if(S)y.value=parseFloat(S,10),f.value=parseFloat(S,10),B.checked=!0;else if(u.dataset.wptbFixedHeight)y.value=u.dataset.wptbFixedHeight,f.value=u.dataset.wptbFixedHeight,B.checked=!0;else{var T=WPTB_Helper.getRowHeight(P,u);y.value=T,f.value=T,B.checked=!1}}i.classList.add("visible")}else{for(p=0;p<o.length;p++)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")}}},S=function(e){for(var t=0;t<e.length;t++){for(var a=0;a<e[t].length;a++)" "+e[t][a];"\n"}P.isSquare(e)},T=function(){for(var e=document.getElementsByClassName("wptb-no-cell-action"),t=document.getElementsByClassName("wptb-single-action"),a=document.getElementsByClassName("wptb-multiple-select-action"),n=document.getElementById("wptb-left-scroll-panel-cell-settings"),l=P.getElementsByClassName("wptb-highlighted");l.length;)l[0].classList.remove("wptb-highlighted");n.classList.remove("visible");for(var r=0;r<array.length;r++)for(var o=0;o<array[r].length;o++)array[r][o]=0;for(r=0;r<a.length;r++)a[r].classList.remove("visible"),a[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")},E=function(e){for(var t=[],a=0;a<v;a++)t[a]=0;for(a=0;a<P.rows.length;a++)for(var n=P.rows[a].getElementsByTagName("td"),l=cellPointer=0;l<v;l+=stepsToMove)if(stepsToMove=1,t[l])t[l]--;else{var r=n[cellPointer++];if(r==e)return[a,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");(P=document.createElement("table")).classList.add("wptb-preview-table"),P.dataset.reconstraction=1,P.dataset.wptbAdaptiveTable=1;for(r=0;r<t;r++){(a=P.insertRow(-1)).classList.add("wptb-row");for(var g=0;g<e;g++)(n=new WPTB_Cell(B)).setCoords(r,g),a.appendChild(n.getDOMElement())}}else{var o=document.getElementsByClassName("wptb-preview-table");if(0<o.length){var i=(P=o[0]).getElementsByTagName("td");if(0<i.length)for(var s=0;s<i.length;s++)WPTB_Cell(B,i[s])}}P.toggleTableEditMode=function(){var e=document.getElementsByClassName("wptb-edit-bar"),t=document.getElementById("wptb-cell_mode_background"),a=document.getElementById("wptb-left-scroll-panel-curtain"),n=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"),a.classList.remove("visible"),n.classList.remove("visible"),l.parentNode.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"),a.classList.add("visible"),l.parentNode.classList.add("wptb-preview-table-manage-cells")},P.recalculateIndexes=function(e){for(var t=this.getElementsByTagName("tr"),a=void 0,n=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],a=t[i].getElementsByTagName("td"),null==r[i]&&(r[i]=[]);for(var s=0,d=0;d<a.length;d++){if(null!=r[i][d])for(var c=0;c<100;c++){if(null==r[i][s]){r[i][s]=a[d],a[d].dataset.xIndex=s;break}s++}else r[i][d]=a[d],a[d].dataset.xIndex=s;if(a[d].dataset.yIndex=i,1<a[d].colSpan)for(var p=1;p<a[d].colSpan;p++)s++,r[i][s]="tdDummy";if(1<a[d].rowSpan)for(var m=1;m<a[d].rowSpan;m++){null==r[i+m]&&(r[i+m]=[]);for(var u=0;u<a[d].colSpan;u++)r[i+m][s-a[d].colSpan+1+u]="tdDummy"}s++,0==i&&(l=s)}n<d&&(n=d)}this.columns=n,this.maxCols=l},P.addColumnWidth=function(m,u){var e=P.getElementsByClassName("wptb-highlighted");if(0<e.length){for(var t=0;t<e.length;t++){var a=e[t].dataset.xIndex;a&&function e(t,a){for(var n=P.rows,l=!1,r=[],o=0;o<n.length;o++)for(var i=n[o].children,s=0;s<i.length;s++){var d=i[s];if(d.dataset.xIndex==t){if(m)if(d.colSpan==a){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!=n.length-1||l||e(t,a+1);else if(u)d.style.width=null,d.removeAttribute("data-wptb-fixed-width");else if(d.dataset.wptbFixedWidth)d.colSpan==a&&(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}}}(a,1)}P.tdDefaultWidth()}},P.tdDefaultWidth=function(){for(var e,t=P.rows,a=0,n=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"),w=b.getPropertyValue("padding-right");i=parseFloat(g,10)+parseFloat(w,10);var v=b.getPropertyValue("border-left-width"),h=b.getPropertyValue("border-right-width");s=parseFloat(v,10)+parseFloat(h,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 y=0;y<r.length;y++)r[y]&&(a+=r[y]);for(var f=0,B=0;B<o.length;B++)o[B]&&(n+=o[B],f++);var S=window.getComputedStyle(P,null),T=S.getPropertyValue("border-left-width"),E=S.getPropertyValue("border-right-width"),C=parseFloat(T,10)+parseFloat(E,10);e=a+n+C,P.dataset.wptbTableTdsSumMaxWidth=e,f?(P.dataset.wptbCellsWidthAutoCount=f,P.mergingСellsHorizontally?P.dataset.wptbFixedWidthSize=a-C:P.removeAttribute("data-wptb-fixed-width-size")):(P.removeAttribute("data-wptb-fixed-width-size"),P.removeAttribute("data-wptb-cells-width-auto-count"));var x=!1,_=void 0;e<l?f?(P.style.minWidth="100%",P.mergingСellsHorizontally?(_=(_=(l-a-C)/f)-i-s,x=!(P.style.width=null)):P.style.width="100%"):(P.style.width=null,P.style.minWidth=null,P.style.maxWidth=e+"px"):(P.style.maxWidth=null,P.style.minWidth=e+"px",_="100",x=!(P.style.width=null));var N=document.head;if(N){var I=N.querySelector('style[data-wptb-td-auto-width="true"]');I&&N.removeChild(I)}x&&((d=document.createElement("style")).setAttribute("data-wptb-td-auto-width",!0),d.innerHTML="[data-wptb-css-td-auto-width=true]{width:"+_+"px}",N&&N.appendChild(d))},P.addRowHeight=function(m,u){var e=P.getElementsByClassName("wptb-highlighted");if(0<e.length)for(var t=0;t<e.length;t++){var a=e[t].dataset.yIndex;a&&function e(t,a){for(var n=P.rows,l=!1,r=[],o=0;o<n.length;o++)for(var i=n[o].children,s=0;s<i.length;s++){var d=i[s];if(d.dataset.yIndex==t)if(m){if(d.rowSpan==a){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,a+1)}else if(u)d.style.height=null,d.removeAttribute("data-wptb-fixed-heidht");else if(d.dataset.wptbFixedHeight)(d.rowSpan=a)&&(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)}}(a,1)}},P.reconstraction=function(){var e=P.getElementsByTagName("td"),t=document.getElementsByClassName("wptb-adaptive-table-chose-block");0<t.length&&(t=t[0]),P.mergingСellsHorizontally=!1,P.mergingCellsVertically=!1,P.dataset.reconstraction=1,t.style.display="block";for(var a=0,n=0;n<e.length&&(1<e[n].colSpan&&(P.dataset.reconstraction=0,t.style.display="none",P.mergingСellsHorizontally=!0,a++),1<e[n].rowSpan&&(P.dataset.reconstraction=0,t.style.display="none",P.mergingCellsVertically=!0,a++),2!=a);n++);},P.addColumnEnd=function(){var e=void 0,t=document.getElementsByClassName("wptb-preview-table"),a=void 0,n=void 0;0<t.length&&(a=t[0].querySelector("td")),a&&(n=a.getAttribute("style"));for(var l=0;l<P.rows.length;l++)e=new WPTB_Cell(B),n&&(e.getDOMElement().setAttribute("style",n),e.getDOMElement().style.width=null),P.rows[l].appendChild(e.getDOMElement()),array[l].push(0);v++,P.recalculateIndexes(),P.tdDefaultWidth(),P.addRowHeight(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.addColumnStart=function(){var e=void 0,t=void 0,a=document.getElementsByClassName("wptb-preview-table"),n=void 0,l=void 0;0<a.length&&(n=a[0].querySelector("td")),n&&(l=n.getAttribute("style"));for(var r=0;r<P.rows.length;r++)e=new WPTB_Cell(B),l&&(e.getDOMElement().setAttribute("style",l),e.getDOMElement().style.width=null),(t=P.rows[r].getElementsByTagName("td")[0])?P.rows[r].insertBefore(e.getDOMElement(),t):P.rows[r].appendChild(e.getDOMElement()),array[r].push(0);v++,P.recalculateIndexes(),P.tdDefaultWidth(),P.addRowHeight(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.addColumnAfter=function(e){var t=P.rows,a=void 0,n=void 0,l=document.querySelector(".wptb-highlighted"),r=l.getAttribute("style"),o=null!=e&&"number"==typeof e?e:E(l)[1];if(v-o-l.colSpan+1==1)P.addColumnEnd();else{for(var i=!1,s=void 0,d=void 0,c=void 0,p=[],m=void 0,u=0;u<v;u++)p.push(0);for(u=0;u<t.length;u++){a=0,n=t[u].getElementsByTagName("td"),i=!1;for(var b=0;b<v;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(),n[0]);break}if(0<p[b])o==b&&(i=!0);else if(1<(m=n[a++]).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 w=0;w<v;w++)0<p[w]&&p[w]--}for(u=0;u<array.length;u++)array[u].push(0);v++,S(array),P.recalculateIndexes(),P.addColumnWidth(),P.addRowHeight(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()}},P.addColumnBefore=function(){var e=document.querySelector(".wptb-highlighted"),t=E(e)[1];0===t?P.addColumnStart():P.addColumnAfter(t-1)},P.addRowToTheEnd=function(){var e,t=P.insertRow(-1),a=void 0,n=document.getElementsByClassName("wptb-preview-table"),l=void 0,r=void 0;t.classList.add("wptb-row"),0<n.length&&(l=n[0].querySelector("td")),l&&(r=l.getAttribute("style"));for(var o=0;o<v;o++)a=new WPTB_Cell(B),r&&a.getDOMElement().setAttribute("style",r),t.appendChild(a.getDOMElement());e=Array.from(array[0]),array.push(e),S(array),P.recalculateIndexes(),P.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.addRowToTheStart=function(){var e,t=P.insertRow(0),a=void 0,n=document.getElementsByClassName("wptb-preview-table"),l=void 0,r=void 0;t.classList.add("wptb-row"),0<n.length&&(l=n[0].querySelector("td")),l&&(r=l.getAttribute("style"));for(var o=0;o<v;o++)a=new WPTB_Cell(B),r&&a.getDOMElement().setAttribute("style",r),t.appendChild(a.getDOMElement());e=Array.from(array[0]),array.push(e),S(array),P.recalculateIndexes(),P.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.addRowBefore=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),a=E(e)[0],n=void 0,l=a-1;0<=l;l--){var r=P.rows[l].children,o=r.length;if(0<o)for(var i=0;i<o;i++)if(1==r[i].rowSpan){a=l,n=!0;break}if(n)break}0===a?P.addRowToTheStart():P.addRowAfter(a,t)},P.addRowAfter=function(e,t){var a,n=void 0;if(null!=e&&"number"==typeof e||null!=t)n=e;else{var l=document.querySelector(".wptb-highlighted");t=l.getAttribute("style"),n=(e=E(l)[0])+l.rowSpan-1}var r=0;if(n<P.rows.length-1){for(var o=0;o<=n;o++){var i=P.rows[o].children,s=i.length;if(0<s)for(var d=0;d<s;d++){n<i[d].rowSpan-1+o&&i[d].rowSpan++}}var c=P.rows[n+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=P.insertRow(n+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())}a=Array.from(array[0]),array.push(a),S(array),P.recalculateIndexes(),P.addColumnWidth(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.isSquare=function(e){for(var t,a,n=-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<n||-1==n)&&(n=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=n;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-n+1)*(a=o-l+1)===i&&[t,a]},P.mergeCells=function(){for(var e=P.isSquare(array),t=e[0],a=e[1],n=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++)n.appendChild(r[c]);n.colSpan=a,n.rowSpan=t,P.recalculateIndexes(),P.reconstraction();var p=n.style.width,m=n.dataset.wptbFixedWidth;p?P.addColumnWidth(parseFloat(p,10)):m?P.addColumnWidth():P.addColumnWidth(!1,!0);var u=n.style.height,b=n.dataset.wptbFixedHeight;u?P.addRowHeight(parseFloat(u,10)):b?P.addRowHeight():P.addRowHeight(!1,!0),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.splitCell=function(){var e=document.getElementsByClassName("wptb-highlighted")[0],t=e.rowSpan,a=e.colSpan,n=e.getAttribute("style"),l=E(e)[0],r=P.rows[l],o=e.dataset.xIndex;e.rowSpan=1;for(var i=e.colSpan=1;i<a;i++){var s=new WPTB_Cell(B);s.getDOMElement().setAttribute("style",n),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=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<a;g++){var w=new WPTB_Cell(B);w.getDOMElement().setAttribute("style",n),null!=c?p.insertBefore(w.getDOMElement(),c):p.appendChild(w.getDOMElement())}}P.recalculateIndexes(),P.reconstraction(),P.addColumnWidth(),P.addRowHeight(),WPTB_Helper.dataTitleColumnSet(P),T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.findRowspannedCells=function(e){var t,a=[];if(actualPoints=function(e){for(var t=P.rows[e].getElementsByTagName("td"),a=0,n=0;n<t.length;n++)a+=t[n].colSpan;return a}(e),actualPoints===v)return[];t=v-actualPoints;for(var n=e-1;0<=n&&t;n--){var l=P.rows[n].getElementsByTagName("td");for(n=0;n<l.length;n++)1<l[n].rowSpan&&(a.push(l[n]),t-=l[n].colSpan)}return a},P.addLackingCells=function(){for(var e=[],t=0;t<P.rows.length;t++)e.push(0);for(t=0;t<P.rows.length;t++)for(var a=P.rows[t].getElementsByTagName("td"),n=0;n<a.length;n++)if(1<a[n].rowSpan)for(var l=1;l<a[n].rowSpan;l++)e[t+l]++;for(t=0;t<P.rows.length;t++){a=P.rows[t].getElementsByTagName("td");var r=0;for(n=0;n<a.length;n++)r+=a[n].colSpan;r+=e[t],difference=v-r;for(n=0;n<difference;n++){var o=new WPTB_Cell(B);P.rows[t].appendChild(o.getDOMElement())}}},P.deleteRow=function(){var e=document.querySelector(".wptb-highlighted"),t=e.getAttribute("style"),a=e.rowSpan,n=E(e)[0],l=void 0;null==a&&(a=1);for(var r=0;r<a;r++){var o=P.rows[n].children,i=P.rows[n+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 w=P.rows;if(0<w.length)for(var v=0;v<n;v++){var h=w[v].children;if(0<h.length)for(var y=0;y<h.length;y++)h[y].rowSpan-1>=n-v&&h[y].rowSpan--}l=Array.from(array[0]),array.pop(l),S(array),P.getElementsByTagName("tbody")[0].removeChild(P.rows[n]),0==P.rows.length&&(P.toggleTableEditMode(),f.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),P.recalculateIndexes(),WPTB_Helper.dataTitleColumnSet(P)}T(),(new WPTB_TableStateSaveManager).tableStateSet()},P.deleteColumn=function(){for(var e=document.querySelector(".wptb-highlighted"),t=e.dataset.xIndex,a=e.colSpan,n=0;n<a;n++){for(var l=0;l<P.rows.length;l++){var r=P.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--:P.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<P.rows.length;s++)null!=array[s]&&array[s].pop();v--,0==P.querySelectorAll("td").length&&(P.toggleTableEditMode(),f.innerHTML="",WPTB_Helper.settingsPanelClear(),document.getElementsByClassName("wptb-table-generator")[0].style.display="table"),P.recalculateIndexes(),P.tdDefaultWidth(),WPTB_Helper.dataTitleColumnSet(P)}T(),(new WPTB_TableStateSaveManager).tableStateSet()},document.getElementsByClassName("wptb-table-generator")[0].style.display="none",array=function(){for(var e=[],t=[],a=0;a<P.rows.length;a++){for(var n=P.rows[a].getElementsByTagName("td"),l=0,r=0;r<n.length;r++)l+=n[r].colSpan;e.push(l)}v=Math.max.apply(null,e);var o=P.rows.length;for(a=0;a<o;a++)for(t[a]=[],r=0;r<v;r++)t[a].push(0);return S(t),t}(),T(),S(array),f.appendChild(P),P.recalculateIndexes(!0),P.reconstraction(),P.tdDefaultWidth(),f.onresize=function(){P.tdDefaultWidth()},WPTB_LeftPanel()},WPTB_TableStateSaveManager=function(){this.tableStateSet=function(){var e=document.getElementsByClassName("wptb-preview-table");if(0<e.length){e=e[0],window.wptbTableStateSaving||(window.wptbTableStateSaving=[]),window.wptbTableStateSaving.length>window.wptbTableStateNumberShow+1&&(window.wptbTableStateSaving=window.wptbTableStateSaving.slice(0,window.wptbTableStateNumberShow+1));for(var t=e.cloneNode(!0),a=t.getElementsByClassName("wptb-highlighted"),n=0;n<a.length;n++)a[n].classList.remove("wptb-highlighted");for(var l=t.getElementsByClassName("wptb-directlyhovered"),r=0;r<l.length;r++)l[r].classList.remove("wptb-directlyhovered");var o="",i=document.head;if(i){var s=i.querySelector('style[data-wptb-td-auto-width="true"]');s&&(o=s.innerHTML)}var d=t.querySelectorAll(".mce-content-body");if(0<d.length)for(var c=0;c<d.length;c++)d[c].classList.remove("mce-content-body");var p=t.querySelectorAll("[data-mce-style]");if(0<p.length)for(var m=0;m<p.length;m++)p[m].removeAttribute("data-mce-style");var u=t.querySelectorAll("[id^=mce_]");if(0<u.length)for(var b=0;b<u.length;b++)u[b].removeAttribute("id");if(window.wptbTableStateSaving.push([t,o]),window.wptbTableStateNumberShow=window.wptbTableStateSaving.length-1,1<window.wptbTableStateSaving.length){var g=document.getElementsByClassName("wptb-undo");0<g.length&&(g=g[0]).classList.remove("wptb-undoredo-disabled")}var w=document.getElementsByClassName("wptb-redo");0<w.length&&(w=w[0]).classList.add("wptb-undoredo-disabled");var v=document.getElementsByClassName("wptb-save-btn");0<v.length&&(!(v=v[0]).dataset.wptbTableStateNumberSave&&0==window.wptbTableStateNumberShow||window.wptbTableStateNumberShow==v.dataset.wptbTableStateNumberSave?v.classList.add("wptb-save-disabled"):v.classList.remove("wptb-save-disabled"))}},this.tableStateGet=function(e){if(e&&window.wptbTableStateSaving&&1<window.wptbTableStateSaving.length){if("undo"==e){if(!(0<window.wptbTableStateNumberShow))return!1;window.wptbTableStateNumberShow--}else if("redo"==e){if(!(window.wptbTableStateNumberShow<window.wptbTableStateSaving.length-1))return!1;window.wptbTableStateNumberShow++}var t=document.getElementsByClassName("wptb-undo");0<t.length&&(t=t[0]),0==window.wptbTableStateNumberShow?t&&t.classList.add("wptb-undoredo-disabled"):0<window.wptbTableStateNumberShow&&t&&t.classList.remove("wptb-undoredo-disabled");var a=document.getElementsByClassName("wptb-redo");0<a.length&&(a=a[0]),window.wptbTableStateNumberShow==window.wptbTableStateSaving.length-1?a&&a.classList.add("wptb-undoredo-disabled"):window.wptbTableStateNumberShow<window.wptbTableStateSaving.length-1&&a&&a.classList.remove("wptb-undoredo-disabled");var n=document.getElementsByClassName("wptb-save-btn");0<n.length&&(!(n=n[0]).dataset.wptbTableStateNumberSave&&0==window.wptbTableStateNumberShow||window.wptbTableStateNumberShow==n.dataset.wptbTableStateNumberSave?n.classList.add("wptb-save-disabled"):n.classList.remove("wptb-save-disabled"));var l=document.getElementsByClassName("wptb-table-setup");if(0<l.length){if((l=l[0]).innerHTML="",l.innerHTML=window.wptbTableStateSaving[window.wptbTableStateNumberShow][0].outerHTML,window.wptbTableStateSaving[window.wptbTableStateNumberShow][1]){var r=document.createElement("style");r.setAttribute("data-wptb-td-auto-width",!0),r.innerHTML=window.wptbTableStateSaving[window.wptbTableStateNumberShow][1];var o=document.head;if(o){var i=o.querySelector('style[data-wptb-td-auto-width="true"]');i&&o.removeChild(i),o.appendChild(r)}}WPTB_Helper.settingsPanelClear(),WPTB_Helper.elementOptionsPanelClear(),WPTB_LeftPanel();var s=document.getElementById("wptb-left-scroll-panel-cell-settings");s&&s.classList.remove("visible")}}}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}var WPTB_Text=function(e,t){var a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("p"),r=void 0,o=!1;if(a.classList.add("wptb-text-container"),l.innerHTML=null!=e?e:"Text",n.appendChild(l),a.appendChild(n),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++)a.setAttribute(s[d].name,s[d].value)}return this.kind="text",this.getDOMElement=function(){return a},applyGenericItemSettings(this,r,o),this},WPTB_innerElementSet=function c(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,a=void 0;if(e.preventDefault(),e.stopPropagation(),e.dataTransfer.getData("wptbElement")||e.dataTransfer.getData("node")){var n=void 0,l=void 0;if(0<document.getElementsByClassName("wptb-drop-handle").length&&(n=document.getElementsByClassName("wptb-drop-handle")[0]),0<document.getElementsByClassName("wptb-drop-border-marker").length&&(l=document.getElementsByClassName("wptb-drop-border-marker")[0]),t=e.dataTransfer.getData("wptbElement")?(t=WPTB_Helper.newElementProxy(e.dataTransfer.getData("wptbElement"))).getDOMElement():(a=e.dataTransfer.getData("node"),document.getElementsByClassName(a)[0]),"block"==n.style.display){var r=void 0;if("Drop Here"==n.dataset.text)(r=n.getDOMParentElement()).appendChild(t);else{var o=n.getDOMParentElement();if(r=o.parentNode,"Above Element"==n.dataset.text)r.insertBefore(t,o);else if("Below Element"==n.dataset.text){var i=o.nextSibling;r.insertBefore(t,i)}}var s=r.parentNode;if(s.classList.contains("wptb-table-head")){var d=WPTB_Helper.findAncestor(s,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(d)}if(n.style.display="none",l.style.display="none",c(t),!t.classList.contains("wptb-image-container")||t.classList.contains("wptb-moving-mode"))t.classList.remove("wptb-moving-mode"),(new WPTB_TableStateSaveManager).tableStateSet();return!0}}},t.onmouseover=function(e){t.classList.remove("wptb-ondragenter")}},applyGenericItemSettings=function(r,e){var t,o,a=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=r.getDOMElement();if(null==e||1==a){t=document.counter.nextIndex(r.kind);for(var n=document.getElementsByClassName("wptb-ph-element"),l=[],s=0;s<n.length;s++){var d=new RegExp("wptb-element-"+r.kind+"-(\\d+)","i"),c=n[s].className.match(d);c&&l.push(c[1])}if(0<l.length)t=Math.max.apply(Math,l)+1;else t=1}else if(e&&!a){var p=e.split("-");t=p[p.length-1]}i.onmouseenter=function(e){if(!e.target.classList.contains("wptb-moving-mode")){var t=new WPTB_ActionsField;if(t.addActionField(1,i),t.setParameters(i),i.classList.remove("wptb-ondragenter"),"button"===r.kind){var a=i.querySelector("a"),n=a.querySelector("div");a.onclick=function(e){e.preventDefault()},WPTB_Helper.buttonsTinyMceInit(n)}else if("text"===r.kind)tinyMCE.init({target:i.childNodes[0],inline:!0,plugins:"link, paste",dialog_type:"modal",theme:"modern",menubar:!1,force_br_newlines:!1,force_p_newlines:!1,forced_root_block:"",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(i,"wptb-row");if(t.classList.contains("wptb-table-head")){var a=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(a)}}),e.on("keydown",function(e){var t=new WPTB_ActionsField;t.addActionField(1,i),t.setParameters(i)}),e.on("keyup",function(e){var t=new WPTB_ActionsField;t.addActionField(1,i),t.setParameters(i),e.target.onblur=function(){(new WPTB_TableStateSaveManager).tableStateSet()}})},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 if("list"===r.kind){o=i.getElementsByClassName("wptb-list-item-content");for(var l=0;l<o.length;l++)WPTB_Helper.listItemsTinyMceInit(o[l])}}},i.onmouseleave=function(e){var t=new WPTB_ActionsField;t.wptbActions&&"1"!=t.wptbActions.type||t.leaveFromField(e,i,1)};var m=document.getElementsByClassName("wptb-actions");if(0<m.length&&(m=m[0]),"text"==r.kind){new MutationObserver(function(e){var t=WPTB_Helper.findAncestor(i,"wptb-row");if(t.classList.contains("wptb-table-head")){var a=WPTB_Helper.findAncestor(t,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(a)}}).observe(r.getDOMElement(),{attributes:!0,attributeFilter:["style"]})}else if("star_rating"==r.kind)for(var u=i.getElementsByClassName("wptb-rating-star"),b=0;b<u.length;b++){var g=u[b];WPTB_Helper.starRatingEventHandlersAdd(g);var w=g.querySelector(".wptb-rating-star-zero-set");w&&(w.onclick=function(e){var t=WPTB_Helper.findAncestor(e.target,"wptb-rating-stars-list");if(t)for(var a=t.children,n=0;n<a.length;n++)a[n].classList.remove("wptb-rating-star-selected-full"),a[n].classList.remove("wptb-rating-star-selected-half")})}var v=i.className.match(/wptb-element-(.+)-(\d+)/i);v&&i.classList.remove(v[0]),i.classList.contains("wptb-ph-element")||i.classList.add("wptb-ph-element"),i.classList.contains("wptb-element-"+r.kind+"-"+t)||i.classList.add("wptb-element-"+r.kind+"-"+t),new WPTB_ElementOptions(r,t,e),document.counter.increment(r.kind)};
1
+ var WPTB_ActionsField=function p(){var m=this;this.wptbActions,0!=document.getElementsByClassName("wptb-actions").length&&(this.wptbActions=document.getElementsByClassName("wptb-actions")[0]),this.addActionField=function(e,i){var t=document.getElementsByTagName("body")[0],a=document.getElementsByClassName("wptb-actions");if(0!=a.length){var n=a[0].activeElem;for(n&&n.classList.remove("wptb-directlyhovered");0!=a.length;)a[0].parentNode.removeChild(a[0])}if(1==e){var l=void 0,r=void 0,s=void 0;l=document.createElement("span"),r=document.createElement("span"),s=document.createElement("span"),(a=document.createElement("div")).classList.add("wptb-actions"),l.classList.add("dashicons","dashicons-trash","wptb-delete-action"),r.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),s.classList.add("dashicons","dashicons-move","wptb-move-action"),s.draggable=!0,a.appendChild(s),a.appendChild(r),a.appendChild(l),t.appendChild(a),a.activeElem=i,a.type=1,l.onclick=function(e){var t=e.target.parentNode.activeElem,a=t.parentNode;if(a.removeChild(t),"text"==t.kind){var n=a.parentNode;if(n.classList.contains("wptb-table-head")){var l=WPTB_Helper.findAncestor(n,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(l)}}(new p).actionsRemove(),(new WPTB_TableStateSaveManager).tableStateSet()},r.onclick=function(e){var t=void 0,a=void 0,n=e.target.parentNode.activeElem,l=n.cloneNode(!0);l.classList.remove("wptb-directlyhovered"),a=n.className.match(/wptb-element-(.+)-(\d+)/i)[1];var r=n.parentNode;if("list"==a){for(var s=[],i=n.querySelectorAll("ul li .wptb-list-item-content"),o=0;o<i.length;o++)s.push(i[o].innerHTML);t=new WPTB_List(s,l),r.insertBefore(t.getDOMElement(),n.nextSibling)}else if("text"==a)t=new WPTB_Text(l.childNodes[0].innerHTML,l),r.insertBefore(t.getDOMElement(),n.nextSibling);else if("image"==a)t=new WPTB_Image("",n),r.insertBefore(t.getDOMElement(),n.nextSibling);else if("button"==a){var d=l.childNodes[0].querySelector("p").innerHTML;t=new WPTB_Button(d,l),r.insertBefore(t.getDOMElement(),n.nextSibling)}else(a="star_rating")&&(t=new WPTB_StarRating(l),r.insertBefore(t.getDOMElement(),n.nextSibling));WPTB_innerElementSet(t.getDOMElement()),new p(1,n).setParameters(n),(new WPTB_TableStateSaveManager).tableStateSet()},s.ondragstart=function(e){var t,a,n=WPTB_Helper.dragImagesArr(),l=e.target.parentNode.activeElem;a=(t=l.className.match(/wptb-element-(.+)-(\d+)/i))[1],l.classList.add("wptb-moving-mode"),e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage(n[a],0,0),e.dataTransfer.setData("node","wptb-element-"+t[1]+"-"+t[2]),e.dataTransfer.setData("wptb-moving-mode","wptb-element-"+t[1]+"-"+t[2]),e.dataTransfer.setData("wptbElIndic-"+t[1],"wptbElIndic-"+t[1]);var r=e.target.parentNode.activeElem;if("text"==r.kind){var s=r.parentNode.parentNode;if(s.classList.contains("wptb-table-head")){var i=WPTB_Helper.findAncestor(s,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(i)}}m.actionsHide()},a.style.display="block",m.wptbActions=a}else if(2==e){var o=void 0,d=void 0;o=document.createElement("span"),d=document.createElement("span"),(a=document.createElement("span")).classList.add("wptb-actions"),o.classList.add("dashicons","dashicons-trash","wptb-delete-action"),d.classList.add("dashicons","dashicons-admin-page","wptb-duplicate-action"),a.append(d,o),t.appendChild(a),a.activeElem=i;var c=WPTB_Helper.findAncestor(i,"wptb-directlyhovered");c&&c.classList.remove("wptb-directlyhovered"),a.type=2,o.onclick=function(e){var t=e.target.parentNode.activeElem,a=t.parentNode;new p(4).actionsRemove(),a.removeChild(t),WPTB_Helper.listItemsRecalculateIndex(a),(new WPTB_TableStateSaveManager).tableStateSet()},d.onclick=function(e){var t=i.getBoundingClientRect(),a=t.top,n=e.target.parentNode.activeElem,l=n.querySelector(".wptb-list-item-content").innerHTML,r=new WPTB_ListItem(l,n,!0);n.parentNode.insertBefore(r.getDOMElement(),i.nextSibling),WPTB_Helper.listItemsTinyMceInit(r.getDOMElement().firstChild);var s=i.getElementsByClassName("wptb-list-item-content");(0<s.length&&(s=s[0]),setTimeout(function(){s.innerHTML=l,WPTB_Helper.listItemsRecalculateIndex(n.parentNode)},5),a!=(t=i.getBoundingClientRect()).top)&&new p(2,i).setParameters(i);(new WPTB_TableStateSaveManager).tableStateSet()},a.style.display="block",m.wptbActions=a}},this.setParameters=function(t){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&(m.wptbActions.style.display="block");var a=t.getBoundingClientRect(),n=document.getElementsByClassName("wptb-container")[0],l=function(){var e=t.getBoundingClientRect();m.wptbActions.style.top=parseFloat(e.top)-15+"px"};n.removeEventListener("scroll",l,!1),m.wptbActions.style.top=parseFloat(a.top)-15+"px",m.wptbActions.style.left=parseFloat(a.right)-parseFloat(m.wptbActions.clientWidth)+1+"px",m.wptbActions.style.display="block",t.classList.add("wptb-directlyhovered"),n.addEventListener("scroll",l,!1)},this.leaveFromField=function(e,t,a){if(e.relatedTarget&&(e.relatedTarget.classList.contains("wptb-actions")||e.relatedTarget.classList.contains("wptb-move-action")||e.relatedTarget.classList.contains("wptb-duplicate-action")||e.relatedTarget.classList.contains("wptb-delete-action")))return m.wptbActions||(m.wptbActions=document.getElementsByClassName("wptb-actions")[0]),void(m.wptbActions.onmouseleave=function(e){if(null!=e.relatedTarget&&e.relatedTarget!=m.wptbActions.activeElem&&WPTB_Helper.findAncestor(e.relatedTarget,"wptb-directlyhovered")!=m.wptbActions.activeElem&&(e.target.activeElem.classList.remove("wptb-directlyhovered"),m.wptbActions.style.display="none",2==m.wptbActions.type)){var t=new p;t.addActionField(1,e.relatedTarget.parentNode.parentNode),t.setParameters(e.relatedTarget.parentNode.parentNode)}});t.classList.remove("wptb-directlyhovered"),m.wptbActions.style.display="none",2==m.wptbActions.type&&e.relatedTarget&&"ul"==e.relatedTarget.localName&&(m.addActionField(1,e.relatedTarget.parentNode),m.setParameters(e.relatedTarget.parentNode))},this.actionsRemove=function(){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&m.wptbActions.parentNode.removeChild(m.wptbActions)},this.actionsHide=function(){if(!m.wptbActions){var e=document.getElementsByClassName("wptb-actions");0<e.length&&(m.wptbActions=e[0])}m.wptbActions&&(m.wptbActions.style.opacity=0)}};function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}document.addEventListener("DOMContentLoaded",function(){var e=WPTB_Helper.detectMode();if(e){var a=new XMLHttpRequest,t=ajaxurl+"?action=get_table&id="+e;a.open("GET",t,!0),a.setRequestHeader("Content-type","application/x-www-form-urlencoded"),a.onreadystatechange=function(e){if(4!=this.readyState||200!=this.status);else{var t=JSON.parse(a.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(),(new WPTB_TableStateSaveManager).tableStateSet()):document.getElementsByClassName("wptb-table-generator")[0].style.display="table"}},a.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 a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("a"),r=document.createElement("div"),s=document.createElement("p"),i=void 0,o=!1;if(a.classList.add("wptb-button-container","wptb-size-M","wptb-"),n.classList.add("wptb-button-wrapper"),r.classList.add("wptb-button"),s.innerHTML=null!=e?e:"Button Text",t){var d=t.className.match(/wptb-element-((.+-)\d+)/i);d&&Array.isArray(d)&&(i=d[1],o=!0);var c=[].concat(_toConsumableArray(t.attributes));if(0<c.length)for(var p=0;p<c.length;p++)a.setAttribute(c[p].name,c[p].value);var m=t.querySelector(".wptb-button-wrapper");if(m){var u=[].concat(_toConsumableArray(m.attributes));if(0<u.length)for(var b=0;b<u.length;b++)"style"==u[b].name&&n.setAttribute(u[b].name,u[b].value)}var g=t.querySelector("a");if(g)if(0<(h=[].concat(_toConsumableArray(g.attributes))).length)for(var w=0;w<h.length;w++)"style"!=h[w].name&&"href"!=h[w].name&&"target"!=h[w].name||l.setAttribute(h[w].name,h[w].value);var h,v=t.querySelector(".wptb-button");if(v)if(0<(h=[].concat(_toConsumableArray(v.attributes))).length)for(var y=0;y<h.length;y++)"style"==h[y].name&&r.setAttribute(h[y].name,h[y].value)}return n.appendChild(l),l.appendChild(r),r.appendChild(s),a.appendChild(n),this.kind="button",this.getDOMElement=function(){return a},applyGenericItemSettings(this,i,o),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 o=i.getElementsByClassName("wptb-ph-element");if(0<o.length)for(var a=function(e){var t=i.getElementsByClassName("wptb-space-between");if(0<t.length)for(var a=0;a<t.length;a++)WPTB_Space(t[a]);o[e].getDOMElement=function(){return o[e]},WPTB_innerElementSet(o[e]);var n=o[e].className.match(/wptb-element-((.+-)\d+)/i);if(n&&Array.isArray(n)){var l=n[1].split("-");if(o[e].kind=l[0],applyGenericItemSettings(o[e],n[1]),"list"==o[e].kind){var r=o[e].getElementsByTagName("li");if(0<r.length)for(var s=0;s<r.length;s++)WPTB_ListItem(void 0,r[s])}}},n=0;n<o.length;n++)a(n);return this.getDOMElement=function(){return i},this.setCoords=function(e,t){var a=this.getDOMElement();a.dataset.yIndex=e,a.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"),a=e.getPropertyValue("padding-right"),n=e.getPropertyValue("border-left-width"),l=e.getPropertyValue("border-right-width"),r=e.getPropertyValue("padding-top"),s=e.getPropertyValue("padding-bottom"),i=e.getPropertyValue("border-top-width"),o=e.getPropertyValue("border-bottom-width");return{width:parseFloat(this.offsetWidth,10)-parseFloat(t,10)-parseFloat(a,10)-parseFloat(n,10)-parseFloat(l,10),height:parseFloat(this.offsetHeight,10)-parseFloat(r,10)-parseFloat(s,10)-parseFloat(i,10)-parseFloat(o,10)}},this},WPTB_DropHandle=function(i,e){var o=void 0,d=void 0;if(0==document.getElementsByClassName("wptb-drop-handle").length){(o=document.createElement("div")).classList.add("wptb-drop-handle"),(d=document.createElement("div")).classList.add("wptb-drop-border-marker");var t=document.createElement("div"),a=document.createElement("div"),n=document.createElement("div"),l=document.createElement("div");t.classList.add("wptb-drop-border-marker-top"),a.classList.add("wptb-drop-border-marker-right"),n.classList.add("wptb-drop-border-marker-bottom"),l.classList.add("wptb-drop-border-marker-left"),d.appendChild(t),d.appendChild(a),d.appendChild(n),d.appendChild(l);var r=document.getElementsByTagName("body");0<r.length&&(r[0].appendChild(o),r[0].appendChild(d)),o.ondragenter=function(){},o.ondragover=function(e){e.preventDefault()},o.ondragleave=function(){},o.ondrop=function(e){e.preventDefault();var t=void 0;e.dataTransfer.getData("wptbElement")?t=(t=WPTB_Helper.newElementProxy(e.dataTransfer.getData("wptbElement"))).getDOMElement():((t=document.getElementsByClassName(e.dataTransfer.getData("node"))[0]).classList.remove("wptb-moving-mode"),t.classList.remove("wptb-moving-into-same-elem"),t.wptbMovingMode=1);var a=void 0;if("Drop Here"==o.dataset.text)"td"==(i=o.getDOMParentElement()).nodeName.toLowerCase()&&(a=o.getDOMParentElement()).appendChild(t);else{var n=o.getDOMParentElement();if(a=n.parentNode,"Above Element"==o.dataset.text)a.insertBefore(t,n);else if("Below Element"==o.dataset.text){var l=n.nextSibling;a.insertBefore(t,l)}}var r=a.parentNode;if(r.classList.contains("wptb-table-head")){var s=WPTB_Helper.findAncestor(r,"wptb-preview-table");WPTB_Helper.dataTitleColumnSet(s)}(o.style.display="none",d.style.display="none",WPTB_innerElementSet(t),console.log(t),t.classList.contains("wptb-image-container")&&1!=t.wptbMovingMode)||((new WPTB_TableStateSaveManager).tableStateSet(),t.wptbMovingMode)},document.querySelector(".wptb-container").onscroll=function(){o.style.display="none",d.style.display="none"}}else o=document.getElementsByClassName("wptb-drop-handle")[0],d=document.getElementsByClassName("wptb-drop-border-marker")[0];if(!i||"td"!=i.nodeName.toLowerCase()||0==i.getElementsByClassName("wptb-ph-element").length){var s=void 0;if("td"==i.localName?s=i.parentNode:"div"==i.localName&&i.classList.contains("wptb-ph-element")&&(s=i.parentNode.parentNode),s.classList.contains("wptb-table-head")){for(var c=e.dataTransfer.types,p=!1,m=0;m<c.length;m++){var u=c[m].match(/wptbelindic-([a-z]+)/i);if(u&&"text"!=u[1]){p=!0;break}}if(p)return}o.style.width=i.offsetWidth+"px";var b=i.offsetHeight,g=i.getBoundingClientRect(),w=parseFloat(g.left),h=void 0;if(o.style.left=w+"px",-1!=e.dataTransfer.types.indexOf("wptb-moving-mode")){var v=document.getElementsByClassName("wptb-moving-mode")[0];i==v?(o.classList.add("wptb-moving-into-same-elem"),d.classList.add("wptb-moving-into-same-elem")):(o.classList.remove("wptb-moving-into-same-elem"),d.classList.remove("wptb-moving-into-same-elem"))}if(o.getDOMParentElement=function(){return i},o.style.display="block",d.style.display="block","td"!=i.nodeName.toLowerCase()){var y=null==e.offsetY?e.layerY:e.offsetY;h=parseFloat(g.top)-parseFloat(11),o.dataset.text="Above Element",b/2<y&&(h=parseFloat(g.top)+b-1,o.dataset.text="Below Element")}else o.dataset.text="Drop Here",h=parseFloat(g.top)+b/2-5;o.style.top=h+"px",d.style.top=g.top+"px",d.style.left=g.left+"px",wptbDropBorderMarkerTop=d.querySelector(".wptb-drop-border-marker-top"),wptbDropBorderMarkerTop.style.width=parseFloat(i.offsetWidth)-parseFloat(1)+"px",wptbDropBorderMarkerRight=d.querySelector(".wptb-drop-border-marker-right"),wptbDropBorderMarkerRight.style.height=parseFloat(g.bottom)-parseFloat(g.top)-1+"px",wptbDropBorderMarkerRight.style.left=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom=d.querySelector(".wptb-drop-border-marker-bottom"),wptbDropBorderMarkerBottom.style.width=wptbDropBorderMarkerTop.style.width,wptbDropBorderMarkerBottom.style.top=wptbDropBorderMarkerRight.style.height,wptbDropBorderMarkerLeft=d.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,a){var n,l=e.getDOMElement();prop=document.querySelector(".wptb-"+e.kind+"-options-prototype").cloneNode(!0),prop.classList.remove("wptb-"+e.kind+"-options-prototype"),n="wptb-options-"+e.kind+"-"+t;for(var r=prop.getElementsByClassName("wptb-element-property"),s=0;s<r.length;s++)r[s].dataset.element=n;if(prop.classList.add(n),document.getElementById("element-options-group").appendChild(prop),a)if("button"==e.kind){var i=document.getElementsByClassName("wptb-element-"+a)[0],o=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(s=0;s<m.length;s++)m[s].classList.remove("selected"),m[s].innerHTML==p[1]&&m[s].classList.add("selected")}if(i&&(o=i.getElementsByClassName("wptb-button-wrapper"),d=i.getElementsByTagName("a"),c=i.getElementsByClassName("wptb-button")),o){var u=o[0].style.justifyContent,b="";"start"==u?b="left":"center"!=u&&u?"flex-end"==u&&(b="right"):b="center";var g=prop.getElementsByClassName("wptb-button-alignment-btn");for(s=0;s<g.length;s++)g[s].classList.remove("selected"),g[s].getAttribute("data-button_alignment")==b&&g[s].classList.add("selected")}if(0<d.length){var w=d[0].getAttribute("href"),h=d[0].getAttribute("target"),v=d[0].getAttribute("id"),y=prop.querySelector('input[data-type="button-link"]'),f=prop.querySelector('input[data-type="button-link-target"]'),B=f.getAttribute("id"),S=f.parentNode.getElementsByTagName("label")[0],T=prop.querySelector('input[data-type="button-id"]');B=B+"-"+a.split("-")[1],f.setAttribute("id",B),S.setAttribute("for",B),y.value=w,h&&"_blank"==h&&(f.checked=!0),T.value=v}if(c){var E=c[0].style.color,C=c[0].style.backgroundColor,x=prop.querySelector('input[data-type="button-text-color"]'),_=prop.querySelector('input[data-type="button-color"]');x.value=WPTB_Helper.rgbToHex(E),_.value=WPTB_Helper.rgbToHex(C)}}else if("image"==e.kind){var N=document.getElementsByClassName("wptb-element-"+a);if(0<N.length){var I=N[0].getElementsByTagName("a");if(0<I.length){var A=I[0];if(A){var P=void 0;P="none"!=A.style.float&&A.style.float?A.style.float:"center";var L=prop.getElementsByClassName("wptb-image-alignment-btn");for(s=0;s<L.length;s++)L[s].classList.remove("selected"),L[s].getAttribute("data-image_alignment")==P&&L[s].classList.add("selected");A.onclick=function(e){e.preventDefault()};var k=A.getAttribute("href"),W=prop.querySelector('input[data-type="image-link"]');k&&(W.value=k);var M=A.getAttribute("target"),H=prop.querySelector('input[data-type="image-link-target"]'),D=H.getAttribute("id"),q=H.parentNode.getElementsByTagName("label")[0];D=D+"-"+a.split("-")[1],H.setAttribute("id",D),q.setAttribute("for",D),M&&"_blank"==M&&(H.checked=!0);var F=A.style.width;if(F){var O=prop.querySelector('input[type="range"][data-type="image-size"]'),z=prop.querySelector('input[type="number"][data-type="image-size"]');O.value=parseInt(F),z.value=parseInt(F)}var R=A.getElementsByTagName("img");if(0<R.length){var j=R[0].getAttribute("alt");prop.querySelector('input[type="text"][data-type="alternative-text"]').value=j}}}}}else if("text"==e.kind){var V=document.getElementsByClassName("wptb-element-"+a);if(0<V.length){var Q=V[0].style.fontSize,G=V[0].style.color,J=prop.querySelector('input[type="range"][data-type="font-size"]'),U=prop.querySelector('input[type="number"][data-type="font-size"]'),Y=prop.querySelector('input[type="text"][data-type="color"]');J.value=parseInt(Q)?parseInt(Q):10,U.value=parseInt(Q)?parseInt(Q):10,Y.value=WPTB_Helper.rgbToHex(G)}}else if("list"==e.kind){var X=document.getElementsByClassName("wptb-element-"+a);if(0<X.length){var K=X[0].querySelector("p").style.color;prop.querySelector('input[type="text"][data-type="list-text-color"]').value=WPTB_Helper.rgbToHex(K);var $=X[0].querySelectorAll("li");if(0<$.length){var Z=$[0].querySelector("p").classList;if(0<Z.length){var ee=prop.querySelector('select[data-type="list-class"]');if(ee){ee.value="unordered";for(var te=ee.parentNode.nextSibling,ae=0;ae<10&&"1"!=te.nodeType;ae++)te=te.nextSibling;if(te){var ne=te.getAttribute("id");te.setAttribute("id",ne+"-"+a),te.style.display="flex"}var le=prop.querySelector('select[data-type="list-style-type"]');le&&(le.parentNode.style.display="flex",Z.contains("wptb-list-style-type-disc")?le.value="disc":Z.contains("wptb-list-style-type-circle")?le.value="circle":Z.contains("wptb-list-style-type-square")?le.value="square":Z.contains("wptb-list-style-type-none")&&(le.value="none"))}}}var re=X[0].getElementsByClassName("wptb-list-item-content");if(0<re.length){for(var se=[],ie=0;ie<re.length;ie++){var oe=re[ie].querySelector("p");oe&&(oe.style.textAlign?se.push(oe.style.textAlign):se.push("left"))}var de=0,ce=0,pe=0;if(0<se.length)for(var me=0;me<se.length;me++)se[me]&&("left"==se[me]?de++:"center"==se[me]?ce++:"right"==se[me]&&pe++);var ue=prop.getElementsByClassName("wptb-list-alignment-btn"),be=Math.max(de,ce,pe),ge=void 0;de==be?ge="left":ce==be?ge="center":pe==be&&(ge="right");for(s=0;s<ue.length;s++)ue[s].classList.remove("selected"),ue[s].getAttribute("data-list_alignment")==ge&&ue[s].classList.add("selected")}}}else if("star_rating"==e.kind){var we=document.getElementsByClassName("wptb-element-"+a),he=void 0;if(0<we.length){var ve=(we=we[0]).querySelector("li");if(ve){var ye=ve.style.width,fe=prop.querySelector('input[type="range"][data-type="star-size"]'),Be=prop.querySelector('input[type="number"][data-type="star-size"]');if(fe.value=parseInt(ye)?parseInt(ye):10,Be.value=parseInt(ye)?parseInt(ye):10,ve.querySelector("span")){var Se=prop.querySelector('input[type="text"][data-type="star-color"]'),Te=ve.querySelector("span").style.fill;Se.value=WPTB_Helper.rgbToHex(Te)}}var Ee=we.querySelectorAll("li"),Ce=prop.querySelector('input[type="number"][data-type="stars-count"]');if(1==Ee.length&&"none"==Ee[0].style.display?Ce.value=0:Ce.value=Ee.length,we&&(he=we.style.textAlign),he)for(m=prop.getElementsByClassName("wptb-rating-alignment-btn"),s=0;s<m.length;s++)m[s].classList.remove("selected"),m[s].getAttribute("data-star_alignment")==he&&m[s].classList.add("selected");var xe=we.querySelector(".wptb-success-box");if(xe){var _e=prop.querySelector('input[type="checkbox"][data-type="show-number-rating"]');if("block"==xe.style.display){_e.checked=!0;for(var Ne=prop.getElementsByClassName("wptb-numeral-rating-option-container"),Ie=0;Ie<Ne.length;Ie++)Ne[Ie].style.display="block"}else _e.checked=!1;var Ae=xe.querySelector(".wptb-text-message");if(Ae){var Pe=Ae.style.fontSize,Le=Ae.style.color,ke=prop.querySelector('input[type="range"][data-type="numeral-rating-size"]'),We=prop.querySelector('input[type="number"][data-type="numeral-rating-size"]'),Me=prop.querySelector('input[type="text"][data-type="numeral-rating-color"]');ke.value=parseInt(Pe)?parseInt(Pe):10,We.value=parseInt(Pe)?parseInt(Pe):10,Me.value=WPTB_Helper.rgbToHex(Le)}}}}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 a=document.getElementById("element-options-group").childNodes,n=0;n<a.length;n++)a[n].style&&(a[n].style.display="none");document.querySelector(t).style.display="block"},"button"==e.kind){var He=prop.getElementsByClassName("wptb-btn-size-btn");for(s=0;s<He.length;s++)He[s].onclick=function(){var e=this.innerHTML,t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l=document.getElementsByClassName("wptb-element-"+a+"-"+n)[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"),s=0;s<r.length;s++)r[s].classList.remove("selected");this.classList.add("selected"),(new WPTB_TableStateSaveManager).tableStateSet()}}if("star_rating"==e.kind)for(He=prop.getElementsByClassName("wptb-rating-alignment-btn"),s=0;s<He.length;s++)He[s].onclick=function(){var e=this.getAttribute("data-star_alignment"),t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2];document.getElementsByClassName("wptb-element-"+a+"-"+n)[0].style.textAlign=e;for(var l=this.parentNode.getElementsByClassName("wptb-rating-alignment-btn"),r=0;r<l.length;r++)l[r].classList.remove("selected");this.classList.add("selected"),(new WPTB_TableStateSaveManager).tableStateSet()};if("list"==e.kind)for(He=prop.getElementsByClassName("wptb-list-alignment-btn"),s=0;s<He.length;s++)He[s].onclick=function(){for(var e=this.getAttribute("data-list_alignment"),t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l=document.getElementsByClassName("wptb-element-"+a+"-"+n)[0].querySelectorAll("li"),r=0;r<l.length;r++){var s=l[r].querySelector("p");s&&(s.style.textAlign=e)}var i=this.parentNode.getElementsByClassName("wptb-list-alignment-btn");for(r=0;r<i.length;r++)i[r].classList.remove("selected");this.classList.add("selected"),(new WPTB_TableStateSaveManager).tableStateSet()};if("button"==e.kind)for(He=prop.getElementsByClassName("wptb-button-alignment-btn"),s=0;s<He.length;s++)He[s].onclick=function(){var e=this.getAttribute("data-button_alignment"),t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l="";l="left"==e?"start":"right"==e?"flex-end":"center",document.getElementsByClassName("wptb-element-"+a+"-"+n)[0].getElementsByClassName("wptb-button-wrapper")[0].style.justifyContent=l;for(var r=this.parentNode.getElementsByClassName("wptb-button-alignment-btn"),s=0;s<r.length;s++)r[s].classList.remove("selected");this.classList.add("selected"),(new WPTB_TableStateSaveManager).tableStateSet()};if("image"==e.kind)for(He=prop.getElementsByClassName("wptb-image-alignment-btn"),s=0;s<He.length;s++)He[s].onclick=function(){var e=this.getAttribute("data-image_alignment"),t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l="";l="left"==e?"left":"right"==e?"right":"none",document.getElementsByClassName("wptb-element-"+a+"-"+n)[0].querySelector(".wptb-image-wrapper a").style.float=l;for(var r=this.parentNode.getElementsByClassName("wptb-image-alignment-btn"),s=0;s<r.length;s++)r[s].classList.remove("selected");this.classList.add("selected"),(new WPTB_TableStateSaveManager).tableStateSet()};var De=prop.getElementsByClassName("wptb-element-property");for(s=0;s<De.length;s++){if(De[s].classList.contains("wptb-color-picker")&&jQuery(De[s]).wpColorPicker({change:function(e,t){WPTB_Helper.wpColorPickerChange(e,t),WPTB_Helper.wpColorPickerCheckChangeForTableStateSaving(e)},clear:function(e){WPTB_Helper.wpColorPickerChange(e)}}),De[s].classList.contains("wptb-stars-count-field")&&WPTB_Helper.numberImputSize(De[s],1,10),"font-size"===De[s].dataset.type||"image-size"===De[s].dataset.type||"star-size"===De[s].dataset.type||"numeral-rating-size"===De[s].dataset.type)De[s].parentNode.parentNode.getElementsByClassName("wptb-size-slider")[0].oninput=function(){this.parentNode.parentNode.getElementsByClassName("wptb-size-number")[0].value=this.value,this.parentNode.parentNode.getElementsByClassName("wptb-size-number")[0].onchange(event)};De[s].onchange=function(e){var t=this.dataset.element.match(/wptb-options-(.+)-(\d+)/i),a=t[1],n=t[2],l=document.getElementsByClassName("wptb-element-"+a+"-"+n)[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-size-slider")[0].value=this.value;break;case"font-size":l.style.fontSize=r+"px",this.parentNode.parentNode.getElementsByClassName("wptb-size-slider")[0].value=this.value;break;case"rating-alignment":var s="";s="left"==this.value?"start":"right"==this.value?"right":"center",l.style.textAlign=s;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-class":var i=e.target.parentNode.parentNode.querySelector("[data-type=list-style-type]").parentNode,o=i.parentNode;if("unordered"==r){i.style.display="flex",o.querySelector(".wptb-list-icon-select-label").style.display="flex";for(var d=l.querySelectorAll("li"),c=0;c<d.length;c++){var p=d[c].querySelector("p");p.removeAttribute("class"),p.classList.add("wptb-list-style-type-disc")}o.querySelector("[data-type=list-style-type]").value="disc"}else{i.style.display="none",o.querySelector(".wptb-list-icon-select-label").style.display="none";var m=l.querySelectorAll("li");for(c=0;c<m.length;c++){m[c].querySelector("p").removeAttribute("class")}}break;case"list-style-type":for(m=l.querySelectorAll("li"),c=0;c<m.length;c++){var u=m[c].querySelector("p");u.removeAttribute("class"),u.classList.add("wptb-list-style-type-"+r.toLowerCase())}break;case"star-size":for(var b=l.querySelectorAll("li"),g=0;g<b.length;g++){b[g].style.width=r+"px",b[g].style.height=r+"px";for(var w=b[g].querySelectorAll("span"),h=0;h<w.length;h++)w[h].querySelector("svg")&&(w[h].style.width=r+"px",w[h].style.height=r+"px",w[h].querySelector("svg").style.width=r+"px")}break;case"show-number-rating":var v=WPTB_Helper.findAncestor(this,"wptb-star_rating-options").getElementsByClassName("wptb-numeral-rating-option-container");if(WPTB_Helper.starRatingTextMessageChenge(l),0<v.length){var y=l.querySelector(".wptb-text-message"),f=this.checked?"checked":"unchecked";if("checked"==f){for(var B=0;B<v.length;B++)v[B].style.display="block";y.parentNode.style.display="block"}else if("unchecked"==f){for(var S=0;S<v.length;S++)v[S].style.display="none";y.parentNode.style.display="none"}}break;case"numeral-rating-size":var T=l.querySelector(".wptb-text-message");T.style.fontSize=r+"px",T.style.height=r+"px",T.style.lineHeight=r+"px";break;case"stars-count":var E=l.querySelectorAll("li"),C=E.length;if(C<r)for(var x=r-C,_=E[E.length-1],N=_.parentNode,I=0;I<x;I++){var A=_.cloneNode(!0);A.removeAttribute("class"),A.setAttribute("class","wptb-rating-star"),A.dataset.value=parseInt(_.dataset.value)+I+1,WPTB_Helper.starRatingEventHandlersAdd(A),N.appendChild(A)}else if(r<C){var P=parseInt(C)-parseInt(r);0==r&&(P--,E[0].removeAttribute("class"),E[0].setAttribute("class","wptb-rating-star"),E[0].style.display="none");var L=E.length;for(c=0;c<P;c++)E[0].parentNode.removeChild(E[L-c-1])}else r==C&&1==C&&(E[0].style.display="inline-block");WPTB_Helper.starRatingTextMessageChenge(l)}e.target.classList.contains("wptb-size-slider")||e.target.classList.contains("wptb-size-slider")?e.target.onmouseup=function(){(new WPTB_TableStateSaveManager).tableStateSet()}:(new WPTB_TableStateSaveManager).tableStateSet()}}},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,a=document.createElement("img");return a.src=t+"/wp-content/plugins/wp-table-builder/inc/admin/views/builder/icons/"+e+".png",a},dragImagesArr:function(){return{text:WPTB_Helper.getDragImageCustom("text"),image:WPTB_Helper.getDragImageCustom("image"),button:WPTB_Helper.getDragImageCustom("button"),list:WPTB_Helper.getDragImageCustom("list"),star_rating:WPTB_Helper.getDragImageCustom("half-filled-rating-star")}},listItemsRecalculateIndex:function(e){var t=e.querySelectorAll("p");if(0<t.length)for(var a=0;a<t.length;a++)t[a].dataset.listStyleTypeIndex=Number(a)+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 a=e.target.innerHTML,n=new WPTB_ListItem(a,t,!0);return t.parentNode.insertBefore(n.getDOMElement(),t),WPTB_Helper.listItemsTinyMceInit(n.getDOMElement().firstChild),e.target.querySelector("p").innerText="New List Item",void WPTB_Helper.listItemsRecalculateIndex(t.parentNode)}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")}}var s=e.target.parentNode,i=new WPTB_ActionsField;i.addActionField(2,s),i.setParameters(s)}),e.on("keyup",function(e){var t=e.target.parentNode,a=new WPTB_ActionsField;a.addActionField(2,t),a.setParameters(t),e.target.onblur=function(){(new WPTB_TableStateSaveManager).tableStateSet()}})},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(n){tinyMCE.init({target:n,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();var t=WPTB_Helper.findAncestor(n,"wptb-button-container"),a=new WPTB_ActionsField;a.addActionField(1,t),a.setParameters(t)}),e.on("keyup",function(e){var t=WPTB_Helper.findAncestor(n,"wptb-button-container"),a=new WPTB_ActionsField;a.addActionField(1,t),a.setParameters(t),e.target.onblur=function(){(new WPTB_TableStateSaveManager).tableStateSet()}})},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("/"),a=void 0;return Array.isArray(t)&&0<t.length&&(a=t[t.length-1]),document.location.protocol+"//"+a}return""},dataTitleColumnSet:function(e){for(var t=e.rows,a=t[0],n=getComputedStyle(a),l=a.children,r={},s=0;s<l.length;s++){for(var i=l[s].children,o=0;o<i.length;o++){var d=i[o];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