Page Builder: PageLayer – Drag and Drop website builder - Version 1.0.8

Version Description

(March 24, 2020) = * [Premium-Feature] We have added Scrolling Effects and Mouse Effects feature in Pagelayer. You can now set an animation to an element on mouse movement or on scroll. * [Feature] We have now added 300+ sections in Pagelayer. You can 1-click add sections to a post / page. We have also added many pages so that you can build your website with just a few clicks. * [Feature] Added "Import Theme" option in Pagelayer. A theme needs to be a pagelayer exported theme so that anyone can import the theme. * [Feature] Most text fields are now editable from the Editor window itself without the left bar text fields. This enhances the editing experience. * [Improvement] We have added a pre-loader to the Pagelayer editor. * [Improvement] The Left-bar UI has been improved. Much more UI changes are coming ! * [Improvement] The Add Section wizard, has been further improved. The speed of image loading has also improved and we will improve the sections further. * [Improvement] Added more options for popup builder. Advanced options are coming soon. * [Task] Added the option to de-select the options from multi-select property type. * [Task] The Pagelayer Editor left top bar UI is also improved. * [Task] We are re-building our docs and also making some video tutorials for our users. * [Bug-Fix] In certain cases, additional whitespace was added to the attributes. This is fixed. * [Bug-Fix] In certain cases, widgets were broken when we use double code in text. This is fixed. * [Bug-Fix] The image portfolio icon was missing. This is fixed.

Download this release

Release Info

Developer pagelayer
Plugin Icon 128x128 Page Builder: PageLayer – Drag and Drop website builder
Version 1.0.8
Comparing to
See all releases

Code changes from version 1.0.7 to 1.0.8

css/pagelayer-editor.css CHANGED
@@ -626,6 +626,19 @@ margin-bottom: 0px;
626
  position: relative;
627
  }
628
 
 
 
 
 
 
 
 
 
 
 
 
 
 
629
  .pagelayer-dark .pagelayer-form-item{
630
  border-bottom: 1px dashed #686870;
631
  }
@@ -783,6 +796,10 @@ line-height: 26px;
783
  width: 100%;
784
  }
785
 
 
 
 
 
786
  .pagelayer-dark .pagelayer-elpd-body input,
787
  .pagelayer-dark .pagelayer-elpd-body textarea,
788
  .pagelayer-dark .pagelayer-elpd-body select,
@@ -813,7 +830,7 @@ font-weight: unset;
813
  font-size: 12px;
814
  padding: 12px 10px;
815
  min-height: unset;
816
- background-color: #3e8ef7;
817
  color: #fff;
818
  transition: all 0.3s;
819
  border-radius: unset;
@@ -823,7 +840,7 @@ cursor:pointer;
823
  }
824
 
825
  .pagelayer-elp-button:hover{
826
- background-color: #3e8ef7bf;
827
  border-color: #00A0D2;
828
  }
829
 
@@ -832,9 +849,46 @@ padding:7px;
832
  width:90%;
833
  margin:5px auto;
834
  height:150px;
835
- border: 1px solid #d5dadf;
836
  position:relative;
837
- border: 1px solid #3e8ef7;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838
  }
839
 
840
  .pagelayer-elp-image{
@@ -850,7 +904,7 @@ cursor: pointer;
850
  position: absolute;
851
  top: 4px;
852
  right: 4px;
853
- background-color: #3e8ef7;
854
  padding: 5px 9px;
855
  max-width: 28px;
856
  max-height: 28px;
@@ -953,6 +1007,24 @@ display:none;
953
  .picker_wrapper {
954
  top: 13px !important;
955
  right: -15px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
956
  }
957
 
958
  .pagelayer-elp-color-span{
@@ -1098,7 +1170,7 @@ padding: 5px;
1098
  height: auto;
1099
  box-sizing: border-box;
1100
  display: none;
1101
- width: 70%;
1102
  border-radius: 2px;
1103
  margin: 0 0 0 auto;
1104
  top: 40px;
@@ -1218,7 +1290,7 @@ padding: 7px 0 0;
1218
 
1219
  input.pagelayer-elp-slider{
1220
  -webkit-appearance: none;
1221
- width: 75%;
1222
  height: 10px;
1223
  border-radius: 5px;
1224
  background-color: #d3d3d3 !important;
@@ -1263,15 +1335,22 @@ cursor: pointer;
1263
 
1264
  .pagelayer-elp-slider-value{
1265
  width: 23% !important;
1266
- margin-left: 2%;
1267
- margin-top: -10px;
1268
- border-radius: 4px;
 
 
 
1269
  }
1270
 
1271
  .pagelayer-elp-datetime-div{
1272
  position: relative;
1273
  }
1274
 
 
 
 
 
1275
  .pagelayer-elp-fa-calendar{
1276
  position: absolute;
1277
  height: 40px;
@@ -1338,7 +1417,7 @@ position: relative;
1338
  }
1339
 
1340
  .pagelayer-elp-input-icon input{
1341
- width: 83%;
1342
  }
1343
 
1344
  .pagelayer-elp-input-icon i.pli{
@@ -1350,6 +1429,7 @@ border-left:0px;
1350
  cursor: pointer;
1351
  background:#FFF;
1352
  line-height:26px !important;
 
1353
  }
1354
 
1355
  .pagelayer-dark .pagelayer-elp-input-icon i.pli{
@@ -1357,16 +1437,26 @@ background: #e0e0e0;
1357
  }
1358
 
1359
  .pagelayer-elp-padding-div i.pli{
1360
- padding:6px 11px;
1361
  border: 1px solid #d1d1d1;
1362
- border-left:0px;
1363
  cursor: pointer;
1364
  background: #FFF;
1365
  vertical-align:top;
 
 
 
1366
  }
1367
 
1368
  .pagelayer-elp-padding-linked{
1369
- background: #CCC !important;
 
 
 
 
 
 
 
1370
  }
1371
 
1372
  .pagelayer-dark .pagelayer-elp-padding-linked{
@@ -1374,22 +1464,32 @@ background: #e0e0e0 !important;
1374
  }
1375
 
1376
  .pagelayer-elp-dimension-div i.pli{
1377
- padding:6px 11px;
1378
  border: 1px solid #d1d1d1;
1379
- border-left:0px;
1380
  cursor: pointer;
1381
  background: #FFF;
1382
  vertical-align:top;
 
 
 
1383
  }
1384
 
1385
  .pagelayer-elp-dimension-linked{
1386
- background: #CCC !important;
 
 
 
 
 
 
 
1387
  }
1388
 
1389
  /* Pagelayer Multi Select Property */
1390
  .pagelayer-elp-multiselect{
1391
  min-height: 25px;
1392
- width:96%;
1393
  }
1394
 
1395
  .pagelayer-elp-multiselect-ul{
@@ -1403,7 +1503,7 @@ border-top:none;
1403
  position:absolute;
1404
  background:rgb(255, 255, 255);
1405
  z-index:1;
1406
- width:100%;
1407
  }
1408
 
1409
  .pagelayer-dark .pagelayer-elp-multiselect-ul{
@@ -1415,7 +1515,7 @@ box-shadow: 0 0.5rem 1rem #00000026;
1415
 
1416
  .pagelayer-elp-multiselect-option{
1417
  font-size:13px;
1418
- padding:3px 8px;
1419
  cursor:pointer;
1420
  }
1421
 
@@ -1424,7 +1524,13 @@ color: #777;
1424
  }
1425
 
1426
  .pagelayer-elp-multiselect-option[selected="selected"]{
1427
- background: #cccccc;
 
 
 
 
 
 
1428
  }
1429
 
1430
  .pagelayer-dark .pagelayer-elp-multiselect-option[selected="selected"]{
@@ -1436,9 +1542,10 @@ color: #fff;
1436
  padding: 3px 5px;
1437
  border-radius: 5px;
1438
  margin: 2px;
1439
- background: #cccccc;
1440
  line-height: 13px;
1441
  font-size: 13px;
 
1442
  }
1443
 
1444
  .pagelayer-dark .pagelayer-elp-multiselect-selected{
@@ -1450,6 +1557,7 @@ background: #ffffff;
1450
  display: flex;
1451
  flex-wrap: wrap;
1452
  padding: 5px;
 
1453
  }
1454
 
1455
  /* Pagelayer Multi Select Property end*/
@@ -1558,8 +1666,8 @@ box-sizing: content-box;
1558
  .pagelayer-elp-shadow-div,
1559
  .pagelayer-elp-typo-div,
1560
  .pagelayer-elp-filter-div{
1561
- padding: 10px 10px 0px;
1562
- box-shadow: 0px 0px 2px rgba(0,0,0,.2);
1563
  position: relative;
1564
  margin-top: 8px;
1565
  border: 1px solid #ddd;
@@ -1626,18 +1734,19 @@ color:#ffffff;
1626
 
1627
  .pagelayer-prop-edit{
1628
  padding: 7px;
1629
- border: 1px solid #ccc;
1630
- width: 44px;
1631
  position: absolute;
1632
  top: 7px;
1633
- right: 8px;
1634
  text-align: center;
1635
  cursor: pointer;
1636
  border-radius: 3px;
1637
  }
1638
 
1639
  .pagelayer-prop-edit i{
1640
- font-size: 20px;
 
1641
  }
1642
 
1643
  .pagelayer-dark .pagelayer-prop-edit i{
@@ -1649,30 +1758,30 @@ display: block;
1649
  }
1650
 
1651
  .pagelayer-elp-shadow-color{
1652
- position: relative;
1653
- height: 35px;
1654
  }
1655
 
1656
  .pagelayer-elp-shadow-color .pagelayer-elp-color-div{
1657
- top:0;
1658
  }
1659
 
1660
- .pagelayer-elp-typo:not(:first-child),
1661
  .pagelayer-elp-prop-grp{
1662
- margin: 3px 0;
1663
- padding: 5px 0;
 
 
1664
  }
1665
 
1666
  .pagelayer-elp-gradient-div .pagelayer-elp-prop-grp{
1667
  padding: 5px 0;
1668
  }
1669
 
1670
- .pagelayer-elp-prop-grp{
1671
- position: relative;
1672
  }
1673
 
1674
  .pagelayer-elp-prop-grp .pagelayer-elp-color-div{
1675
- top: -3px;
1676
  right: 0;
1677
  }
1678
 
@@ -1744,7 +1853,7 @@ color:#bdbdbd;
1744
  .pagelayer-elp-shadow-input{
1745
  padding: 3px;
1746
  border-radius: 4px !important;
1747
- line-height: 18px !important;
1748
  }
1749
 
1750
  .pagelayer-elp-grad-color{
@@ -1862,6 +1971,9 @@ color:#bdbdbd;
1862
 
1863
  .pagelayer-elp-group-item-title{
1864
  flex-grow: 100;
 
 
 
1865
  }
1866
 
1867
  .pagelayer-elp-group-item-del{
@@ -1942,8 +2054,18 @@ padding: 10px !important;
1942
  /* Pagelayer Left bar */
1943
 
1944
  .pagelayer-topbar-holder{
1945
- background-color: #3e8ef7;
1946
  position:relative;
 
 
 
 
 
 
 
 
 
 
1947
  }
1948
 
1949
  .pagelayer-topbar-mover{
@@ -2517,7 +2639,9 @@ cursor:pointer;
2517
  }
2518
 
2519
  .pagelayer-section-tags-holder{
2520
- padding: 10px;
 
 
2521
  }
2522
 
2523
  .pagelayer-section-tags{
@@ -2536,41 +2660,17 @@ background: #326fa6;
2536
 
2537
  .pagelayer-section-modal-body-holder{
2538
  overflow:auto;
2539
- height: calc(100vh - 20px);
 
 
2540
  }
2541
 
2542
  .pagelayer-add-section-modal-body{
2543
- padding: 20px;
2544
  margin: 0;
2545
- box-sizing: border-box;
2546
- }
2547
-
2548
- @media (min-width: 360px) {
2549
- .pagelayer-add-section-modal-body {
2550
- -webkit-column-count: 1;
2551
- column-count: 1;
2552
- }
2553
- }
2554
-
2555
- @media (min-width: 768px) {
2556
- .pagelayer-add-section-modal-body {
2557
- -webkit-column-count: 2;
2558
- column-count: 2;
2559
- }
2560
- }
2561
-
2562
- @media (min-width: 992px) {
2563
- .pagelayer-add-section-modal-body{
2564
- -webkit-column-count: 3;
2565
- column-count: 3;
2566
- }
2567
- }
2568
-
2569
- @media (min-width: 1500px) {
2570
- .pagelayer-add-section-modal-body{
2571
- -webkit-column-count: 4;
2572
- column-count: 4;
2573
- }
2574
  }
2575
 
2576
  .pagelayer-add-section-modal-footer{
@@ -2578,26 +2678,23 @@ padding: 15px;
2578
  border-top: 1px solid #e5e5e5;
2579
  }
2580
 
2581
- .pagelayer-section-item[pagelayer-sc]{
2582
- text-align: center;
2583
- display:flex;
2584
- align-items:center;
2585
- justify-content: space-around;
2586
- min-height: 150px;
2587
- border:2px dashed #e1e1e1;
 
 
2588
  }
2589
 
2590
  .pagelayer-section-item{
2591
  min-height: 50px;
2592
- margin:5px 0px 15px;
2593
- -webkit-column-break-inside: avoid;
2594
- break-inside: avoid;
2595
- line-height:0;
2596
- display:inline-block;
2597
  z-index: 9;
2598
  transition-duration: 0.2s;
2599
  background-color:#fff;
2600
- width:95%;
2601
  border: 3px solid #fff;
2602
  border-radius: 4px;
2603
  cursor: pointer;
@@ -2607,7 +2704,6 @@ position: relative;
2607
  .pagelayer-section-item:hover{
2608
  z-index: 99;
2609
  transform: scale(1.01);
2610
- position: relative;
2611
  border: 3px solid #1A9CDB;
2612
  }
2613
 
@@ -2615,6 +2711,11 @@ border: 3px solid #1A9CDB;
2615
  width:100%;
2616
  }
2617
 
 
 
 
 
 
2618
  .pagelayer-section-pro-req{
2619
  position: absolute;
2620
  top: 15px;
@@ -2660,8 +2761,7 @@ align-items: center;
2660
  justify-content: center;
2661
  text-align:center;
2662
  display:flex;
2663
- color:#3e8ef7;
2664
- background-color:#f7f7f7c2;
2665
  }
2666
 
2667
  .pagelayer-section-wait .fa-spin{
@@ -2779,4 +2879,240 @@ color: #000;
2779
  display:none;
2780
  }
2781
 
2782
- /* Left bar move end*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
626
  position: relative;
627
  }
628
 
629
+ [pagelayer-access-item]{
630
+ position: absolute;
631
+ z-index: -100;
632
+ top: 0px;
633
+ visibility: hidden;
634
+ }
635
+
636
+ .pagelayer-access-item-visible{
637
+ position: relative !important;
638
+ z-index: unset !important;
639
+ visibility: visible !important;
640
+ }
641
+
642
  .pagelayer-dark .pagelayer-form-item{
643
  border-bottom: 1px dashed #686870;
644
  }
796
  width: 100%;
797
  }
798
 
799
+ .pagelayer-elp-textarea{
800
+ border-radius: 3px !important;
801
+ }
802
+
803
  .pagelayer-dark .pagelayer-elpd-body input,
804
  .pagelayer-dark .pagelayer-elpd-body textarea,
805
  .pagelayer-dark .pagelayer-elpd-body select,
830
  font-size: 12px;
831
  padding: 12px 10px;
832
  min-height: unset;
833
+ background-color: #00A0D2;
834
  color: #fff;
835
  transition: all 0.3s;
836
  border-radius: unset;
840
  }
841
 
842
  .pagelayer-elp-button:hover{
843
+ background-color: #00A0D2bf;
844
  border-color: #00A0D2;
845
  }
846
 
849
  width:90%;
850
  margin:5px auto;
851
  height:150px;
 
852
  position:relative;
853
+ border: 1px solid #2EA5DF;
854
+ }
855
+
856
+ .pagelayer-elp-access{
857
+ cursor: pointer;
858
+ padding: 10px;
859
+ display: block;
860
+ margin: 0 auto;
861
+ position: absolute;
862
+ font-size:1.5rem;
863
+ top: 0px;
864
+ right: 12px;
865
+ color: #333;
866
+ vertical-align: middle;
867
+ }
868
+
869
+ .pagelayer-elp-access .pli-caret-right{
870
+ font-size: 18px;
871
+ line-height: 1.5;
872
+ }
873
+
874
+ .pagelayer-elp-access .pli-caret-right:hover{
875
+ color: #3e8ef7;
876
+ }
877
+
878
+ .pagelayer-elp-access .pli-caret-open:before{
879
+ content: "\f0d7" !important;
880
+ }
881
+
882
+ .pagelayer-elp-access-holder{
883
+ position: absolute;
884
+ border: 1px solid #ccc;
885
+ top: 42px;
886
+ background: #fff;
887
+ z-index: 100;
888
+ right: 8px;
889
+ width: 95%;
890
+ box-shadow: 0 0 15px -5px;
891
+ display: none;
892
  }
893
 
894
  .pagelayer-elp-image{
904
  position: absolute;
905
  top: 4px;
906
  right: 4px;
907
+ background-color: #2EA5DF;
908
  padding: 5px 9px;
909
  max-width: 28px;
910
  max-height: 28px;
1007
  .picker_wrapper {
1008
  top: 13px !important;
1009
  right: -15px !important;
1010
+ font-family: Roboto !important;
1011
+ font-size: 12px;
1012
+ border-radius: 4px;
1013
+ background:#f7f7f7;
1014
+ }
1015
+
1016
+ .picker_done button{
1017
+ border: #318088 1px solid;
1018
+ color: #fff;
1019
+ background: #248a4c;
1020
+ border-radius: 2px;
1021
+ font-size: 14px;
1022
+ line-height: 1.5;
1023
+ }
1024
+
1025
+ .picker_editor input{
1026
+ font-family: Roboto !important;
1027
+ font-size: 12px;
1028
  }
1029
 
1030
  .pagelayer-elp-color-span{
1170
  height: auto;
1171
  box-sizing: border-box;
1172
  display: none;
1173
+ width: 80%;
1174
  border-radius: 2px;
1175
  margin: 0 0 0 auto;
1176
  top: 40px;
1290
 
1291
  input.pagelayer-elp-slider{
1292
  -webkit-appearance: none;
1293
+ width: 70%;
1294
  height: 10px;
1295
  border-radius: 5px;
1296
  background-color: #d3d3d3 !important;
1335
 
1336
  .pagelayer-elp-slider-value{
1337
  width: 23% !important;
1338
+ margin-left: 7%;
1339
+ margin-top: -12px;
1340
+ border-radius: 3px !important;
1341
+ padding: 2px 2px 2px 6px;
1342
+ border: 0px solid #fff !important;
1343
+ border-bottom: 1px solid #ccc !important;
1344
  }
1345
 
1346
  .pagelayer-elp-datetime-div{
1347
  position: relative;
1348
  }
1349
 
1350
+ .pagelayer-elp-datetime{
1351
+ width: 99%;
1352
+ }
1353
+
1354
  .pagelayer-elp-fa-calendar{
1355
  position: absolute;
1356
  height: 40px;
1417
  }
1418
 
1419
  .pagelayer-elp-input-icon input{
1420
+ width: 85%;
1421
  }
1422
 
1423
  .pagelayer-elp-input-icon i.pli{
1429
  cursor: pointer;
1430
  background:#FFF;
1431
  line-height:26px !important;
1432
+ font-size: 13px;
1433
  }
1434
 
1435
  .pagelayer-dark .pagelayer-elp-input-icon i.pli{
1437
  }
1438
 
1439
  .pagelayer-elp-padding-div i.pli{
1440
+ padding:8px 11px;
1441
  border: 1px solid #d1d1d1;
1442
+ border-left:0px !important;
1443
  cursor: pointer;
1444
  background: #FFF;
1445
  vertical-align:top;
1446
+ font-size: 12px;
1447
+ border-top-right-radius: 3px;
1448
+ border-bottom-right-radius: 3px;
1449
  }
1450
 
1451
  .pagelayer-elp-padding-linked{
1452
+ background: #1a7fb0 !important;
1453
+ color: #fff !important;
1454
+ border: 1px solid #1a7fb0 !important;
1455
+ }
1456
+
1457
+ .pagelayer-elp-padding:first-child{
1458
+ border-top-left-radius: 3px;
1459
+ border-bottom-left-radius: 3px;
1460
  }
1461
 
1462
  .pagelayer-dark .pagelayer-elp-padding-linked{
1464
  }
1465
 
1466
  .pagelayer-elp-dimension-div i.pli{
1467
+ padding:8px 11px;
1468
  border: 1px solid #d1d1d1;
1469
+ border-left:0px !important;
1470
  cursor: pointer;
1471
  background: #FFF;
1472
  vertical-align:top;
1473
+ font-size: 12px;
1474
+ border-top-right-radius: 3px;
1475
+ border-bottom-right-radius: 3px;
1476
  }
1477
 
1478
  .pagelayer-elp-dimension-linked{
1479
+ background: #1a7fb0 !important;
1480
+ color: #fff !important;
1481
+ border: 1px solid #1a7fb0 !important;
1482
+ }
1483
+
1484
+ .pagelayer-elp-dimension:first-child{
1485
+ border-top-left-radius: 3px;
1486
+ border-bottom-left-radius: 3px;
1487
  }
1488
 
1489
  /* Pagelayer Multi Select Property */
1490
  .pagelayer-elp-multiselect{
1491
  min-height: 25px;
1492
+ width:95%;
1493
  }
1494
 
1495
  .pagelayer-elp-multiselect-ul{
1503
  position:absolute;
1504
  background:rgb(255, 255, 255);
1505
  z-index:1;
1506
+ width:99%;
1507
  }
1508
 
1509
  .pagelayer-dark .pagelayer-elp-multiselect-ul{
1515
 
1516
  .pagelayer-elp-multiselect-option{
1517
  font-size:13px;
1518
+ padding:4px 8px;
1519
  cursor:pointer;
1520
  }
1521
 
1524
  }
1525
 
1526
  .pagelayer-elp-multiselect-option[selected="selected"]{
1527
+ background: #f2f2f2;
1528
+ }
1529
+
1530
+ .pagelayer-elp-multiselect-remove{
1531
+ color: #f2f2f2;
1532
+ padding-left: 2px;
1533
+ cursor: pointer;
1534
  }
1535
 
1536
  .pagelayer-dark .pagelayer-elp-multiselect-option[selected="selected"]{
1542
  padding: 3px 5px;
1543
  border-radius: 5px;
1544
  margin: 2px;
1545
+ background: #44a9db;
1546
  line-height: 13px;
1547
  font-size: 13px;
1548
+ color: #fff;
1549
  }
1550
 
1551
  .pagelayer-dark .pagelayer-elp-multiselect-selected{
1557
  display: flex;
1558
  flex-wrap: wrap;
1559
  padding: 5px;
1560
+ border-radius: 3px;
1561
  }
1562
 
1563
  /* Pagelayer Multi Select Property end*/
1666
  .pagelayer-elp-shadow-div,
1667
  .pagelayer-elp-typo-div,
1668
  .pagelayer-elp-filter-div{
1669
+ padding: 0px 10px;
1670
+ box-shadow: 0px 0px 13px rgba(0,0,0,.3);
1671
  position: relative;
1672
  margin-top: 8px;
1673
  border: 1px solid #ddd;
1734
 
1735
  .pagelayer-prop-edit{
1736
  padding: 7px;
1737
+ border: 1px solid #3e8ca4;
1738
+ width: 20px;
1739
  position: absolute;
1740
  top: 7px;
1741
+ right: 11px;
1742
  text-align: center;
1743
  cursor: pointer;
1744
  border-radius: 3px;
1745
  }
1746
 
1747
  .pagelayer-prop-edit i{
1748
+ font-size: 14px;
1749
+ color: #484848;
1750
  }
1751
 
1752
  .pagelayer-dark .pagelayer-prop-edit i{
1758
  }
1759
 
1760
  .pagelayer-elp-shadow-color{
1761
+ padding: 15px 0px !important;
 
1762
  }
1763
 
1764
  .pagelayer-elp-shadow-color .pagelayer-elp-color-div{
1765
+ top:7px;
1766
  }
1767
 
1768
+ .pagelayer-elp-typo,
1769
  .pagelayer-elp-prop-grp{
1770
+ margin: 0px;
1771
+ padding: 10px 0;
1772
+ position: relative;
1773
+ border-bottom: 1px dashed #ccc;
1774
  }
1775
 
1776
  .pagelayer-elp-gradient-div .pagelayer-elp-prop-grp{
1777
  padding: 5px 0;
1778
  }
1779
 
1780
+ .pagelayer-elp-gradient-color{
1781
+ padding: 15px 0px !important;
1782
  }
1783
 
1784
  .pagelayer-elp-prop-grp .pagelayer-elp-color-div{
 
1785
  right: 0;
1786
  }
1787
 
1853
  .pagelayer-elp-shadow-input{
1854
  padding: 3px;
1855
  border-radius: 4px !important;
1856
+ line-height: 23px !important;
1857
  }
1858
 
1859
  .pagelayer-elp-grad-color{
1971
 
1972
  .pagelayer-elp-group-item-title{
1973
  flex-grow: 100;
1974
+ white-space: nowrap;
1975
+ overflow: hidden;
1976
+ text-overflow: ellipsis;
1977
  }
1978
 
1979
  .pagelayer-elp-group-item-del{
2054
  /* Pagelayer Left bar */
2055
 
2056
  .pagelayer-topbar-holder{
2057
+ background-color: #4CB5E8;
2058
  position:relative;
2059
+ animation: colorchange 30s infinite alternate;
2060
+ -webkit-animation: colorchange 30s infinite alternate;
2061
+ }
2062
+
2063
+ @keyframes colorchange{
2064
+ 0% {background: #3e0772;}
2065
+ 25% {background: #209ce2;}
2066
+ 50% {background: #00838c;}
2067
+ 75% {background: #088dce;}
2068
+ 100% {background: #3d5afe;}
2069
  }
2070
 
2071
  .pagelayer-topbar-mover{
2639
  }
2640
 
2641
  .pagelayer-section-tags-holder{
2642
+ padding: 0px 10px;
2643
+ height: calc(100vh - 150px);
2644
+ overflow: auto;
2645
  }
2646
 
2647
  .pagelayer-section-tags{
2660
 
2661
  .pagelayer-section-modal-body-holder{
2662
  overflow:auto;
2663
+ height: calc(100vh - 50px);
2664
+ width: calc(100vw - 250px);
2665
+ background: #efefef;
2666
  }
2667
 
2668
  .pagelayer-add-section-modal-body{
 
2669
  margin: 0;
2670
+ background: #efefef;
2671
+ height: 100%;
2672
+ display: flex;
2673
+ flex-wrap: wrap;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2674
  }
2675
 
2676
  .pagelayer-add-section-modal-footer{
2678
  border-top: 1px solid #e5e5e5;
2679
  }
2680
 
2681
+ .pagelayer-section-is-visible{
2682
+ height: 50px;
2683
+ flex-basis: 100%;
2684
+ }
2685
+
2686
+ .pagelayer-section-holder{
2687
+ vertical-align: top;
2688
+ background: #efefef;
2689
+ flex: 1;
2690
  }
2691
 
2692
  .pagelayer-section-item{
2693
  min-height: 50px;
2694
+ margin:15px;
 
 
 
 
2695
  z-index: 9;
2696
  transition-duration: 0.2s;
2697
  background-color:#fff;
 
2698
  border: 3px solid #fff;
2699
  border-radius: 4px;
2700
  cursor: pointer;
2704
  .pagelayer-section-item:hover{
2705
  z-index: 99;
2706
  transform: scale(1.01);
 
2707
  border: 3px solid #1A9CDB;
2708
  }
2709
 
2711
  width:100%;
2712
  }
2713
 
2714
+ .pagelayer-section-item[pagelayer-section-type=page]{
2715
+ max-height: 350px;
2716
+ overflow: auto;
2717
+ }
2718
+
2719
  .pagelayer-section-pro-req{
2720
  position: absolute;
2721
  top: 15px;
2761
  justify-content: center;
2762
  text-align:center;
2763
  display:flex;
2764
+ background-color:#f7f7f7fa;
 
2765
  }
2766
 
2767
  .pagelayer-section-wait .fa-spin{
2879
  display:none;
2880
  }
2881
 
2882
+ /* Left bar move end*/
2883
+
2884
+ /* Pre-Loading animaiton classes */
2885
+ #pagelayer-loader-wrapper {
2886
+ background-color:white;
2887
+ -webkit-box-align: center;
2888
+ -ms-flex-align: center;
2889
+ align-items: center;
2890
+ display: -webkit-box;
2891
+ display: -ms-flexbox;
2892
+ display: flex;
2893
+ height: 100%;
2894
+ -webkit-box-pack: center;
2895
+ -ms-flex-pack: center;
2896
+ justify-content: center;
2897
+ position: fixed;
2898
+ left: 0;
2899
+ top: 0;
2900
+ width: 100%;
2901
+ z-index: 9000;
2902
+ }
2903
+
2904
+
2905
+ #pagelayer-loader-wrapper .pagelayer-animation-section {
2906
+ position: absolute;
2907
+ z-index: 1000;
2908
+ }
2909
+
2910
+ .pagelayer-loader {
2911
+ position:relative;
2912
+ width: 150px;
2913
+ height: 150px;
2914
+ margin: 0 auto 50px auto;
2915
+ z-index: 1001;
2916
+ }
2917
+
2918
+ .pagelayer-loader:before {
2919
+ content: "";
2920
+ position: absolute;
2921
+ top: 0;
2922
+ left: 0;
2923
+ right: 0;
2924
+ bottom: 0;
2925
+ border-radius: 50%;
2926
+ border: 3px solid transparent;
2927
+ border-top-color: #3498db;
2928
+ -webkit-animation: spin 3s linear infinite;
2929
+ animation: spin 3s linear infinite;
2930
+ }
2931
+
2932
+ .pagelayer-loader:after {
2933
+ content: "";
2934
+ position: absolute;
2935
+ top: 10px;
2936
+ left: 10px;
2937
+ right: 10px;
2938
+ bottom: 10px;
2939
+ border-radius: 50%;
2940
+ border: 3px solid transparent;
2941
+ border-top-color: #e74c3c;
2942
+ -webkit-animation: spin 2s linear infinite;
2943
+ animation: spin 2s linear infinite;
2944
+ }
2945
+
2946
+ .pagelayer-loader .pagelayer-percent-parent{
2947
+ width:100%;
2948
+ height:100%;
2949
+ margin:auto;
2950
+ display: flex;
2951
+ align-items: center;
2952
+ justify-content: center;
2953
+ text-align:center;
2954
+ }
2955
+
2956
+ .pagelayer-loader .pagelayer-percent-parent:before{
2957
+ content: "";
2958
+ position: absolute;
2959
+ top: 20px;
2960
+ left: 20px;
2961
+ right: 20px;
2962
+ bottom: 20px;
2963
+ border-radius: 50%;
2964
+ border: 3px solid transparent;
2965
+ border-top-color: #f9c922;
2966
+ -webkit-animation: spin 1.5s linear infinite;
2967
+ animation: spin 1.5s linear infinite;
2968
+ }
2969
+
2970
+ .pagelayer-loader .pagelayer-percent-parent .pagelayer-percent{
2971
+ font-size:30px;
2972
+ }
2973
+
2974
+ @-webkit-keyframes spin {
2975
+ 0%{
2976
+ -webkit-transform: rotate(0deg);
2977
+ -ms-transform: rotate(0deg);
2978
+ transform: rotate(0deg);
2979
+ }
2980
+ 100%{
2981
+ -webkit-transform: rotate(360deg);
2982
+ -ms-transform: rotate(360deg);
2983
+ transform: rotate(360deg);
2984
+ }
2985
+ }
2986
+
2987
+ @keyframes spin {
2988
+ 0% {
2989
+ -webkit-transform: rotate(0deg);
2990
+ -ms-transform: rotate(0deg);
2991
+ transform: rotate(0deg);
2992
+ }
2993
+ 100% {
2994
+ -webkit-transform: rotate(360deg);
2995
+ -ms-transform: rotate(360deg);
2996
+ transform: rotate(360deg);
2997
+ }
2998
+ }
2999
+
3000
+ #pagelayer-loader-wrapper .pagelayer-animation-section .pagelayer-txt-loading {
3001
+ font: bold 7em Poppins,sans-serif;
3002
+ text-align: center;
3003
+ -webkit-user-select: none;
3004
+ -moz-user-select: none;
3005
+ -ms-user-select: none;
3006
+ user-select: none;
3007
+ }
3008
+
3009
+ .pagelayer-txt-loading .letters-loading {
3010
+ color: rgba(0,0,0,0.2);
3011
+ position: relative;
3012
+ }
3013
+
3014
+ .pagelayer-txt-loading .letters-loading:before {
3015
+ -webkit-animation: letters-loading 4s infinite;
3016
+ animation: letters-loading 4s infinite;
3017
+ color: #000;
3018
+ content: attr(data-text-preloader);
3019
+ left: 0;
3020
+ opacity: 0;
3021
+ font-family: "Poppins",sans-serif;
3022
+ position: absolute;
3023
+ -webkit-transform: rotateY(-90deg);
3024
+ transform: rotateY(-90deg);
3025
+ }
3026
+
3027
+ .pagelayer-txt-loading .letters-loading:nth-child(2):before {
3028
+ -webkit-animation-delay: .2s;
3029
+ animation-delay: .2s
3030
+ }
3031
+ .pagelayer-txt-loading .letters-loading:nth-child(3):before {
3032
+ -webkit-animation-delay: .4s;
3033
+ animation-delay: .4s
3034
+ }
3035
+ .pagelayer-txt-loading .letters-loading:nth-child(4):before {
3036
+ -webkit-animation-delay: .6s;
3037
+ animation-delay: .6s
3038
+ }
3039
+ .pagelayer-txt-loading .letters-loading:nth-child(5):before {
3040
+ -webkit-animation-delay: .8s;
3041
+ animation-delay: .8s
3042
+ }
3043
+ .pagelayer-txt-loading .letters-loading:nth-child(6):before {
3044
+ -webkit-animation-delay: 1s;
3045
+ animation-delay: 1s
3046
+ }
3047
+ .pagelayer-txt-loading .letters-loading:nth-child(7):before {
3048
+ -webkit-animation-delay: 1.2s;
3049
+ animation-delay: 1.2s
3050
+ }
3051
+ .pagelayer-txt-loading .letters-loading:nth-child(8):before {
3052
+ -webkit-animation-delay: 1.4s;
3053
+ animation-delay: 1.4s
3054
+ }
3055
+ .pagelayer-txt-loading .letters-loading:nth-child(9):before {
3056
+ -webkit-animation-delay: 1.6s;
3057
+ animation-delay: 1.6s
3058
+ }
3059
+ .pagelayer-txt-loading .letters-loading:nth-child(10):before {
3060
+ -webkit-animation-delay: 1.8s;
3061
+ animation-delay: 1.8s
3062
+ }
3063
+ .pagelayer-txt-loading .letters-loading:nth-child(11):before {
3064
+ -webkit-animation-delay: 2s;
3065
+ animation-delay: 2s
3066
+ }
3067
+
3068
+ .pagelayer-loaded .pagelayer-animation-section .pagelayer-loader, .pagelayer-loaded .pagelayer-animation-section .pagelayer-txt-loading{
3069
+ opacity: 0;
3070
+ -webkit-transition: all 0.3s ease-out;
3071
+ transition: all 0.3s ease-out;
3072
+ }
3073
+
3074
+ @-webkit-keyframes letters-loading {
3075
+ 0%, 75%, 100% {
3076
+ opacity: 0;
3077
+ -webkit-transform: rotateY(-90deg);
3078
+ transform: rotateY(-90deg)
3079
+ }
3080
+ 25%, 50% {
3081
+ opacity: 1;
3082
+ -webkit-transform: rotateY(0deg);
3083
+ transform: rotateY(0deg)
3084
+ }
3085
+ }
3086
+ @keyframes letters-loading {
3087
+ 0%, 75%, 100% {
3088
+ opacity: 0;
3089
+ -webkit-transform: rotateY(-90deg);
3090
+ transform: rotateY(-90deg)
3091
+ }
3092
+ 25%, 50% {
3093
+ opacity: 1;
3094
+ -webkit-transform: rotateY(0deg);
3095
+ transform: rotateY(0deg)
3096
+ }
3097
+ }
3098
+
3099
+ @media screen and (max-width: 767px) {
3100
+ #pagelayer-loader-wrapper .pagelayer-animation-section .pagelayer-loader {
3101
+ height: 8em;
3102
+ width: 8em
3103
+ }
3104
+ #pagelayer-loader-wrapper .pagelayer-animation-section .pagelayer-txt-loading {
3105
+ font: bold 3.5em Poppins, sans-serif
3106
+ }
3107
+ }
3108
+ @media screen and (max-width: 500px) {
3109
+ #pagelayer-loader-wrapper .pagelayer-animation-section .pagelayer-loader {
3110
+ height: 7em;
3111
+ width: 7em
3112
+ }
3113
+ #pagelayer-loader-wrapper .pagelayer-animation-section .pagelayer-txt-loading {
3114
+ font: bold 2em Poppins, sans-serif
3115
+ }
3116
+ }
3117
+
3118
+ /* Pre-Loading animaiton classes end*/
css/pagelayer-icons.css CHANGED
@@ -562,4 +562,7 @@ content: "\ea91";
562
  .pli-wordpress:before,
563
  i[class*="pagelayer-pl_wp_"]:before{
564
  content: "\eab4";
 
 
 
565
  }
562
  .pli-wordpress:before,
563
  i[class*="pagelayer-pl_wp_"]:before{
564
  content: "\eab4";
565
+ }
566
+ .pli-caret-right:before{
567
+ content: "\f0da";
568
  }
init.php CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
- define('PAGELAYER_VERSION', '1.0.7');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
@@ -201,6 +201,9 @@ function pagelayer_admin_menu() {
201
 
202
  }
203
 
 
 
 
204
  // License Page
205
  add_submenu_page('pagelayer', __('Pagelayer Editor'), __('License'), $capability, 'pagelayer_license', 'pagelayer_license_page');
206
 
@@ -231,6 +234,17 @@ function pagelayer_license_page(){
231
 
232
  }
233
 
 
 
 
 
 
 
 
 
 
 
 
234
  // Load the Live Body
235
  add_action('template_redirect', 'pagelayer_load_live_body', 4);
236
 
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
+ define('PAGELAYER_VERSION', '1.0.8');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
201
 
202
  }
203
 
204
+ // Import Page
205
+ add_submenu_page('pagelayer', __('Import a Theme and its Templates'), __('Import Theme'), $capability, 'pagelayer_import', 'pagelayer_import_page');
206
+
207
  // License Page
208
  add_submenu_page('pagelayer', __('Pagelayer Editor'), __('License'), $capability, 'pagelayer_license', 'pagelayer_license_page');
209
 
234
 
235
  }
236
 
237
+ // Import Pagelayer Templates
238
+ function pagelayer_import_page(){
239
+
240
+ global $wp_version, $pagelayer;
241
+
242
+ include_once(PAGELAYER_DIR.'/main/import.php');
243
+
244
+ pagelayer_import();
245
+
246
+ }
247
+
248
  // Load the Live Body
249
  add_action('template_redirect', 'pagelayer_load_live_body', 4);
250
 
js/pagelayer-editor.js CHANGED
@@ -93,8 +93,31 @@ jQuery(document).ready(function(){
93
  // Just the txt
94
  pagelayer.pro_txt = 'This feature is a part of <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a>. You will need purchase <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a> to use this feature.';
95
 
 
 
 
96
  });
97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  // Set row-option top zero(0) of the first row
99
  function pagelayer_set_row_option_position(){
100
  if(jQuery(pagelayer_editable).offset().top < 20){
@@ -1207,7 +1230,7 @@ function pagelayer_element_setup(selector, render){
1207
  break;
1208
  }
1209
  }
1210
-
1211
 
1212
  wrap.addClass('pagelayer-col '+col);
1213
  //jEle.removeClass('pagelayer-col '+col);
@@ -2094,7 +2117,7 @@ function pagelayer_set_atts(jEle, atts, val){
2094
 
2095
  // Set the value
2096
  }else{
2097
- jEle.attr('pagelayer-a-'+x, atts[x]);
2098
  }
2099
 
2100
  // Are you the active element
@@ -2774,6 +2797,13 @@ function pagelayer_generate_sc(selector){
2774
  /*if(tag == 'pl_row' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){
2775
  final_tag = 'pl_inner_row';
2776
  }*/
 
 
 
 
 
 
 
2777
 
2778
  // Define inner column
2779
  if(tag == 'pl_col' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){
@@ -3855,38 +3885,38 @@ function pagelayer_scroll_to_viewport(jEle, timeout, parentEle){
3855
  timeout = timeout || 500;
3856
  parentEle = parentEle || jQuery(window);
3857
 
3858
- setTimeout(function () {
3859
- var parentHeight = parentEle.height(),
3860
- parentScrollTop = parentEle.scrollTop(),
3861
- elementTop = jEle.offset().top,
3862
- topToCheck = elementTop - parentScrollTop;
3863
 
3864
- if (topToCheck > 0 && topToCheck < parentHeight) {
3865
- return;
3866
- }
3867
-
3868
- var scrolling = elementTop - parentHeight / 2;
3869
- scrolled.stop(true).animate({
3870
- scrollTop: scrolling
3871
- }, 1000);
3872
- }, timeout);
3873
  }
3874
 
3875
  // Generates a random string of "n" characters
3876
  function pagelayer_randstr(n, special){
3877
- var text = '';
3878
- var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
3879
 
3880
  special = special || 0;
3881
  if(special){
3882
  possible = possible + '&#$%@';
3883
  }
3884
 
3885
- for(var i=0; i < n; i++){
3886
- text += possible.charAt(Math.floor(Math.random() * possible.length));
3887
- }
3888
 
3889
- return text;
3890
  };
3891
 
3892
  function pagelayer_update_site_title(val){
@@ -3911,40 +3941,6 @@ function pagelayer_update_site_title(val){
3911
  }
3912
  }
3913
 
3914
- function pagelayer_trim(str, charlist){
3915
- // discuss at: http://locutus.io/php/trim/
3916
-
3917
- if(typeof str != 'string'){
3918
- return str;
3919
- }
3920
-
3921
- var whitespace = [' ', '\n', '\r', '\t', '\f', '\x0b', '\xa0', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200a', '\u200b', '\u2028', '\u2029', '\u3000' ].join('')
3922
- var l = 0
3923
- var i = 0
3924
- str += ''
3925
-
3926
- if (charlist) {
3927
- whitespace = (charlist + '').replace(/([[\]().?/*{}+$^:])/g, '$1')
3928
- }
3929
-
3930
- l = str.length
3931
- for (i = 0; i < l; i++) {
3932
- if (whitespace.indexOf(str.charAt(i)) === -1) {
3933
- str = str.substring(i)
3934
- break
3935
- }
3936
- }
3937
-
3938
- l = str.length
3939
- for (i = l - 1; i >= 0; i--) {
3940
- if (whitespace.indexOf(str.charAt(i)) === -1) {
3941
- str = str.substring(0, i + 1)
3942
- break
3943
- }
3944
- }
3945
-
3946
- return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''
3947
- };
3948
 
3949
  // Convert the regular URL of a Video to a Embed URL
3950
  function pagelayer_video_url(src){
@@ -4166,7 +4162,10 @@ function pagelayer_add_section_area(){
4166
  '</div>'+
4167
  '<div class="pagelayer-add-section-modal-overlay" style="display:none;">'+
4168
  '<div class="pagelayer-section-wait">'+
4169
- '<i class="fa fa-spinner fa-spin"></i><br/><span>Please wait a moment</span>'+
 
 
 
4170
  '</div>'+
4171
  '</div>'+
4172
  '</div>'+
@@ -4205,13 +4204,37 @@ function pagelayer_add_section_area(){
4205
  function pagelayer_add_sections_list_setup(type){
4206
 
4207
  var mEle = pagelayer.$$('.pagelayer-add-section-modal-container');
 
4208
  var add_area = jQuery('.pagelayer-add-widget-area');
4209
  type = type || 'section';
4210
 
4211
- var viewer = '<div class="pagelayer-section-is-visible" style="height:50px;"><div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4212
  var selected_tags = {};
4213
  var result_set = {};
4214
 
 
 
 
 
 
 
 
 
 
4215
  // Create list of items
4216
  var pagelayer_section_list = function(){
4217
 
@@ -4264,9 +4287,15 @@ function pagelayer_add_sections_list_setup(type){
4264
  // How the result and setup scroll
4265
  var show_result = function(){
4266
 
 
 
 
 
 
4267
  // Blank the body
4268
- mEle.find('.pagelayer-add-section-modal-body').html(viewer);
4269
-
 
4270
  mEle.find('.pagelayer-section-modal-body-holder').on('scroll', pagelayer_section_body_scroll);
4271
  pagelayer_section_body_scroll();
4272
  }
@@ -4297,10 +4326,13 @@ function pagelayer_add_sections_list_setup(type){
4297
  // Loop result_set
4298
  for(var id in result_set){
4299
 
4300
- if(i >= 10){
4301
  break;
4302
  }
4303
 
 
 
 
4304
  i++;
4305
 
4306
  var pro = 0;
@@ -4310,19 +4342,19 @@ function pagelayer_add_sections_list_setup(type){
4310
  pro = 1;
4311
  }
4312
 
4313
- html += '<div class="pagelayer-section-item" pagelayer-add-section-id="'+id+'">'+
4314
- '<img src="'+ pagelayer_add_section_data[type]['image_url'] + id +'/screenshot.jpg" alt="Pagelayer code screenshot">'+
4315
  (pro ? '<div class="pagelayer-section-pro-req">Pro</div><div class="pagelayer-section-pro-txt">'+pagelayer.pro_txt+'</div>' : '')+
4316
  '</div>';
4317
 
 
 
4318
  delete result_set[id];
4319
 
4320
  }
4321
 
4322
  //console.log(result_set);
4323
 
4324
- jQuery(html).insertBefore(tester);
4325
-
4326
  mEle.find('.pagelayer-section-item').unbind('click');
4327
  mEle.find('.pagelayer-section-item').on('click', function(e){
4328
  pagelayer_section_item_clickable(jQuery(this));
@@ -4349,7 +4381,7 @@ function pagelayer_add_sections_list_setup(type){
4349
  for(var k in tags){
4350
  if(k.search(txt) >= 0){
4351
  selected_tags[k] = 1;
4352
- mEle.find('.pagelayer-section-tags[tag='+k+']').attr('on', 1);
4353
  }
4354
  }
4355
 
@@ -4530,11 +4562,11 @@ function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){
4530
 
4531
  reader = new FileReader();
4532
  /* jshint -W083 */
4533
- reader.onloadend = function (event) {
4534
 
4535
  var src = event.target.result;
4536
 
4537
- if( src.indexOf('data:image') === 0 ) {
4538
 
4539
  var block = src.split(";");
4540
  var contentType = block[0].split(":")[1];
@@ -4610,4 +4642,39 @@ function pagelayer_tooltip_setup(){
4610
  pagelayer_tlite.hide(jQuery(this).get(0));
4611
  });
4612
 
4613
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  // Just the txt
94
  pagelayer.pro_txt = 'This feature is a part of <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a>. You will need purchase <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a> to use this feature.';
95
 
96
+ // Hide the loader
97
+ pagelayer_loader_hide();
98
+
99
  });
100
 
101
+ // Executes when pagelayer is fully loaded
102
+ function pagelayer_loader_hide() {
103
+ var inner = pagelayer.$$('.pagelayer-percent');
104
+ inner.attr('loaded', 1);
105
+ var w = parseInt(inner.text());
106
+ var t = setInterval(function() {
107
+ w = w + 1;
108
+ inner.html(w +'<sup>%</sup>');
109
+ if (w >= 100){
110
+ clearInterval(t);
111
+ w = 0;
112
+ var loaderWrapper = pagelayer.$$('#pagelayer-loader-wrapper');
113
+ loaderWrapper.addClass('pagelayer-loaded');
114
+ loaderWrapper.animate({opacity:0}, function(){
115
+ loaderWrapper.remove();
116
+ });
117
+ }
118
+ }, 1);
119
+ }
120
+
121
  // Set row-option top zero(0) of the first row
122
  function pagelayer_set_row_option_position(){
123
  if(jQuery(pagelayer_editable).offset().top < 20){
1230
  break;
1231
  }
1232
  }
1233
+
1234
 
1235
  wrap.addClass('pagelayer-col '+col);
1236
  //jEle.removeClass('pagelayer-col '+col);
2117
 
2118
  // Set the value
2119
  }else{
2120
+ jEle.attr('pagelayer-a-'+x, pagelayer_trim(atts[x]));
2121
  }
2122
 
2123
  // Are you the active element
2797
  /*if(tag == 'pl_row' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){
2798
  final_tag = 'pl_inner_row';
2799
  }*/
2800
+
2801
+ if(pagelayer_empty(tag)){
2802
+ var err = 'Found an error in the content as the TAG was missing. The console will have more details.';
2803
+ alert(err);
2804
+ console.log(err);
2805
+ console.log(jEle);
2806
+ }
2807
 
2808
  // Define inner column
2809
  if(tag == 'pl_col' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){
3885
  timeout = timeout || 500;
3886
  parentEle = parentEle || jQuery(window);
3887
 
3888
+ setTimeout(function(){
3889
+ var parentHeight = parentEle.height(),
3890
+ parentScrollTop = parentEle.scrollTop(),
3891
+ elementTop = jEle.offset().top,
3892
+ topToCheck = elementTop - parentScrollTop;
3893
 
3894
+ if (topToCheck > 0 && topToCheck < parentHeight) {
3895
+ return;
3896
+ }
3897
+
3898
+ var scrolling = elementTop - parentHeight / 2;
3899
+ scrolled.stop(true).animate({
3900
+ scrollTop: scrolling
3901
+ }, 1000);
3902
+ }, timeout);
3903
  }
3904
 
3905
  // Generates a random string of "n" characters
3906
  function pagelayer_randstr(n, special){
3907
+ var text = '';
3908
+ var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
3909
 
3910
  special = special || 0;
3911
  if(special){
3912
  possible = possible + '&#$%@';
3913
  }
3914
 
3915
+ for(var i=0; i < n; i++){
3916
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
3917
+ }
3918
 
3919
+ return text;
3920
  };
3921
 
3922
  function pagelayer_update_site_title(val){
3941
  }
3942
  }
3943
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3944
 
3945
  // Convert the regular URL of a Video to a Embed URL
3946
  function pagelayer_video_url(src){
4162
  '</div>'+
4163
  '<div class="pagelayer-add-section-modal-overlay" style="display:none;">'+
4164
  '<div class="pagelayer-section-wait">'+
4165
+ '<div class="pagelayer-loader">'+
4166
+ '<div class="pagelayer-percent-parent"></div>'+
4167
+ '</div><br/>'+
4168
+ '<span>Please wait a moment</span>'+
4169
  '</div>'+
4170
  '</div>'+
4171
  '</div>'+
4204
  function pagelayer_add_sections_list_setup(type){
4205
 
4206
  var mEle = pagelayer.$$('.pagelayer-add-section-modal-container');
4207
+ var body = mEle.find('.pagelayer-add-section-modal-body');
4208
  var add_area = jQuery('.pagelayer-add-widget-area');
4209
  type = type || 'section';
4210
 
4211
+ // Find the number of cols
4212
+ var body_width = jQuery(window.parent).width();
4213
+ var num_cols = 3;
4214
+ if(body_width >= 1500){
4215
+ num_cols = 4;
4216
+ }else if(body_width >= 992){
4217
+ num_cols = 3;
4218
+ }else if(body_width >= 768){
4219
+ num_cols = 2;
4220
+ }else if(body_width >= 360){
4221
+ num_cols = 1;
4222
+ }
4223
+ //console.log(num_cols+' - '+body_width);
4224
+
4225
+ var viewer = '<div class="pagelayer-section-is-visible"></div>';
4226
  var selected_tags = {};
4227
  var result_set = {};
4228
 
4229
+ // Setup the scroll
4230
+ mEle.find('.pagelayer-section-tags-holder').slimScroll({
4231
+ height: 'calc(100vh - 150px)',
4232
+ railVisible: false,
4233
+ alwaysVisible: true,
4234
+ color: '#000',
4235
+ size: '5px',
4236
+ });
4237
+
4238
  // Create list of items
4239
  var pagelayer_section_list = function(){
4240
 
4287
  // How the result and setup scroll
4288
  var show_result = function(){
4289
 
4290
+ var html = '';
4291
+ for(var i = 0; i < num_cols; i++){
4292
+ html += '<div class="pagelayer-section-holder" pagelayer-section-type="'+type+'" num="'+i+'"></div>';
4293
+ }
4294
+
4295
  // Blank the body
4296
+ body.html(html+viewer);
4297
+
4298
+ mEle.find('.pagelayer-section-modal-body-holder').unbind('scroll');
4299
  mEle.find('.pagelayer-section-modal-body-holder').on('scroll', pagelayer_section_body_scroll);
4300
  pagelayer_section_body_scroll();
4301
  }
4326
  // Loop result_set
4327
  for(var id in result_set){
4328
 
4329
+ if(i >= (num_cols * 5)){
4330
  break;
4331
  }
4332
 
4333
+ var col = i % num_cols;
4334
+ //console.log(col);
4335
+
4336
  i++;
4337
 
4338
  var pro = 0;
4342
  pro = 1;
4343
  }
4344
 
4345
+ html = '<div class="pagelayer-section-item" pagelayer-section-type="'+type+'" pagelayer-add-section-id="'+id+'">'+
4346
+ '<img src="'+ pagelayer_add_section_data[type]['image_url'] + id +'/screenshot.jpg" alt="Pagelayer code screenshot" />'+
4347
  (pro ? '<div class="pagelayer-section-pro-req">Pro</div><div class="pagelayer-section-pro-txt">'+pagelayer.pro_txt+'</div>' : '')+
4348
  '</div>';
4349
 
4350
+ body.find('.pagelayer-section-holder[num='+col+']').append(html);
4351
+
4352
  delete result_set[id];
4353
 
4354
  }
4355
 
4356
  //console.log(result_set);
4357
 
 
 
4358
  mEle.find('.pagelayer-section-item').unbind('click');
4359
  mEle.find('.pagelayer-section-item').on('click', function(e){
4360
  pagelayer_section_item_clickable(jQuery(this));
4381
  for(var k in tags){
4382
  if(k.search(txt) >= 0){
4383
  selected_tags[k] = 1;
4384
+ mEle.find('.pagelayer-section-tags[tag="'+k+'"]').attr('on', 1);
4385
  }
4386
  }
4387
 
4562
 
4563
  reader = new FileReader();
4564
  /* jshint -W083 */
4565
+ reader.onloadend = function(event) {
4566
 
4567
  var src = event.target.result;
4568
 
4569
+ if(src.indexOf('data:image') === 0 ) {
4570
 
4571
  var block = src.split(";");
4572
  var contentType = block[0].split(":")[1];
4642
  pagelayer_tlite.hide(jQuery(this).get(0));
4643
  });
4644
 
4645
+ };
4646
+
4647
+ function pagelayer_trim(str, charlist){
4648
+ // discuss at: http://locutus.io/php/trim/
4649
+
4650
+ if(typeof str != 'string'){
4651
+ return str;
4652
+ }
4653
+
4654
+ var whitespace = [' ', '\n', '\r', '\t', '\f', '\x0b', '\xa0', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200a', '\u200b', '\u2028', '\u2029', '\u3000' ].join('');
4655
+ var l = 0;
4656
+ var i = 0;
4657
+ str += '';
4658
+
4659
+ if (charlist) {
4660
+ whitespace = (charlist + '').replace(/([[\]().?/*{}+$^:])/g, '$1');
4661
+ }
4662
+
4663
+ l = str.length;
4664
+ for (i = 0; i < l; i++) {
4665
+ if (whitespace.indexOf(str.charAt(i)) === -1) {
4666
+ str = str.substring(i);
4667
+ break;
4668
+ }
4669
+ }
4670
+
4671
+ l = str.length;
4672
+ for (i = l - 1; i >= 0; i--) {
4673
+ if (whitespace.indexOf(str.charAt(i)) === -1) {
4674
+ str = str.substring(0, i + 1);
4675
+ break;
4676
+ }
4677
+ }
4678
+
4679
+ return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
4680
+ };
js/pen.js CHANGED
@@ -715,6 +715,18 @@
715
 
716
  // show menu
717
  Pen.prototype.menu = function() {
 
 
 
 
 
 
 
 
 
 
 
 
718
  if (!this._menu) return this;
719
  if (selection.isCollapsed) {
720
  this._menu.style.display = 'none'; //hide menu
@@ -742,6 +754,7 @@
742
  document.head.appendChild(style);
743
  this._stylesheet = stylesheet = style.sheet;
744
  }
 
745
  // display block to caculate its width & height
746
  menu.style.display = 'block';
747
 
715
 
716
  // show menu
717
  Pen.prototype.menu = function() {
718
+
719
+ var allMenus = document.getElementsByClassName('pen-menu');
720
+
721
+ // Hide all menus
722
+ for(var x in allMenus){
723
+ try{
724
+ if('style' in allMenus[x]){
725
+ allMenus[x].style.display = 'none';
726
+ }
727
+ }catch(e){}
728
+ }
729
+
730
  if (!this._menu) return this;
731
  if (selection.isCollapsed) {
732
  this._menu.style.display = 'none'; //hide menu
754
  document.head.appendChild(style);
755
  this._stylesheet = stylesheet = style.sheet;
756
  }
757
+
758
  // display block to caculate its width & height
759
  menu.style.display = 'block';
760
 
js/properties.js CHANGED
@@ -418,6 +418,10 @@ function pagelayer_elpd_row(holder, tab, section, props, name){
418
  // Append the row
419
  holder.append(row);
420
 
 
 
 
 
421
  var fn_ui = window['pagelayer_elp_'+prop['type']+'_ui'];
422
 
423
  // Is there a UI Handler ?
@@ -885,16 +889,6 @@ function pagelayer_elp_label(row, prop){
885
 
886
  };
887
 
888
- // Create the Label
889
- function pagelayer_elp_heading(row, prop){
890
- //row.append('<div class="pagelayer-elp-heading">'+prop['label']+'</div>');
891
- }
892
-
893
- // Create the Label
894
- function pagelayer_elp_heading_ui(row, prop){
895
- row.append('<div class="pagelayer-elp-heading">'+prop['label']+'</div>');
896
- }
897
-
898
  // Create the Description
899
  function pagelayer_elp_desc(row, label){
900
  //row.append('<div class="pagelayer-elp-desc">'+label+'</div>');
@@ -980,11 +974,18 @@ function pagelayer_elp_multiselect(row, prop){
980
  var show_sel = function(val){
981
  var sel_html = '';
982
  jQuery.each(val, function(index, value){
983
- sel_html += '<span class="pagelayer-elp-multiselect-selected">'+prop['list'][value]+'</span>';
984
  });
985
  return sel_html;
986
  }
987
 
 
 
 
 
 
 
 
988
  for (x in prop['list']){
989
  options += option(x, prop['list'][x]);
990
  }
@@ -995,6 +996,7 @@ function pagelayer_elp_multiselect(row, prop){
995
  '</div>';
996
 
997
  row.append(div);
 
998
 
999
  row.find('.pagelayer-elp-multiselect-option').on('click', function(){
1000
 
@@ -1011,13 +1013,14 @@ function pagelayer_elp_multiselect(row, prop){
1011
  //_pagelayer_set_atts(row,JSON.stringify(selection));// Save and Render
1012
  _pagelayer_set_atts(row, selection.join(','));// Save and Render
1013
 
1014
- row.find('.pagelayer-elp-multiselect').html(show_sel(selection));
 
1015
 
1016
  });
1017
 
1018
  // Open the selector
1019
  row.find('.pagelayer-elp-multiselect').on('click', function(){
1020
- row.find('.pagelayer-elp-multiselect-ul').slideToggle();
1021
  });
1022
 
1023
  }
@@ -1615,10 +1618,15 @@ function pagelayer_elp_slider(row, prop){
1615
 
1616
  // Set an value in span
1617
  row.find('.pagelayer-elp-slider-div input').on('input', function(){
 
 
1618
 
1619
- row.find('.pagelayer-elp-slider-div input').val(this.value);
 
 
 
1620
 
1621
- _pagelayer_set_atts(row, this.value);// Save and Render
1622
 
1623
  });
1624
 
@@ -1710,12 +1718,15 @@ function pagelayer_elp_textarea(row, prop){
1710
  };
1711
 
1712
  // Clear all editable
1713
- function pagelayer_clear_editable(){
1714
 
1715
  // Destroy all
1716
  for(var x in pagelayer_editor){
 
 
 
 
1717
  pagelayer_editor[x].pen.destroy();
1718
- pagelayer_editor[x].$.removeClass('pagelayer-pen');
1719
  }
1720
 
1721
  };
@@ -1723,22 +1734,23 @@ function pagelayer_clear_editable(){
1723
  // Makes a field editable in the DOM
1724
  function pagelayer_make_editable(jEle, e){
1725
 
 
 
 
 
 
1726
  // Is it already setup ?
1727
  if(jEle.hasClass('pagelayer-pen')){
1728
  //console.log('Already Penned');
 
1729
  return true;
1730
  }
1731
 
1732
- var prop = jEle.attr('pagelayer-editable');
1733
-
1734
  // Destroy the existing pen
1735
- if(!pagelayer_empty(pagelayer_editor[prop])){
1736
- pagelayer_editor[prop].pen.destroy();
1737
- pagelayer_editor[prop].$.removeClass('pagelayer-pen');
1738
- }
1739
-
1740
- // The parent element
1741
- var pEle = jEle.closest('.pagelayer-ele');
1742
 
1743
  var options = {
1744
  class: 'pagelayer-pen',
@@ -1748,9 +1760,9 @@ function pagelayer_make_editable(jEle, e){
1748
  }
1749
 
1750
  // Setup the editor
1751
- pagelayer_editor[prop] = {};
1752
- pagelayer_editor[prop].pen = new Pen(options);
1753
- pagelayer_editor[prop].$ = jEle;
1754
 
1755
  // Are we the clicked object, then set the focus
1756
  if(e){
@@ -1760,16 +1772,15 @@ function pagelayer_make_editable(jEle, e){
1760
  }
1761
  }
1762
 
1763
- // Reverse setup the event
1764
  jEle.on('blur', function(){
1765
- //pagelayer_editor[prop].pen.destroy();
1766
  });
1767
 
1768
  // Reverse setup the event
1769
  jEle.on('focus', function(){
1770
- jQuery('.pagelayer-pen-menu').hide();
1771
- pagelayer_editor[prop].pen.rebuild();
1772
- });
1773
 
1774
  // Reverse setup the event
1775
  jEle.on('input', function(){
@@ -1851,15 +1862,15 @@ function pagelayer_elp_icon(row, prop){
1851
  }
1852
 
1853
  var div = '<div class="pagelayer-elp-icon-div">'+
1854
- '<div class="pagelayer-elp-icon-preview">'+
1855
- '<i class="'+sel_icon+'"></i>'+
1856
- '<span class="pagelayer-elp-icon-name">'+
1857
- (pagelayer_empty(sel_name)?'Choose icon':sel_name)+
1858
- '</span>'+
1859
- '</div>'+
1860
- '<span class="pagelayer-elp-icon-open">▼</span>'+
1861
- '<span class="pagelayer-elp-icon-close" '+(pagelayer_empty(sel_name)? 'style="display:none"': '')+'><b>&times;&nbsp;</b></span>'+
1862
- '</div>';
1863
 
1864
  row.append(div);
1865
 
@@ -1869,8 +1880,9 @@ function pagelayer_elp_icon(row, prop){
1869
  if(pagelayer_loaded_icons.length > 1){
1870
  html += '<select class="pagelayer-elp-icon-sets">'+sets_html+'</select>';
1871
  }
1872
- html += '<span class="pagelayer-elp-icon-type" style="display:none;">'+
1873
- '<p data-tab="fas">'+pagelayer_l('Solid')+'</p>'+
 
1874
  '<p data-tab="far">'+pagelayer_l('Regular')+'</p>'+
1875
  '<p data-tab="fab">'+pagelayer_l('Brand')+'</p>'+
1876
  '</span>'+
@@ -1889,12 +1901,13 @@ function pagelayer_elp_icon(row, prop){
1889
 
1890
  row.append(html);
1891
 
1892
- if(cur_icon_set == 'font-awesome5'){
1893
- row.find('.pagelayer-elp-icon-type').show();
1894
- sorted_icons = icons[cur_icon_set]['fas'];
1895
- }
1896
 
1897
- row.find('.pagelayer-elp-icon-sets').on('change',function(){
 
1898
  var v = cur_icon_set = jQuery(this).val();
1899
  var span = '';
1900
 
@@ -1920,57 +1933,35 @@ function pagelayer_elp_icon(row, prop){
1920
  row.find('.pagelayer-elp-search-icon').keyup();
1921
  }
1922
 
1923
- });
1924
-
1925
- // Open the selector
1926
- row.find('.pagelayer-elp-icon-div').on('click', function(){
1927
- row.find('.pagelayer-elp-icon-selector').slideToggle();
1928
- });
1929
 
1930
  // Handle type of icon
1931
- row.find('.pagelayer-elp-icon-type p').on('click', function(){
1932
-
1933
- if(cur_icon_set == 'font-awesome5'){
1934
-
1935
- var v = jQuery(this).data('tab');
1936
-
1937
- row.find('.pagelayer-elp-icon-type p').removeClass('active');
1938
-
1939
- jQuery(this).addClass('active');
1940
-
1941
- var span ='';
1942
- v = v.toLowerCase();
1943
-
1944
- sorted_icons = icons['font-awesome5'][v];
1945
-
1946
- for(var z in icons['font-awesome5'][v]['icons']){
1947
- span += icon_html(icons['font-awesome5'][v]['icons'][z], v);
1948
- }
1949
-
1950
- row.find('.pagelayer-elp-icon-list').empty().html(span);
1951
-
1952
- if(row.find('.pagelayer-elp-search-icon').val() != ''){
1953
- row.find('.pagelayer-elp-search-icon').keyup();
1954
- }
1955
-
1956
- }
1957
-
1958
  });
1959
 
1960
  // Handle search of icon
1961
  row.find('.pagelayer-elp-search-icon').on('keyup', function(){
1962
 
1963
  var v = this.value;
1964
- var span ='';
1965
  v = v.toLowerCase();
1966
  v = v.replace(/\s+/g, '-');
1967
  //console.log(sorted_icons);
1968
 
1969
- for(var x in sorted_icons['icons']){
1970
- if(sorted_icons['icons'][x].includes(v)){
1971
- span += icon_html(sorted_icons['icons'][x], sorted_icons['pre']);
 
 
 
 
 
 
 
1972
  }
1973
- }
1974
 
1975
  row.find('.pagelayer-elp-icon-list').empty().html(span);
1976
 
@@ -2012,6 +2003,39 @@ function pagelayer_elp_icon(row, prop){
2012
 
2013
  }
2014
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2015
  // The Color Property
2016
  function pagelayer_elp_color(row, prop){
2017
 
@@ -2063,7 +2087,7 @@ function pagelayer_elp_color(row, prop){
2063
  preview.addClass('pagelayer-blank-preview');
2064
  handle_white('');
2065
  _pagelayer_set_atts(row, ' ');// Save and Render
2066
- })
2067
 
2068
  }
2069
 
@@ -2078,7 +2102,13 @@ function pagelayer_elp_spinner(row, prop){
2078
  row.append(div);
2079
 
2080
  row.find('input').on('input', function(){
2081
- _pagelayer_set_atts(row, jQuery(this).val());// Save and Render
 
 
 
 
 
 
2082
  });
2083
 
2084
  }
@@ -2226,7 +2256,7 @@ function pagelayer_elp_group(row, prop){
2226
  // The Datetime Property
2227
  function pagelayer_elp_datetime(row, prop){
2228
 
2229
- var div = '<div class="pagelayer-elp-datetime-div pagelayer-elp-input-icon">'+
2230
  '<input type="date" class="pagelayer-elp-datetime" name="'+prop.c['name']+'" value="'+prop.c['val']+'" />'+
2231
  '</div>';
2232
 
@@ -2347,6 +2377,7 @@ function pagelayer_elp_shadow(row, prop){
2347
  '<label class="pagelayer-elp-label">Color</label>'+
2348
  '<div class="pagelayer-elp-color-div">'+
2349
  '<div class="pagelayer-elp-color-preview"></div>'+
 
2350
  '</div>'+
2351
  '</div>'+
2352
  '</div>';
@@ -2357,7 +2388,8 @@ function pagelayer_elp_shadow(row, prop){
2357
  row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show');
2358
  });
2359
 
2360
- row.find('.pagelayer-elp-color-preview').css('background', val[3]);
 
2361
 
2362
  var picker = new Picker({
2363
  parent : row.find('.pagelayer-elp-color-div')[0],
@@ -2366,13 +2398,39 @@ function pagelayer_elp_shadow(row, prop){
2366
  doc: window.parent.document
2367
  });
2368
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2369
  // Handle selected color
2370
  picker.onChange = function(color) {
2371
- row.find('.pagelayer-elp-color-preview').css('background', color.rgbaString);
 
2372
  val[3] = (color.hex ? color.hex : '');
2373
  _pagelayer_set_atts(row, val);
2374
  };
2375
 
 
 
 
 
 
 
 
 
 
 
2376
  row.find('input').on('input', function(){
2377
  var i = 0;
2378
  row.find('.pagelayer-elp-shadow-input').each(function(){
@@ -2419,11 +2477,12 @@ function pagelayer_elp_box_shadow(row, prop){
2419
  '<label class="pagelayer-elp-label">Color</label>'+
2420
  '<div class="pagelayer-elp-color-div">'+
2421
  '<div class="pagelayer-elp-color-preview"></div>'+
 
2422
  '</div>'+
2423
  '</div>'+
2424
  '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-inset">'+
2425
  '<label class="pagelayer-elp-label">Shadow</label>'+
2426
- '<select class="pagelayer-elp-shadow-input" name="inset" type="checkbox" class="pagelayer-elp-shadow-inset">'+
2427
  '<option value="">Outset</option>'+
2428
  '<option value="inset"'+(pagelayer_empty(val[5]) ? '' : ' selected' )+'>Inset</option>'+
2429
  '</select>'+
@@ -2436,7 +2495,8 @@ function pagelayer_elp_box_shadow(row, prop){
2436
  row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show');
2437
  });
2438
 
2439
- row.find('.pagelayer-elp-color-preview').css('background', val[3]);
 
2440
 
2441
  var picker = new Picker({
2442
  parent : row.find('.pagelayer-elp-color-div')[0],
@@ -2445,13 +2505,40 @@ function pagelayer_elp_box_shadow(row, prop){
2445
  doc: window.parent.document
2446
  });
2447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2448
  // Handle selected color
2449
  picker.onChange = function(color) {
2450
  row.find('.pagelayer-elp-color-preview').css('background', color.rgbaString);
 
2451
  val[3] = (color.hex ? color.hex : '');
2452
  _pagelayer_set_atts(row, val);
2453
  };
2454
 
 
 
 
 
 
 
 
 
 
 
 
2455
  row.find('.pagelayer-elp-shadow-input').on('input change', function(){
2456
  //var i = 0;
2457
  row.find('.pagelayer-elp-shadow-input').each(function(){
@@ -2525,8 +2612,8 @@ function pagelayer_elp_gradient(row, prop){
2525
  '<label class="pagelayer-elp-label">Angle</label>'+
2526
  '<input class="pagelayer-elp-gradient-input" type="number" max="360" min="0" step="1" class="pagelayer-elp-gradient-angle" value="'+val[0]+'"></input>'+
2527
  '</div>'+
2528
- '<div class="pagelayer-elp-prop-grp">'+
2529
- '<label class="pagelayer-elp-label">color 1</label>'+
2530
  '<div class="pagelayer-elp-color-div">'+
2531
  '<div class="pagelayer-elp-gradient-color1 pagelayer-elp-color-preview"></div>'+
2532
  '</div>'+
@@ -2535,8 +2622,8 @@ function pagelayer_elp_gradient(row, prop){
2535
  '<label class="pagelayer-elp-label">Percentage 1</label>'+
2536
  '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-gradient-per1" value="'+val[2]+'"></input>'+
2537
  '</div>'+
2538
- '<div class="pagelayer-elp-prop-grp">'+
2539
- '<label class="pagelayer-elp-label">color 2</label>'+
2540
  '<div class="pagelayer-elp-color-div">'+
2541
  '<div class="pagelayer-elp-gradient-color2 pagelayer-elp-color-preview"></div>'+
2542
  '</div>'+
@@ -2545,8 +2632,8 @@ function pagelayer_elp_gradient(row, prop){
2545
  '<label class="pagelayer-elp-label">Percentage 2</label>'+
2546
  '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-gradient-per2" value="'+val[4]+'"></input>'+
2547
  '</div>'+
2548
- '<div class="pagelayer-elp-prop-grp">'+
2549
- '<label class="pagelayer-elp-label">color 3</label>'+
2550
  '<div class="pagelayer-elp-color-div">'+
2551
  '<div class="pagelayer-elp-gradient-color3 pagelayer-elp-color-preview"></div>'+
2552
  '</div>'+
@@ -2669,7 +2756,7 @@ function pagelayer_elp_typography(row, prop){
2669
  '</div>'+
2670
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-style">'+
2671
  '<label class="pagelayer-elp-label">Font-Style</label>'+
2672
- '<select class="pagelayer-elp-typo-input">';
2673
 
2674
  jQuery.each(select['style'],function(key, value){
2675
  div += option(value, val[2]);
@@ -2678,7 +2765,7 @@ function pagelayer_elp_typography(row, prop){
2678
  '</div>'+
2679
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-weight">'+
2680
  '<label class="pagelayer-elp-label">Font-Weight</label>'+
2681
- '<select class="pagelayer-elp-typo-input">';
2682
  jQuery.each(select['weight'],function(key, value){
2683
  div += option(value, val[3]);
2684
  });
@@ -2687,7 +2774,7 @@ function pagelayer_elp_typography(row, prop){
2687
  '</div>'+
2688
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-variant">'+
2689
  '<label class="pagelayer-elp-label">Font-variant</label>'+
2690
- '<select class="pagelayer-elp-typo-input">';
2691
  jQuery.each(select['variant'],function(key, value){
2692
  div += option(value, val[4]);
2693
  });
@@ -2696,7 +2783,7 @@ function pagelayer_elp_typography(row, prop){
2696
  '</div>'+
2697
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-line">'+
2698
  '<label class="pagelayer-elp-label">Decoration Line</label>'+
2699
- '<select class="pagelayer-elp-typo-input">';
2700
  jQuery.each(select['deco-line'],function(key, value){
2701
  div += option(value, val[5]);
2702
  });
@@ -2705,7 +2792,7 @@ function pagelayer_elp_typography(row, prop){
2705
  '</div>'+
2706
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-style">'+
2707
  '<label class="pagelayer-elp-label">Decoration Style</label>'+
2708
- '<select class="pagelayer-elp-typo-input">';
2709
  jQuery.each(select['deco-style'],function(key, value){
2710
  div += option(value, val[6]);
2711
  });
@@ -2718,7 +2805,7 @@ function pagelayer_elp_typography(row, prop){
2718
  '</div>'+
2719
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-transform">'+
2720
  '<label class="pagelayer-elp-label">Text Transform</label>'+
2721
- '<select class="pagelayer-elp-typo-input">';
2722
  jQuery.each(select['transform'],function(key, value){
2723
  div += option(value, val[8]);
2724
  });
418
  // Append the row
419
  holder.append(row);
420
 
421
+ if('group' in prop){
422
+ row.attr('pagelayer-access-item', prop.group);
423
+ }
424
+
425
  var fn_ui = window['pagelayer_elp_'+prop['type']+'_ui'];
426
 
427
  // Is there a UI Handler ?
889
 
890
  };
891
 
 
 
 
 
 
 
 
 
 
 
892
  // Create the Description
893
  function pagelayer_elp_desc(row, label){
894
  //row.append('<div class="pagelayer-elp-desc">'+label+'</div>');
974
  var show_sel = function(val){
975
  var sel_html = '';
976
  jQuery.each(val, function(index, value){
977
+ sel_html += '<span class="pagelayer-elp-multiselect-selected" data-val="'+value+'">'+prop['list'][value]+' <span class="pagelayer-elp-multiselect-remove">x</span></span>';
978
  });
979
  return sel_html;
980
  }
981
 
982
+ var setup_remove = function(){
983
+ row.find('.pagelayer-elp-multiselect-remove').on('click', function(){
984
+ var sVal = jQuery(this).parent().attr('data-val');
985
+ row.find('.pagelayer-elp-multiselect-option[data-val='+sVal+']').click();
986
+ });
987
+ }
988
+
989
  for (x in prop['list']){
990
  options += option(x, prop['list'][x]);
991
  }
996
  '</div>';
997
 
998
  row.append(div);
999
+ setup_remove();
1000
 
1001
  row.find('.pagelayer-elp-multiselect-option').on('click', function(){
1002
 
1013
  //_pagelayer_set_atts(row,JSON.stringify(selection));// Save and Render
1014
  _pagelayer_set_atts(row, selection.join(','));// Save and Render
1015
 
1016
+ row.find('.pagelayer-elp-multiselect').html(show_sel(selection));
1017
+ setup_remove();
1018
 
1019
  });
1020
 
1021
  // Open the selector
1022
  row.find('.pagelayer-elp-multiselect').on('click', function(){
1023
+ row.find('.pagelayer-elp-multiselect-ul').slideToggle(100);
1024
  });
1025
 
1026
  }
1618
 
1619
  // Set an value in span
1620
  row.find('.pagelayer-elp-slider-div input').on('input', function(){
1621
+ var value = parseFloat(this.value);
1622
+ var max = parseFloat(this.max);
1623
 
1624
+ if(!pagelayer_empty(max) && value > max){
1625
+ value = max;
1626
+ }
1627
+ row.find('.pagelayer-elp-slider-div input').val(value);
1628
 
1629
+ _pagelayer_set_atts(row, value);// Save and Render
1630
 
1631
  });
1632
 
1718
  };
1719
 
1720
  // Clear all editable
1721
+ function pagelayer_clear_editable(dontDestroy){
1722
 
1723
  // Destroy all
1724
  for(var x in pagelayer_editor){
1725
+ if(dontDestroy == x){
1726
+ console.log('Skipping '+dontDestroy);
1727
+ continue;
1728
+ }
1729
  pagelayer_editor[x].pen.destroy();
 
1730
  }
1731
 
1732
  };
1734
  // Makes a field editable in the DOM
1735
  function pagelayer_make_editable(jEle, e){
1736
 
1737
+ // The parent element
1738
+ var pEle = jEle.closest('.pagelayer-ele');
1739
+ var prop = jEle.attr('pagelayer-editable');
1740
+ var eId = pagelayer_id(pEle)+'|'+jEle.attr('pagelayer-editable');// Editing ID
1741
+
1742
  // Is it already setup ?
1743
  if(jEle.hasClass('pagelayer-pen')){
1744
  //console.log('Already Penned');
1745
+ //pagelayer_focus_editable(jEle, e, eId);
1746
  return true;
1747
  }
1748
 
 
 
1749
  // Destroy the existing pen
1750
+ /*if(!pagelayer_empty(pagelayer_editor[eId])){
1751
+ pagelayer_editor[eId].pen.destroy();
1752
+ pagelayer_editor[eId].$.removeClass('pagelayer-pen');
1753
+ }*/
 
 
 
1754
 
1755
  var options = {
1756
  class: 'pagelayer-pen',
1760
  }
1761
 
1762
  // Setup the editor
1763
+ pagelayer_editor[eId] = {};
1764
+ pagelayer_editor[eId].pen = new Pen(options);
1765
+ pagelayer_editor[eId].$ = jEle;
1766
 
1767
  // Are we the clicked object, then set the focus
1768
  if(e){
1772
  }
1773
  }
1774
 
1775
+ /*// Reverse setup the event
1776
  jEle.on('blur', function(){
1777
+ //pagelayer_editor[eId].pen.destroy();
1778
  });
1779
 
1780
  // Reverse setup the event
1781
  jEle.on('focus', function(){
1782
+ //pagelayer_clear_editable(eId);
1783
+ });*/
 
1784
 
1785
  // Reverse setup the event
1786
  jEle.on('input', function(){
1862
  }
1863
 
1864
  var div = '<div class="pagelayer-elp-icon-div">'+
1865
+ '<div class="pagelayer-elp-icon-preview">'+
1866
+ '<i class="'+sel_icon+'"></i>'+
1867
+ '<span class="pagelayer-elp-icon-name">'+
1868
+ (pagelayer_empty(sel_name)?'Choose icon':sel_name)+
1869
+ '</span>'+
1870
+ '</div>'+
1871
+ '<span class="pagelayer-elp-icon-open">▼</span>'+
1872
+ '<span class="pagelayer-elp-icon-close" '+(pagelayer_empty(sel_name)? 'style="display:none"': '')+'><b>&times;&nbsp;</b></span>'+
1873
+ '</div>';
1874
 
1875
  row.append(div);
1876
 
1880
  if(pagelayer_loaded_icons.length > 1){
1881
  html += '<select class="pagelayer-elp-icon-sets">'+sets_html+'</select>';
1882
  }
1883
+
1884
+ html += '<span class="pagelayer-elp-icon-type">'+
1885
+ '<p data-tab="fas" class="active">'+pagelayer_l('Solid')+'</p>'+
1886
  '<p data-tab="far">'+pagelayer_l('Regular')+'</p>'+
1887
  '<p data-tab="fab">'+pagelayer_l('Brand')+'</p>'+
1888
  '</span>'+
1901
 
1902
  row.append(html);
1903
 
1904
+ // Open the selector
1905
+ row.find('.pagelayer-elp-icon-div').on('click', function(){
1906
+ row.find('.pagelayer-elp-icon-selector').slideToggle();
1907
+ });
1908
 
1909
+ /*// When the set changes
1910
+ row.find('.pagelayer-elp-icon-sets').on('change', function(){
1911
  var v = cur_icon_set = jQuery(this).val();
1912
  var span = '';
1913
 
1933
  row.find('.pagelayer-elp-search-icon').keyup();
1934
  }
1935
 
1936
+ });*/
 
 
 
 
 
1937
 
1938
  // Handle type of icon
1939
+ row.find('.pagelayer-elp-icon-type p').on('click', function(){
1940
+ jQuery(this).toggleClass('active');
1941
+ row.find('.pagelayer-elp-search-icon').keyup();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1942
  });
1943
 
1944
  // Handle search of icon
1945
  row.find('.pagelayer-elp-search-icon').on('keyup', function(){
1946
 
1947
  var v = this.value;
1948
+ var span = '';
1949
  v = v.toLowerCase();
1950
  v = v.replace(/\s+/g, '-');
1951
  //console.log(sorted_icons);
1952
 
1953
+ row.find('.pagelayer-elp-icon-type p.active').each(function(){
1954
+ var tab = jQuery(this).data('tab');
1955
+ tab = tab.toLowerCase();
1956
+
1957
+ var cat = icons['font-awesome5'][tab]['icons'];
1958
+
1959
+ for(var x in cat){
1960
+ if(cat[x].includes(v) || v.length < 1){
1961
+ span += icon_html(cat[x], tab);
1962
+ }
1963
  }
1964
+ });
1965
 
1966
  row.find('.pagelayer-elp-icon-list').empty().html(span);
1967
 
2003
 
2004
  }
2005
 
2006
+ // The Access Property
2007
+ function pagelayer_elp_access(row, prop){
2008
+
2009
+ var div = '<div class="pagelayer-elp-access-div">'+
2010
+ '<span class="pagelayer-elp-access"><i class="pli pli-caret-right" /></span>'+
2011
+ '<div class="pagelayer-elp-access-holder"></div>'+
2012
+ '</div>';
2013
+
2014
+ row.append(div);
2015
+
2016
+ var holder = row.find('.pagelayer-elp-access-holder');
2017
+
2018
+ row.find('.pagelayer-elp-access').on('click', function(){
2019
+
2020
+ // Setup first
2021
+ if(holder.children().length < 1){
2022
+ var p = row.parent().find('[pagelayer-access-item='+prop.show_group+']').detach();
2023
+ p.appendTo(holder);
2024
+ p.addClass('pagelayer-access-item-visible');
2025
+ }
2026
+
2027
+ // Show and hide
2028
+ if(holder.is(':visible')){
2029
+ holder.hide();
2030
+ row.find('.pli-caret-right').removeClass('pli-caret-open');
2031
+ }else{
2032
+ holder.show();
2033
+ row.find('.pli-caret-right').addClass('pli-caret-open');
2034
+ }
2035
+ });
2036
+
2037
+ };
2038
+
2039
  // The Color Property
2040
  function pagelayer_elp_color(row, prop){
2041
 
2087
  preview.addClass('pagelayer-blank-preview');
2088
  handle_white('');
2089
  _pagelayer_set_atts(row, ' ');// Save and Render
2090
+ });
2091
 
2092
  }
2093
 
2102
  row.append(div);
2103
 
2104
  row.find('input').on('input', function(){
2105
+ var value = parseFloat(this.value);
2106
+ var max = parseFloat(this.max);
2107
+
2108
+ if(!pagelayer_empty(max) && value > max){
2109
+ value = max;
2110
+ }
2111
+ _pagelayer_set_atts(row, value);// Save and Render
2112
  });
2113
 
2114
  }
2256
  // The Datetime Property
2257
  function pagelayer_elp_datetime(row, prop){
2258
 
2259
+ var div = '<div class="pagelayer-elp-datetime-div">'+
2260
  '<input type="date" class="pagelayer-elp-datetime" name="'+prop.c['name']+'" value="'+prop.c['val']+'" />'+
2261
  '</div>';
2262
 
2377
  '<label class="pagelayer-elp-label">Color</label>'+
2378
  '<div class="pagelayer-elp-color-div">'+
2379
  '<div class="pagelayer-elp-color-preview"></div>'+
2380
+ '<span class="pagelayer-elp-remove-color"><i class="pli pli-cross" /></span>'+
2381
  '</div>'+
2382
  '</div>'+
2383
  '</div>';
2388
  row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show');
2389
  });
2390
 
2391
+ var preview = row.find('.pagelayer-elp-color-preview');
2392
+ preview.css('background', val[3]);
2393
 
2394
  var picker = new Picker({
2395
  parent : row.find('.pagelayer-elp-color-div')[0],
2398
  doc: window.parent.document
2399
  });
2400
 
2401
+ // If no val, then set blank
2402
+ if(pagelayer_empty(val[3])){
2403
+ preview.addClass('pagelayer-blank-preview');
2404
+ }
2405
+
2406
+ var handle_white = function(col){
2407
+ if(col.charAt(1) == 'f'){
2408
+ preview.addClass('pagelayer-white-border');
2409
+ }else{
2410
+ preview.removeClass('pagelayer-white-border');
2411
+ }
2412
+ }
2413
+
2414
+ handle_white(val[3]);
2415
+
2416
  // Handle selected color
2417
  picker.onChange = function(color) {
2418
+ preview.removeClass('pagelayer-blank-preview').css('background', color.rgbaString);
2419
+ handle_white(color.hex);
2420
  val[3] = (color.hex ? color.hex : '');
2421
  _pagelayer_set_atts(row, val);
2422
  };
2423
 
2424
+ // Remove Color
2425
+ row.find('.pagelayer-elp-remove-color').on('click', function(event){
2426
+ event.stopPropagation();
2427
+ picker.setColor(prop.default, true);
2428
+ preview.addClass('pagelayer-blank-preview');
2429
+ handle_white('');
2430
+ val[3] = '';
2431
+ _pagelayer_set_atts(row, val);
2432
+ });
2433
+
2434
  row.find('input').on('input', function(){
2435
  var i = 0;
2436
  row.find('.pagelayer-elp-shadow-input').each(function(){
2477
  '<label class="pagelayer-elp-label">Color</label>'+
2478
  '<div class="pagelayer-elp-color-div">'+
2479
  '<div class="pagelayer-elp-color-preview"></div>'+
2480
+ '<span class="pagelayer-elp-remove-color"><i class="pli pli-cross" /></span>'+
2481
  '</div>'+
2482
  '</div>'+
2483
  '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-inset">'+
2484
  '<label class="pagelayer-elp-label">Shadow</label>'+
2485
+ '<select class="pagelayer-elp-shadow-input pagelayer-elp-select" name="inset" type="checkbox" class="pagelayer-elp-shadow-inset">'+
2486
  '<option value="">Outset</option>'+
2487
  '<option value="inset"'+(pagelayer_empty(val[5]) ? '' : ' selected' )+'>Inset</option>'+
2488
  '</select>'+
2495
  row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show');
2496
  });
2497
 
2498
+ var preview = row.find('.pagelayer-elp-color-preview');
2499
+ preview.css('background', val[3]);
2500
 
2501
  var picker = new Picker({
2502
  parent : row.find('.pagelayer-elp-color-div')[0],
2505
  doc: window.parent.document
2506
  });
2507
 
2508
+ // If no val, then set blank
2509
+ if(pagelayer_empty(val[3])){
2510
+ preview.addClass('pagelayer-blank-preview');
2511
+ }
2512
+
2513
+ var handle_white = function(col){
2514
+ if(col.charAt(1) == 'f'){
2515
+ preview.addClass('pagelayer-white-border');
2516
+ }else{
2517
+ preview.removeClass('pagelayer-white-border');
2518
+ }
2519
+ }
2520
+
2521
+ handle_white(val[3]);
2522
+
2523
  // Handle selected color
2524
  picker.onChange = function(color) {
2525
  row.find('.pagelayer-elp-color-preview').css('background', color.rgbaString);
2526
+ handle_white(color.hex);
2527
  val[3] = (color.hex ? color.hex : '');
2528
  _pagelayer_set_atts(row, val);
2529
  };
2530
 
2531
+ // Remove Color
2532
+ row.find('.pagelayer-elp-remove-color').on('click', function(event){
2533
+ event.stopPropagation();
2534
+ picker.setColor(prop.default, true);
2535
+ preview.addClass('pagelayer-blank-preview');
2536
+ handle_white('');
2537
+ val[3] = '';
2538
+ _pagelayer_set_atts(row, val);
2539
+ });
2540
+
2541
+ // Onchange set props
2542
  row.find('.pagelayer-elp-shadow-input').on('input change', function(){
2543
  //var i = 0;
2544
  row.find('.pagelayer-elp-shadow-input').each(function(){
2612
  '<label class="pagelayer-elp-label">Angle</label>'+
2613
  '<input class="pagelayer-elp-gradient-input" type="number" max="360" min="0" step="1" class="pagelayer-elp-gradient-angle" value="'+val[0]+'"></input>'+
2614
  '</div>'+
2615
+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+
2616
+ '<label class="pagelayer-elp-label">Color 1</label>'+
2617
  '<div class="pagelayer-elp-color-div">'+
2618
  '<div class="pagelayer-elp-gradient-color1 pagelayer-elp-color-preview"></div>'+
2619
  '</div>'+
2622
  '<label class="pagelayer-elp-label">Percentage 1</label>'+
2623
  '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-gradient-per1" value="'+val[2]+'"></input>'+
2624
  '</div>'+
2625
+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+
2626
+ '<label class="pagelayer-elp-label">Color 2</label>'+
2627
  '<div class="pagelayer-elp-color-div">'+
2628
  '<div class="pagelayer-elp-gradient-color2 pagelayer-elp-color-preview"></div>'+
2629
  '</div>'+
2632
  '<label class="pagelayer-elp-label">Percentage 2</label>'+
2633
  '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-gradient-per2" value="'+val[4]+'"></input>'+
2634
  '</div>'+
2635
+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+
2636
+ '<label class="pagelayer-elp-label">Color 3</label>'+
2637
  '<div class="pagelayer-elp-color-div">'+
2638
  '<div class="pagelayer-elp-gradient-color3 pagelayer-elp-color-preview"></div>'+
2639
  '</div>'+
2756
  '</div>'+
2757
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-style">'+
2758
  '<label class="pagelayer-elp-label">Font-Style</label>'+
2759
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2760
 
2761
  jQuery.each(select['style'],function(key, value){
2762
  div += option(value, val[2]);
2765
  '</div>'+
2766
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-weight">'+
2767
  '<label class="pagelayer-elp-label">Font-Weight</label>'+
2768
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2769
  jQuery.each(select['weight'],function(key, value){
2770
  div += option(value, val[3]);
2771
  });
2774
  '</div>'+
2775
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-variant">'+
2776
  '<label class="pagelayer-elp-label">Font-variant</label>'+
2777
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2778
  jQuery.each(select['variant'],function(key, value){
2779
  div += option(value, val[4]);
2780
  });
2783
  '</div>'+
2784
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-line">'+
2785
  '<label class="pagelayer-elp-label">Decoration Line</label>'+
2786
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2787
  jQuery.each(select['deco-line'],function(key, value){
2788
  div += option(value, val[5]);
2789
  });
2792
  '</div>'+
2793
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-style">'+
2794
  '<label class="pagelayer-elp-label">Decoration Style</label>'+
2795
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2796
  jQuery.each(select['deco-style'],function(key, value){
2797
  div += option(value, val[6]);
2798
  });
2805
  '</div>'+
2806
  '<div class="pagelayer-elp-typo pagelayer-elp-typo-transform">'+
2807
  '<label class="pagelayer-elp-label">Text Transform</label>'+
2808
+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select">';
2809
  jQuery.each(select['transform'],function(key, value){
2810
  div += option(value, val[8]);
2811
  });
languages/en.json CHANGED
@@ -1633,6 +1633,7 @@
1633
  "object_pos" : "Object Position",
1634
  "popup_styles" : "Popup Styles",
1635
  "close_by_overlay" : "Closed By Overlay",
 
1636
  "action_triggers" : "Action Triggers",
1637
  "advance_options" : "Advance Options",
1638
  "popup_multi_time" : "Popup Show Multiple Time",
@@ -1675,5 +1676,7 @@
1675
  "pointer_height" : "Pointer Height",
1676
  "title_color" : "Title Color",
1677
  "img_portfolio" : "Image Portfolio",
1678
- "overlay_cont_pos" : "Overlay Content Position"
 
 
1679
  }
1633
  "object_pos" : "Object Position",
1634
  "popup_styles" : "Popup Styles",
1635
  "close_by_overlay" : "Closed By Overlay",
1636
+ "close_by_selector" : "Closed By Selector",
1637
  "action_triggers" : "Action Triggers",
1638
  "advance_options" : "Advance Options",
1639
  "popup_multi_time" : "Popup Show Multiple Time",
1676
  "pointer_height" : "Pointer Height",
1677
  "title_color" : "Title Color",
1678
  "img_portfolio" : "Image Portfolio",
1679
+ "overlay_cont_pos" : "Overlay Content Position",
1680
+ "tooltip" : "Tooltip",
1681
+ "enable_overlay" : "Enable Overlay"
1682
  }
lib/pquery/gan_node_html.php CHANGED
@@ -395,7 +395,7 @@ class DomNode implements IQuery {
395
  * @return string
396
  */
397
  function getOuterText() {
398
- return html_entity_decode($this->toString(), ENT_QUOTES);
399
  }
400
 
401
  /**
@@ -437,7 +437,7 @@ class DomNode implements IQuery {
437
  * @return string
438
  */
439
  function getInnerText() {
440
- return html_entity_decode($this->toString(true, true, 1), ENT_QUOTES);
441
  }
442
 
443
  /**
@@ -464,7 +464,7 @@ class DomNode implements IQuery {
464
  * @return string
465
  */
466
  function getPlainText() {
467
- return preg_replace('`\s+`', ' ', html_entity_decode($this->toString(true, true, true), ENT_QUOTES));
468
  }
469
 
470
  /**
@@ -477,7 +477,7 @@ class DomNode implements IQuery {
477
  if ($enc !== false) {
478
  $txt = mb_convert_encoding($txt, 'UTF-8', $enc);
479
  }
480
- return preg_replace('`\s+`', ' ', html_entity_decode($txt, ENT_QUOTES, 'UTF-8'));
481
  }
482
 
483
  /**
@@ -487,7 +487,7 @@ class DomNode implements IQuery {
487
  function setPlainText($text) {
488
  $this->clear();
489
  if (trim($text)) {
490
- $this->addText(htmlentities($text, ENT_QUOTES));
491
  }
492
  }
493
 
395
  * @return string
396
  */
397
  function getOuterText() {
398
+ return html_entity_decode($this->toString(), ENT_HTML5);
399
  }
400
 
401
  /**
437
  * @return string
438
  */
439
  function getInnerText() {
440
+ return html_entity_decode($this->toString(true, true, 1), ENT_HTML5);
441
  }
442
 
443
  /**
464
  * @return string
465
  */
466
  function getPlainText() {
467
+ return preg_replace('`\s+`', ' ', html_entity_decode($this->toString(true, true, true), ENT_HTML5));
468
  }
469
 
470
  /**
477
  if ($enc !== false) {
478
  $txt = mb_convert_encoding($txt, 'UTF-8', $enc);
479
  }
480
+ return preg_replace('`\s+`', ' ', html_entity_decode($txt, ENT_HTML5, 'UTF-8'));
481
  }
482
 
483
  /**
487
  function setPlainText($text) {
488
  $this->clear();
489
  if (trim($text)) {
490
+ $this->addText(htmlentities($text, ENT_HTML5));
491
  }
492
  }
493
 
main/functions.php CHANGED
@@ -535,6 +535,7 @@ function pagelayer_add_shortcode($tag, $params = array()){
535
  'border_styles' => __pl('border_styles'),
536
  'position_styles' => __pl('position_styles'),
537
  'animation_styles' => __pl('animation_styles'),
 
538
  'responsive_styles' => __pl('responsive_styles'),
539
  'custom_styles' => __pl('custom_styles'),
540
  ];
@@ -1835,4 +1836,124 @@ function pagelayer_upload_media($filename, $blob){
1835
 
1836
  return $attach_id;
1837
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1838
  }
535
  'border_styles' => __pl('border_styles'),
536
  'position_styles' => __pl('position_styles'),
537
  'animation_styles' => __pl('animation_styles'),
538
+ 'motion_effects' => __pl('Motion Effects'),
539
  'responsive_styles' => __pl('responsive_styles'),
540
  'custom_styles' => __pl('custom_styles'),
541
  ];
1836
 
1837
  return $attach_id;
1838
 
1839
+ }
1840
+
1841
+ // Show the notice of importing the active themes content
1842
+ function pagelayer_theme_import_notices($return = false){
1843
+
1844
+ $theme = wp_get_theme();
1845
+
1846
+ $imported = get_option('pagelayer_theme_'.get_template().'_imported');
1847
+ $show = 0;
1848
+
1849
+ // We need to import the content
1850
+ if(empty($imported) && is_admin() && current_user_can('switch_themes')){
1851
+ $show = 1;
1852
+ }
1853
+
1854
+ $dismissed = get_option('pagelayer_theme_'.get_template().'_dismissed');
1855
+
1856
+ // Is this dismissed
1857
+ if($dismissed){
1858
+ $show = 0;
1859
+ }
1860
+
1861
+ //$show = 1;
1862
+
1863
+ // Is it the importer page ?
1864
+ if(!empty($_REQUEST['page']) && $_REQUEST['page'] == 'pagelayer_import'){
1865
+ $show = 0;
1866
+ }
1867
+
1868
+ // Show the message
1869
+ if(!empty($show)){
1870
+ $str = '
1871
+
1872
+ <style>
1873
+ .pagelayer_promo_button {
1874
+ background-color: #4CAF50; /* Green */
1875
+ border: none;
1876
+ color: white;
1877
+ padding: 6px 10px;
1878
+ text-align: center;
1879
+ text-decoration: none;
1880
+ display: inline-block;
1881
+ font-size: 13px;
1882
+ margin: 4px 2px;
1883
+ -webkit-transition-duration: 0.4s; /* Safari */
1884
+ transition-duration: 0.4s;
1885
+ cursor: pointer;
1886
+ }
1887
+ .pagelayer_promo_button:focus,
1888
+ .pagelayer_promo_button:hover{
1889
+ border: none;
1890
+ color: white;
1891
+ box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
1892
+ color: white;
1893
+ }
1894
+ .pagelayer_promo_buy {
1895
+ color: white;
1896
+ padding: 8px 12px;
1897
+ font-size: 14px;
1898
+ }
1899
+ .pagelayer_promo_button1 {
1900
+ color: white;
1901
+ background-color: #4CAF50;
1902
+ border:3px solid #4CAF50;
1903
+ }
1904
+ .pagelayer_promo_button1:hover {
1905
+ border:3px solid #4CAF50;
1906
+ }
1907
+ .pagelayer_promo_button2 {
1908
+ color: white;
1909
+ background-color: #0085ba;
1910
+ }
1911
+ .pagelayer_promo_button3 {
1912
+ color: white;
1913
+ background-color: #365899;
1914
+ }
1915
+ .pagelayer_promo_button4 {
1916
+ color: white;
1917
+ background-color: rgb(66, 184, 221);
1918
+ }
1919
+ .pagelayer_promo-close{
1920
+ float:right;
1921
+ text-decoration:none;
1922
+ margin: 5px 10px 0px 0px;
1923
+ }
1924
+ .pagelayer_promo-close:hover{
1925
+ color: red;
1926
+ }
1927
+ </style>
1928
+
1929
+ <script type="application/javascript">
1930
+ jQuery(document).ready(function(){
1931
+ jQuery("#pagelayer_promo .pagelayer_promo-close").click(function(){
1932
+ var data;
1933
+ jQuery("#pagelayer_promo").hide();
1934
+ // Save this preference
1935
+ jQuery.post("'.admin_url('?pagelayer_promo=0').'", data, function(response) {
1936
+ //alert(response);
1937
+ });
1938
+ });
1939
+ });
1940
+ </script>
1941
+
1942
+ <div class="notice notice-success" id="pagelayer_promo" style="min-height:30px">
1943
+ <a class="pagelayer_promo-close" href="javascript:" aria-label="Dismiss this Notice">
1944
+ <span class="dashicons dashicons-dismiss"></span> Dismiss
1945
+ </a>';
1946
+
1947
+ $str .= apply_filters('pagelayer_theme_import_notice_content', '<p>Please click <a href="'.admin_url('admin.php?page=pagelayer_import').'">here</a> to import your themes content</p>').'
1948
+
1949
+ </div>';
1950
+
1951
+ // Print it
1952
+ if(empty($return)){
1953
+ echo $str;
1954
+ }else{
1955
+ return $str;
1956
+ }
1957
+ }
1958
+
1959
  }
main/import.php ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ //////////////////////////////////////////////////////////////
4
+ //===========================================================
5
+ // template_import.php
6
+ //===========================================================
7
+ // PAGELAYER
8
+ // Inspired by the DESIRE to be the BEST OF ALL
9
+ // ----------------------------------------------------------
10
+ // Started by: Pulkit Gupta
11
+ // Date: 23rd Jan 2017
12
+ // Time: 23:00 hrs
13
+ // Site: http://pagelayer.com/wordpress (PAGELAYER)
14
+ // ----------------------------------------------------------
15
+ // Please Read the Terms of use at http://pagelayer.com/tos
16
+ // ----------------------------------------------------------
17
+ //===========================================================
18
+ // (c)Pagelayer Team
19
+ //===========================================================
20
+ //////////////////////////////////////////////////////////////
21
+
22
+ // Are we being accessed directly ?
23
+ if(!defined('PAGELAYER_VERSION')) {
24
+ exit('Hacking Attempt !');
25
+ }
26
+
27
+ include_once(PAGELAYER_DIR.'/main/settings.php');
28
+
29
+ function pagelayer_import(){
30
+
31
+ global $pagelayer, $pagelayer_theme, $pagelayer_theme_url, $pagelayer_theme_path, $pagelayer_pages, $pl_error;
32
+
33
+ $pagelayer_theme = wp_get_theme();
34
+ $pagelayer_theme_url = get_stylesheet_directory_uri();
35
+ $pagelayer_theme_path = get_stylesheet_directory();
36
+
37
+ // Get the pages
38
+ $pagelayer_templates = @json_decode(file_get_contents($pagelayer_theme_path.'/pagelayer.conf'), true);
39
+ $pagelayer_pages = @json_decode(file_get_contents($pagelayer_theme_path.'/pagelayer-data.conf'), true);
40
+
41
+ if(isset($_POST['theme'])){
42
+ $GLOBALS['pl_saved'] = pagelayer_import_theme($pagelayer_theme);
43
+ }
44
+
45
+ // Have we already imported ?
46
+ $imported = get_option('pagelayer_theme_'.get_template().'_imported');
47
+ if(!empty($imported)){
48
+ $GLOBALS['pl_warn'] = __('You have already imported the content of this theme. You can re-import the same, but it will over-write existing pages / pagelayer templates which have the same name.', 'pagelayer');
49
+ }
50
+
51
+ // Call the theme
52
+ pagelayer_import_T();
53
+
54
+ }
55
+
56
+ function pagelayer_import_T(){
57
+
58
+ global $pagelayer, $pagelayer_theme, $pagelayer_theme_url, $pagelayer_theme_path, $pagelayer_pages, $pl_error;
59
+
60
+ pagelayer_page_header('Pagelayer - Import Template');
61
+
62
+ // Any errors ?
63
+ if(!empty($pl_error)){
64
+ pagelayer_report_error($pl_error);echo '<br />';
65
+ }
66
+
67
+ // Saved ?
68
+ if(!empty($GLOBALS['pl_saved'])){
69
+ echo '<div class="notice notice-success"><p>'. __('The theme content was successfully imported', 'pagelayer'). '</p></div>';
70
+
71
+ // Warn ?
72
+ }elseif(!empty($GLOBALS['pl_warn'])){
73
+ echo '<div class="notice notice-warning"><p>'.$GLOBALS['pl_warn'].'</p></div>';
74
+ }
75
+
76
+ // Is it a pagelayer theme ?
77
+ if(!file_exists($pagelayer_theme_path.'/pagelayer.conf')){
78
+ echo 'This utility is for importing content of the current active theme if its a Pagelayer Theme. Your current theme is <b>not</b> a Pagelayer exported theme ! If you want to export your content and make it into a distributable theme, please refer to the guide <a href="">here</a>.';
79
+ die();
80
+ }
81
+
82
+ echo '
83
+ <style>
84
+ .pagelayer_img_screen{
85
+ width: 120px;
86
+ margin: 0px 15px 10px 15px;
87
+ display: inline-block;
88
+ border: 1px solid transparent;
89
+ border-radius: 3px;
90
+ }
91
+
92
+ .pagelayer_img_selected{
93
+ border: 1px solid #1A9CDB;
94
+ }
95
+
96
+ .pagelayer_img_div{
97
+ overflow: hidden;
98
+ height: 160px;
99
+ }
100
+
101
+ .pagelayer_img_name{
102
+ text-align: center;
103
+ background: #fff;
104
+ padding: 5px 10px;
105
+ border-top: 1px solid #ccc;
106
+ }
107
+
108
+ .button-pagelayer{
109
+ padding: 12px 25px !important;
110
+ font-size: 15px !important;
111
+ font-weight: bold;
112
+ background: #7444fd !important;
113
+ color: #fff !important;
114
+ border: 1px solid #7444fd !important;
115
+ transition: all .3s linear;
116
+ pointer: cursor;
117
+ }
118
+
119
+ .button-pagelayer:hover{
120
+ background: #fff !important;
121
+ color: #7444fd !important;
122
+ }
123
+ </style>
124
+
125
+ <script>
126
+
127
+ jQuery(document).ready(function(){
128
+ var $ = jQuery;
129
+
130
+ var choose_image = function(jEle){
131
+ $("#pagelayer_display_image").attr("src", jEle.find("img").attr("src"));
132
+
133
+ $(".pagelayer_img_screen").removeClass("pagelayer_img_selected");
134
+ jEle.addClass("pagelayer_img_selected");
135
+ }
136
+
137
+ var first = $(".pagelayer_img_screen:first");
138
+ var home = $(".pagelayer_img_screen[page=home]");
139
+
140
+ if(home.length > 0){
141
+ first = home;
142
+ }
143
+
144
+ choose_image(first);
145
+
146
+ $(".pagelayer_img_screen").on("click", function(){
147
+ choose_image($(this));
148
+ });
149
+
150
+ $("#pagelayer_import_submit").on("click", function(){
151
+ if(confirm("This will overwrite any pages / pagelayer templates which have the same post name. Should we proceed ?")){
152
+ return true;
153
+ }else{
154
+ return false;
155
+ }
156
+
157
+ });
158
+
159
+ });
160
+ </script>
161
+
162
+ <div><h1 style="margin-bottom: 10px; padding-top: 0px;">'.$pagelayer_theme->name.'</h1></div>
163
+ <div style="margin: 0px -10px; vertical-align: top;">
164
+ <div style="width: 52%; display: inline-block; text-align: center;">
165
+ <div style="width: 100%; max-height: 400px; overflow: auto; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
166
+ <img id="pagelayer_display_image" src="'.$pagelayer_theme_url.'/screenshots/home.jpg" width="100%">
167
+ </div>
168
+ </div>
169
+ <div style="width: 45%; display: inline-block; padding: 0px 10px; vertical-align: top;">';
170
+
171
+ foreach($pagelayer_pages['page'] as $k => $v){
172
+ echo '<div class="pagelayer_img_screen" page="'.$k.'">
173
+ <div class="pagelayer_img_div"><img src="'.$pagelayer_theme_url.'/screenshots/'.$k.'.jpg" width="100%" /></div>
174
+ <div class="pagelayer_img_name">'.$v['post_title'].'</div>
175
+ </div>';
176
+ }
177
+
178
+ echo '</div>
179
+ </div>
180
+
181
+ <div style="position:fixed; bottom: 30px; right: 30px;">
182
+ <form action="" method="post" enctype="multipart/form-data">
183
+ <input name="theme" value="'.get_template().'" type="hidden" />
184
+ <input id="pagelayer_import_submit" name="import_theme" class="button button-pagelayer" value="Import Theme Content" type="submit" />
185
+ </form>
186
+ </div>';
187
+
188
+ }
189
+
190
+ // The actual function to import the theme
191
+ function pagelayer_import_theme($new_theme){
192
+
193
+ global $wpdb, $wp_rewrite;
194
+ global $pagelayer, $pagelayer_theme, $pagelayer_theme_url, $pagelayer_theme_path, $pagelayer_pages, $pl_error;
195
+
196
+ $pagelayer_theme_path = get_stylesheet_directory();
197
+ //die($pagelayer_theme_path);
198
+
199
+ /////////////////////////
200
+ // Handle PAGELAYER DATA
201
+ /////////////////////////
202
+
203
+ // Load the PGL conf
204
+ $pgl = file_get_contents($pagelayer_theme_path.'/pagelayer.conf');
205
+ $pgl = @json_decode($pgl, true);
206
+
207
+ if(empty($pgl['header'])){
208
+ die('Header list not found. Report to Website Builder Team');
209
+ }
210
+
211
+ // Check the theme files
212
+ foreach($pgl as $k => $v){
213
+
214
+ $path = pagelayer_cleanpath($pagelayer_theme_path.'/'.$k.'.pgl');
215
+ //print_r($path);
216
+
217
+ // Does the page exist ?
218
+ if(!file_exists($path) || pagelayer_cleanpath(realpath($path)) != $path){
219
+ die('Something is fishy with this theme as the template '.$k.' of type '.$v['type'].' was not found');
220
+ }
221
+
222
+ }
223
+
224
+ // Check the theme files
225
+ foreach($pgl as $k => $v){
226
+
227
+ $path = pagelayer_cleanpath($pagelayer_theme_path.'/'.$k.'.pgl');
228
+
229
+ $new_post = array();
230
+
231
+ // Is the page there ?
232
+ $template = get_page_by_path($k, OBJECT, $pagelayer->builder['name']);
233
+
234
+ // It does exist so save the revision IF its the header and footer
235
+ if(!empty($template)){
236
+
237
+ $rev = wp_save_post_revision($template->ID);
238
+
239
+ // Did we save the rev ?
240
+ if(empty($rev)){
241
+ // TODO : Throw error
242
+ }
243
+
244
+ $new_post['ID'] = $template->ID;
245
+
246
+ }
247
+
248
+ // Make an array
249
+ $new_post['post_content'] = file_get_contents($path);
250
+ $new_post['post_title'] = $v['title'];
251
+ $new_post['post_name'] = $k;
252
+ $new_post['post_type'] = $pagelayer->builder['name'];
253
+ $new_post['post_status'] = 'publish';
254
+ $new_post['comment_status'] = 'closed';
255
+ $new_post['ping_status'] = 'closed';
256
+ //r_print($new_post);die();
257
+
258
+ // Lets replace the variables for social icons
259
+ //$new_post['post_content'] = preg_replace_callback('/\[pl_social ([^\]]*)\]/is', 'sitepad_handle_social_urls', $new_post['post_content']);
260
+
261
+ // Now insert / update the post
262
+ $ret = pagelayer_insert_content($new_post, $err);
263
+ $post_id = $ret;
264
+
265
+ // Did we save the rev ?
266
+ if(empty($ret)){
267
+ die('Could not update the Pagelayer Template '.$k);
268
+ }
269
+
270
+ // Save our template type
271
+ update_post_meta($post_id, 'pagelayer_template_type', $v['type']);
272
+ update_post_meta($post_id, 'pagelayer_template_conditions', $v['conditions']);
273
+
274
+ // Any conditions having Page IDs that need to be updated ?
275
+ if(!empty($v['conditions'])){
276
+
277
+ foreach($v['conditions'] as $ck => $cv){
278
+ if(!empty($cv['id'])){
279
+ $conditions[$post_id][$ck] = $cv['id'];
280
+ }
281
+ }
282
+
283
+ }
284
+
285
+ }
286
+
287
+ /////////////////////////
288
+ // Handle the PAGES Data
289
+ /////////////////////////
290
+
291
+ // Load the new themes pages array
292
+ $data = file_get_contents($pagelayer_theme_path.'/pagelayer-data.conf');
293
+ $data = @json_decode($data, true);
294
+ //r_print($data);die();
295
+
296
+ if(empty($data['page'])){
297
+ die('Pages list not found. Report to Website Builder Team');
298
+ }
299
+
300
+ // Check the theme files
301
+ foreach($data['page'] as $k => $v){
302
+
303
+ $path = pagelayer_cleanpath($pagelayer_theme_path.'/data/page/'.$k);
304
+
305
+ // Does it have the title and slug ?
306
+ if(empty($v['post_title']) || empty($v['post_name'])){
307
+ die('Something is fishy with this theme as there is no title or slug for '.$k);
308
+ }
309
+
310
+ // Does the page exist ?
311
+ if(!file_exists($path) || pagelayer_cleanpath(realpath($path)) != $path){
312
+ die('Something is fishy with this theme');
313
+ }
314
+
315
+ }
316
+
317
+ // Now check the pages if it exist in this installation ?
318
+ foreach($data['page'] as $k => $v){
319
+
320
+ $path = pagelayer_cleanpath($pagelayer_theme_path.'/data/page/'.$k);
321
+
322
+ // Is the page there ?
323
+ $page = get_page_by_path($v['post_name']);
324
+ //r_print($page);
325
+
326
+ // Are we to insert the page ?
327
+ if(empty($page)){
328
+
329
+ $new_post = array();
330
+
331
+ // Make an array
332
+ $new_post['post_content'] = file_get_contents($path);
333
+ $new_post['post_title'] = $v['post_title'];
334
+ $new_post['post_name'] = $v['post_name'];
335
+ $new_post['post_type'] = 'page';
336
+ $new_post['post_status'] = 'publish';
337
+ //r_print($new_post);die();
338
+
339
+ // Lets replace the variables for social icons
340
+ //$new_post['post_content'] = preg_replace_callback('/\[pl_social ([^\]]*)\]/is', 'sitepad_handle_social_urls', $new_post['post_content']);
341
+
342
+ // Now insert / update the post
343
+ $ret = pagelayer_insert_content($new_post, $err);
344
+
345
+ // Did we save the post ?
346
+ if(empty($ret)){
347
+ die('Could not update the page '.$v['post_name']);
348
+ }
349
+
350
+ $pages_id_map[$v['ID']] = $ret;
351
+
352
+ // Does the screenshot exist ?
353
+ $screenshot_file = $pagelayer_theme_path.'/screenshots/'.$v['post_name'].'.jpg';
354
+ if(file_exists($screenshot_file)){
355
+
356
+ }
357
+
358
+ }
359
+
360
+ }
361
+
362
+ // Update Post for import
363
+ if(!empty($conditions)){
364
+
365
+ foreach($conditions as $post_ID => $v){
366
+
367
+ $cond = get_post_meta($post_ID, 'pagelayer_template_conditions', 1);
368
+
369
+ foreach($v as $ck => $cv){
370
+
371
+ if(!empty($pages_id_map[$cv])){
372
+ $cond[$ck]['id'] = $pages_id_map[$cv];
373
+ }
374
+
375
+ }
376
+
377
+ update_post_meta($post_id, 'pagelayer_template_conditions', $cond);
378
+
379
+ }
380
+
381
+ }
382
+
383
+ // Save that we have imported the theme
384
+ update_option('pagelayer_theme_'.get_template().'_imported', time(), true);
385
+
386
+ // Call a function for the theme if they want to execute something
387
+ $ret = apply_filters('pagelayer_theme_imported', get_template());
388
+
389
+ return true;
390
+
391
+ }
main/license.php CHANGED
@@ -91,7 +91,7 @@ function pagelayer_license_T(){
91
 
92
  // Saved ?
93
  if(!empty($GLOBALS['pl_saved'])){
94
- echo '<div id="message" class="updated"><p>'. __('The settings were saved successfully', 'pagelayer'). '</p></div><br />';
95
  }
96
 
97
  // If the license is active and you are the free version, then suggest to install the pro
91
 
92
  // Saved ?
93
  if(!empty($GLOBALS['pl_saved'])){
94
+ echo '<div class="notice notice-success"><p>'. __('The settings were saved successfully', 'pagelayer'). '</p></div><br />';
95
  }
96
 
97
  // If the license is active and you are the free version, then suggest to install the pro
main/live-body.php CHANGED
@@ -28,26 +28,48 @@ if(!defined('PAGELAYER_VERSION')) {
28
  function pagelayer_live_body(){
29
 
30
  global $post;
31
-
32
- echo '
33
- <html>
34
- <head>
35
- <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
36
- <link rel="stylesheet" href="'.PAGELAYER_CSS.'/givecss.php?give=pagelayer-editor.css,trumbowyg.min.css,pagelayer-icons.css&ver='.PAGELAYER_VERSION.'">';
37
 
38
  $icons = pagelayer_enabled_icons();
 
39
 
40
  // Load all icons
41
  foreach($icons as $icon){
42
- echo '<link rel="stylesheet" href="'.PAGELAYER_CSS.'/givecss.php?give='.$icon.'.min.css&ver='.PAGELAYER_VERSION.'">';
43
  }
 
 
 
 
 
 
44
 
45
  do_action('pagelayer_live_body_head');
46
-
47
- echo '
 
 
 
 
48
  </head>
49
 
50
  <body class="pagelayer-normalize pagelayer-body">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  <table class="pagelayer-normalize pagelayer-body-table" cellpadding="0" cellspacing="0">
52
  <tr>
53
  <td valign="top" width="270" class="pagelayer-leftbar-table">
@@ -96,8 +118,22 @@ echo '
96
 
97
  <script>
98
  var pagelayer_iframe_cw = document.getElementById("pagelayer-iframe").contentWindow;
99
- </script>
100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  </body>';
102
 
103
  die();
28
  function pagelayer_live_body(){
29
 
30
  global $post;
 
 
 
 
 
 
31
 
32
  $icons = pagelayer_enabled_icons();
33
+ $icons_list = array();
34
 
35
  // Load all icons
36
  foreach($icons as $icon){
37
+ $icons_list[] = $icon.'.min.css';
38
  }
39
+
40
+ echo '
41
+ <html>
42
+ <head>
43
+ <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
44
+ <link rel="stylesheet" href="'.PAGELAYER_CSS.'/givecss.php?give=pagelayer-editor.css,trumbowyg.min.css,pagelayer-icons.css,'.implode(',' ,$icons_list).'&ver='.PAGELAYER_VERSION.'">';
45
 
46
  do_action('pagelayer_live_body_head');
47
+
48
+ // Brand Name
49
+ $brand = (empty($GLOBALS['sitepad']) ? 'PAGELAYER' : 'SITEPAD');
50
+ $brand = str_split($brand);
51
+
52
+ echo '
53
  </head>
54
 
55
  <body class="pagelayer-normalize pagelayer-body">
56
+ <div id="pagelayer-loader-wrapper">
57
+ <div class="pagelayer-animation-section">
58
+ <div class="pagelayer-loader">
59
+ <div class="pagelayer-percent-parent">
60
+ <div class="pagelayer-percent">10<sup>%</sup></div>
61
+ </div>
62
+ </div>
63
+ <div class="pagelayer-txt-loading">';
64
+
65
+ foreach($brand as $k => $v){
66
+ echo '<span data-text-preloader="'.$v.'" class="letters-loading">'.$v.'</span>';
67
+ }
68
+
69
+ echo '</div>
70
+ </div>
71
+ </div>
72
+
73
  <table class="pagelayer-normalize pagelayer-body-table" cellpadding="0" cellspacing="0">
74
  <tr>
75
  <td valign="top" width="270" class="pagelayer-leftbar-table">
118
 
119
  <script>
120
  var pagelayer_iframe_cw = document.getElementById("pagelayer-iframe").contentWindow;
 
121
 
122
+ // Show loading progress
123
+ function loader(ran) {
124
+ var inner = document.getElementsByClassName("pagelayer-percent")[0];
125
+ var w = 0;
126
+ var t = setInterval(function() {
127
+ w = w + 1;
128
+ inner.innerHTML = (w+"<sup>%</sup>");
129
+ if (w === ran || inner.getAttribute("loaded") == "1"){
130
+ clearInterval(t);
131
+ w = 0;
132
+ }
133
+ }, 50);
134
+ }
135
+ loader(90);
136
+ </script>
137
  </body>';
138
 
139
  die();
main/settings.php CHANGED
@@ -32,11 +32,11 @@ function pagelayer_page_header($title = 'Pagelayer Editor'){
32
 
33
  $promos = apply_filters('pagelayer_review_link', true);
34
 
35
- echo '<div style="margin: 10px 20px 0 2px;">
36
- <div class="metabox-holder columns-2">
37
  <div class="postbox-container">
38
- <div class="wrap">
39
- <h1><!--This is to fix promo--></h1>
40
  <table cellpadding="2" cellspacing="1" width="100%" class="fixed" border="0">
41
  <tr>
42
  <td valign="top"><h1>'.$title.'</h1></td>
32
 
33
  $promos = apply_filters('pagelayer_review_link', true);
34
 
35
+ echo '<div style="margin: 0px;">
36
+ <div class="metabox-holder">
37
  <div class="postbox-container">
38
+ <div class="wrap" style="margin-top:0px;">
39
+ <h1 style="padding:0px"><!--This is to fix promo--></h1>
40
  <table cellpadding="2" cellspacing="1" width="100%" class="fixed" border="0">
41
  <tr>
42
  <td valign="top"><h1>'.$title.'</h1></td>
main/shortcodes.php CHANGED
@@ -529,16 +529,6 @@ $pagelayer->styles['ele_bg_styles'] = [
529
  'show' => ['ele_bg_hover' => ''],
530
  'req' => ['ele_bg_type' => 'image']
531
  ],
532
- 'ele_bg_hover_delay' => [
533
- 'type' => 'spinner',
534
- 'label' => __pl('ele_bg_hover_delay'),
535
- 'min' => 0,
536
- 'step' => 100,
537
- 'max' => 5000,
538
- 'default' => 400,
539
- 'css' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;',
540
- 'show' => ['ele_bg_hover' => 'hover']
541
- ],
542
  'ele_bg_type_hover' => [
543
  'type' => 'radio',
544
  'label' => __pl('background_type'),
@@ -551,6 +541,17 @@ $pagelayer->styles['ele_bg_styles'] = [
551
  ],
552
  'show' => ['ele_bg_hover' => 'hover']
553
  ],
 
 
 
 
 
 
 
 
 
 
 
554
  'ele_bg_color_hover' => [
555
  'type' => 'color',
556
  'label' => __pl('color_hover'),
@@ -1046,6 +1047,614 @@ $pagelayer->styles['animation_styles'] = [
1046
  ),
1047
  ];
1048
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1049
  // Resposive stuff
1050
  $pagelayer->styles['responsive_styles'] = [
1051
  'hide_desktop' => [
@@ -2367,11 +2976,11 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_list_item', array(
2367
  'type' => 'text',
2368
  'label' => __pl('list_items_label'),
2369
  'default' => __pl('list_items_default'),
 
2370
  ),
2371
  'item_url' => array(
2372
  'type' => 'text',
2373
  'label' => __pl('list_item_url_label'),
2374
- 'default' => ''
2375
  ),
2376
  'show_icon' => array(
2377
  'type' => 'checkbox',
@@ -2543,7 +3152,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_list', array(
2543
  'icon_color' => array(
2544
  'type' => 'color',
2545
  'label' => __pl('list_icon_color_label'),
2546
- 'default' => '#3E8EF7',
2547
  'css' => ['{{element}} i' => 'color:{{val}}'],
2548
  'show' => ['list_icon_state' => 'normal'],
2549
  ),
@@ -2693,7 +3302,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
2693
  'label' => __pl('service_box_icon_color_label'),
2694
  'css' => ['{{element}} i' => 'height: 1em; width: 1em; position: relative; color: {{val}};',
2695
  '{{element}} i:before' => 'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'],
2696
- 'default' => '#3e8ef7',
2697
  'show' => array(
2698
  'icon_hover' => ''
2699
  ),
@@ -2942,7 +3551,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
2942
  'icon_border_color' => array(
2943
  'type' => 'color',
2944
  'label' => __pl('service_box_icon_border_color_label'),
2945
- 'default' => '#3e8ef7',
2946
  'css' => ['{{element}} i' => 'border-color: {{val}};'],
2947
  'req' => array(
2948
  '!icon_border_type' => ''
@@ -2995,7 +3604,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
2995
  'type' => 'color',
2996
  'label' => __pl('service_box_icon_border_color_label'),
2997
  'css' => ['{{element}} i:hover' => 'border-color: {{val}};'],
2998
- 'default' => '#3e8ef7',
2999
  'req' => array(
3000
  '!icon_border_type_hover' => ''
3001
  ),
@@ -3057,12 +3666,12 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_badge', array(
3057
  'badge_text' => array(
3058
  'type' => 'text',
3059
  'label' => __pl('badge_text'),
3060
- 'default' => 'Badge',
 
3061
  ),
3062
  'badge_url' => array(
3063
  'type' => 'link',
3064
  'label' => __pl('badge_url_label'),
3065
- 'default' => '',
3066
  ),
3067
  'badge_notification_type' => array(
3068
  'type' => 'select',
@@ -3109,6 +3718,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_badge', array(
3109
  'type' => 'text',
3110
  'label' => __pl('text'),
3111
  'default' => 'Your custom text',
 
3112
  ),
3113
  'text_color' => array(
3114
  'type' => 'color',
@@ -3376,7 +3986,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_tooltip', array(
3376
  'icon_color' => array(
3377
  'type' => 'color',
3378
  'label' => __pl('tooltip_icon_color'),
3379
- 'default' => '#3E8EF7',
3380
  'css' => ['{{element}} .pagelayer-tooltip-icon' => 'color:{{val}};'],
3381
  'req' => array(
3382
  'show_icon' => 'true',
@@ -3644,7 +4254,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image', array(
3644
  'caption_color' => array(
3645
  'label' => __pl('Caption Color'),
3646
  'type' => 'color',
3647
- 'default' => '#3E8EF7',
3648
  'css' => ['{{element}} .pagelayer-image-caption' => 'color: {{val}}'],
3649
  )
3650
  ],
@@ -3689,7 +4299,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image', array(
3689
  'label' => __pl('content'),
3690
  'type' => 'editor',
3691
  'default' => '<p>Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.</p>',
3692
- 'text' => __pl('open_in_pleditor'),
3693
  'req' => array(
3694
  'overlay' => 'true'
3695
  )
@@ -3775,7 +4385,6 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image_slider', array(
3775
  'type' => 'multi_image',
3776
  'label' => __pl('image_slider_ids_label'),
3777
  'desc' => __pl('media_library_images_ids_desc'),
3778
- 'text' => __pl('image_slider_ids_text'),
3779
  ),
3780
  'size' => array(
3781
  'type' => 'select',
@@ -3929,7 +4538,6 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_grid_gallery', array(
3929
  'type' => 'multi_image',
3930
  'label' => __pl('grid_gallery_images'),
3931
  'desc' => __pl('media_library_images_ids_desc'),
3932
- 'text' => __pl('image_slider_ids_text'),
3933
  ),
3934
  'columns' => array(
3935
  'type' => 'select',
@@ -4070,7 +4678,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_btn', array(
4070
  'text' => array(
4071
  'type' => 'text',
4072
  'label' => __pl('button_text_label'),
4073
- 'default' => __pl('button_name')
 
4074
  ),
4075
  'link' => array(
4076
  'type' => 'link',
@@ -4210,7 +4819,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_btn', array(
4210
  'btn_bg_color' => array(
4211
  'type' => 'color',
4212
  'label' => __pl('btn_bg_color_label'),
4213
- 'default' => '#3e8ef7',
4214
  'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
4215
  'req' => array(
4216
  'type' => 'pagelayer-btn-custom',
@@ -4552,7 +5161,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_social_grp', array(
4552
  'icon_bg_color' => array(
4553
  'type' => 'color',
4554
  'label' => __pl('social_bg_color_label'),
4555
- 'default' => '#3E8EF7',
4556
  'css' => ['{{element}} .pagelayer-icon-holder' => 'background-color: {{val}} !important;'],
4557
  'req' => array(
4558
  '!bg_shape' => '',
@@ -4669,7 +5278,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_social_grp', array(
4669
  'icon_bg_color_hover' => array(
4670
  'type' => 'color',
4671
  'label' => __pl('social_bg_color_label'),
4672
- 'default' => '#3E8EF7',
4673
  'css' => ['{{element}} .pagelayer-icon-holder:hover' => 'background-color: {{val}} !important;'],
4674
  'req' => array(
4675
  '!bg_shape' => '',
@@ -4815,7 +5424,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_video', array(
4815
  'icon_color' => array(
4816
  'type' => 'color',
4817
  'label' => __pl('service_heading_color'),
4818
- 'default' => '#3e8ef7',
4819
  'css' => ['{{element}} .pagelayer-video-overlay i' => 'color:{{val}}'],
4820
  'req' => array(
4821
  'overlay' => 'true'
@@ -5044,7 +5653,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5044
  'img_border_color' => array(
5045
  'type' => 'color',
5046
  'label' => __pl('icon_border_color_label'),
5047
- 'default' => '#3e8ef7',
5048
  'css' => ['{{element}} .pagelayer-service-image img' => 'border-color: {{val}};'],
5049
  'req' => [
5050
  '!img_border_type' => '',
@@ -5106,7 +5715,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5106
  'img_border_color_hover' => array(
5107
  'type' => 'color',
5108
  'label' => __pl('icon_border_color_hover_label'),
5109
- 'default' => '#3e8ef7',
5110
  'css' => ['{{element}}:hover .pagelayer-service-image img' => 'border-color: {{val}};'],
5111
  'req' => [
5112
  '!img_border_type_hover' => '',
@@ -5140,7 +5749,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5140
  'type' => 'textarea',
5141
  'label' => __pl('service_box_heading_label'),
5142
  'default' => 'This is an Image Box',
5143
- 'text' => __pl('open_in_wpeditor'),
5144
  ),
5145
  'heading_url' => array(
5146
  'type' => 'link',
@@ -5166,7 +5775,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5166
  'service_heading_color' => array(
5167
  'type' => 'color',
5168
  'label' => __pl('service_heading_color'),
5169
- 'default' => '#3e8ef7',
5170
  'css' => ['{{element}} .pagelayer-service-heading' => 'color:{{val}}'],
5171
  'show' => ['heading_state' => 'normal'],
5172
  ),
@@ -5227,7 +5836,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5227
  'type' => 'editor',
5228
  'label' => __pl('service_box_text_label'),
5229
  'default' => 'Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
5230
- 'text' => __pl('open_in_wpeditor'),
5231
  )
5232
  ],
5233
  //service button style
@@ -5360,7 +5969,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
5360
  'service_button_bg_color' => array(
5361
  'type' => 'color',
5362
  'label' => __pl('service_button_bg_color'),
5363
- 'default' => '#3e8ef7',
5364
  'css' => ['{{element}} .pagelayer-service-btn' => 'background-color:{{val}};'],
5365
  'req' => [
5366
  'service_button' => 'true',
@@ -5632,7 +6241,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5632
  'service_icon_color' => array(
5633
  'type' => 'color',
5634
  'label' => __pl('iconbox_icon_color'),
5635
- 'default' => '#3e8ef7',
5636
  'css' => ['{{element}} .pagelayer-service-icon i' => 'color:{{val}};'],
5637
  'show' => ['service_icon_state' => 'normal'],
5638
  ),
@@ -5770,7 +6379,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5770
  'service_icon_border_color' => array(
5771
  'type' => 'color',
5772
  'label' => __pl('icon_border_color_label'),
5773
- 'default' => '#3e8ef7',
5774
  'css' => ['{{element}} .pagelayer-service-icon i' => 'border-color: {{val}};'],
5775
  'req' => [
5776
  '!service_icon_border_type' => '',
@@ -5814,7 +6423,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5814
  'service_icon_border_color_hover' => array(
5815
  'type' => 'color',
5816
  'label' => __pl('icon_border_color_hover_label'),
5817
- 'default' => '#3e8ef7',
5818
  'css' => ['{{element}}:hover .pagelayer-service-icon i' => 'border-color: {{val}};'],
5819
  'req' => [
5820
  '!service_icon_border_type_hover' => '',
@@ -5847,7 +6456,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5847
  'type' => 'textarea',
5848
  'label' => __pl('iconbox_box_heading_label'),
5849
  'default' => 'This is Icon Box',
5850
- 'text' => __pl('open_in_wpeditor'),
5851
  ),
5852
  'heading_url' => array(
5853
  'type' => 'link',
@@ -5873,7 +6482,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5873
  'service_heading_color' => array(
5874
  'type' => 'color',
5875
  'label' => __pl('service_heading_color'),
5876
- 'default' => '#3e8ef7',
5877
  'css' => ['{{element}} .pagelayer-service-heading' => 'color:{{val}}'],
5878
  'show' => ['heading_state' => 'normal']
5879
  ),
@@ -5933,7 +6542,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
5933
  'type' => 'editor',
5934
  'label' => __pl('iconbox_box_text_label'),
5935
  'default' => 'Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
5936
- 'text' => __pl('open_in_wpeditor'),
5937
  ),
5938
  ],
5939
  //service button style
@@ -6008,6 +6617,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
6008
  'service_button_text' => array(
6009
  'type' => 'text',
6010
  'label' => __pl('iconbox_button_text_label'),
 
6011
  'default' => 'Click Here!',
6012
  'req' => array(
6013
  'service_button' => 'true'
@@ -6066,7 +6676,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
6066
  'service_button_bg_color' => array(
6067
  'type' => 'color',
6068
  'label' => __pl('service_button_bg_color'),
6069
- 'default' => '#3e8ef7',
6070
  'css' => ['{{element}} .pagelayer-service-btn' => 'background-color:{{val}};'],
6071
  'req' => [
6072
  'service_button' => 'true',
@@ -6362,7 +6972,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_tabs', array(
6362
  'tabs_active_bg_color' => array(
6363
  'type' => 'color',
6364
  'label' => __pl('Active Tab Background Color'),
6365
- 'default' => '#3e8ef7',
6366
  'css' => ['{{element}} .pagelayer-tabs-holder .pagelayer-tablinks.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-tabs-holder .pagelayer-tablinks:hover' => 'background-color:{{val}}'],
6367
  ),
6368
  'tab_title_typo' => array(
@@ -6480,7 +7090,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_tab', array(
6480
  'label' => __pl('Edit Rich Text'),
6481
  'default' => 'Lorem ipsum dolor sit amet',
6482
  'desc' => __pl('Edit the content here or edit directly in the Editor'),
6483
- 'edit' => '.pagelayer-text-holder',
6484
  ),
6485
  )
6486
  )
@@ -6576,7 +7186,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_accordion', array(
6576
  'tabs_active_bg_color' => array(
6577
  'type' => 'color',
6578
  'label' => __pl('Active Tab Background Color '),
6579
- 'default' => '#3e8ef7',
6580
  'css' => ['{{element}} .pagelayer-accordion-tabs.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-accordion-tabs:hover' => 'background-color:{{val}}'],
6581
  ),
6582
  'tab_padding' => array(
@@ -6688,7 +7298,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_accordion_item', array(
6688
  'label' => __pl('Edit Rich Text'),
6689
  'default' => 'Lorem ipsum dolor sit amet',
6690
  'desc' => __pl('Edit the content here or edit directly in the Editor'),
6691
- 'edit' => '.pagelayer-text-holder',
6692
  ),
6693
  )
6694
  )
@@ -6785,7 +7395,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_collapse', array(
6785
  'tabs_active_bg_color' => array(
6786
  'type' => 'color',
6787
  'label' => __pl('Active Tab Background Color '),
6788
- 'default' => '#3e8ef7',
6789
  'css' => ['{{element}} .pagelayer-accordion-tabs.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-accordion-tabs:hover' => 'background-color:{{val}}'],
6790
  ),
6791
  'tab_padding' => array(
@@ -7019,7 +7629,6 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_testimonial', array(
7019
  'quote_content' => array(
7020
  'type' => 'editor',
7021
  'label' => __pl('testimonial_content_label'),
7022
- 'text' => __pl('Edit Testimonial content'),
7023
  'edit' => '.pagelayer-testimonial-content',
7024
  'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.'
7025
  )
@@ -7180,7 +7789,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_progress', array(
7180
  'progress_color' => array(
7181
  'type' => 'color',
7182
  'label' => __pl('progress_bar_color'),
7183
- 'default' => '#3e8ef7',
7184
  'css' => ['{{element}} .pagelayer-progress-bar' => 'background-color:{{val}};'],
7185
  'req' => ['progress_type' => '']
7186
  ),
@@ -7204,6 +7813,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_progress', array(
7204
  'type' => 'text',
7205
  'label' => __pl('progress_title'),
7206
  'default' => 'Progress',
 
7207
  ),
7208
  'title_color' => array(
7209
  'type' => 'color',
@@ -7224,6 +7834,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_progress', array(
7224
  'type' => 'text',
7225
  'label' => __pl('progress_text'),
7226
  'default' => 'Designing',
 
7227
  ),
7228
  'progress_text_color' => array(
7229
  'type' => 'color',
@@ -7469,12 +8080,13 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_stars', array(
7469
  'rating_title' => array(
7470
  'type' => 'text',
7471
  'label' => __pl('rating_title'),
7472
- 'default' => 'Rate us',
 
7473
  ),
7474
  'title_color' => array(
7475
  'type' => 'color',
7476
  'label' => __pl('title_color'),
7477
- 'default' => '#3e8ef7',
7478
  'css' => ['{{element}} .pagelayer-stars-title' => 'color: {{val}}'],
7479
  ),
7480
  'title_style' => array(
@@ -7489,7 +8101,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_stars', array(
7489
  'stars_color' => array(
7490
  'type' => 'color',
7491
  'label' => __pl('stars_color'),
7492
- 'default' => '#3e8ef7',
7493
  'css' => ['{{element}} .pagelayer-stars-icon:before' => 'color: {{val}}'],
7494
  ),
7495
  'unmarked_stars_color' => array(
@@ -7647,7 +8259,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_counter', array(
7647
  'counter_number_color' => array(
7648
  'type' => 'color',
7649
  'label' => __pl('counter_number_color_label'),
7650
- 'default' => '#3E8EF7',
7651
  'css' => ['{{element}} .pagelayer-counter-content' => 'color:{{val}};'],
7652
  ),
7653
  'number_prefix' => array(
@@ -7929,7 +8541,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_post_props', array(
7929
  'not_visible' => 1,
7930
  'overide_css_selector' => 'body',
7931
  'hide_active' => 1,
7932
- 'skip_props_cat' => ['position_styles', 'animation_styles', 'responsive_styles'],
7933
  'skip_props' => ['ele_zindex',
7934
  'ele_shadow', 'border_shadow_hover',
7935
  'hide_desktop', 'hide_tablet', 'hide_mobile'],
@@ -8000,7 +8612,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_wp_widgets', array(
8000
  'type' => 'text',
8001
  'label' => __pl('parameters_title'),
8002
  'default' => 'Title',
8003
- 'desc' => __pl('wp_widgets_area_description')
 
8004
  ),
8005
  'sidebar' => array(
8006
  'type' => 'select',
529
  'show' => ['ele_bg_hover' => ''],
530
  'req' => ['ele_bg_type' => 'image']
531
  ],
 
 
 
 
 
 
 
 
 
 
532
  'ele_bg_type_hover' => [
533
  'type' => 'radio',
534
  'label' => __pl('background_type'),
541
  ],
542
  'show' => ['ele_bg_hover' => 'hover']
543
  ],
544
+ 'ele_bg_hover_delay' => [
545
+ 'type' => 'spinner',
546
+ 'label' => __pl('ele_bg_hover_delay'),
547
+ 'min' => 0,
548
+ 'step' => 100,
549
+ 'max' => 5000,
550
+ 'default' => 400,
551
+ 'css' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;',
552
+ 'req' => ['ele_bg_hover' => 'hover',
553
+ '!ele_bg_type_hover' => '']
554
+ ],
555
  'ele_bg_color_hover' => [
556
  'type' => 'color',
557
  'label' => __pl('color_hover'),
1047
  ),
1048
  ];
1049
 
1050
+ $pagelayer->styles['motion_effects'] = [
1051
+ 'ele_motion_effects' => [
1052
+ 'type' => 'radio',
1053
+ 'label' => '',
1054
+ 'list' => [
1055
+ '' => __pl('Scrolling'),
1056
+ 'mouse' => __pl('Mouse'),
1057
+ ],
1058
+ ],
1059
+ 'ele_scrolling_effects' => array(
1060
+ 'type' => 'checkbox',
1061
+ 'label' => __pl('Scrolling Effects'),
1062
+ 'addClass' => 'pagelayer-scrolling-effects',
1063
+ 'show' => ['ele_motion_effects' => ''],
1064
+ 'pro' => 1
1065
+ ),
1066
+ // Vertical Scroll Group
1067
+ 'ele_vertical_scroll_group' => array(
1068
+ 'type' => 'access',
1069
+ 'label' => __pl('Vertical Scroll'),
1070
+ 'show_group' => 'scrolling_v',
1071
+ 'req' => ['!ele_scrolling_effects' => ''],
1072
+ 'show' => ['ele_motion_effects' => '']
1073
+ ),
1074
+ // Vertical Scroll Settings
1075
+ 'ele_vertical_scroll' => array(
1076
+ 'type' => 'checkbox',
1077
+ 'label' => __pl('Enable'),
1078
+ 'group' => 'scrolling_v',
1079
+ 'addAttr' => 'ele_vertical_scroll="{{ele_vertical_scroll}}"',
1080
+ 'req' => ['!ele_scrolling_effects' => ''],
1081
+ 'show' => ['ele_motion_effects' => '']
1082
+ ),
1083
+ 'ele_v_sc_direction' => array(
1084
+ 'type' => 'select',
1085
+ 'label' => __pl('Direction'),
1086
+ 'group' => 'scrolling_v',
1087
+ 'default' => 'opposite',
1088
+ 'list' => array(
1089
+ 'opposite' => __pl('Opposite'),
1090
+ 'similar' => __pl('Similar'),
1091
+ ),
1092
+ 'addAttr' => 'ele_v_sc_direction="{{ele_v_sc_direction}}"',
1093
+ 'req' => ['!ele_vertical_scroll' => '', '!ele_scrolling_effects' => ''],
1094
+ 'show' => ['ele_motion_effects' => '']
1095
+ ),
1096
+ 'ele_v_sc_speed' => array(
1097
+ 'type' => 'slider',
1098
+ 'label' => __pl('speed'),
1099
+ 'group' => 'scrolling_v',
1100
+ 'min' => 0,
1101
+ 'step' => 0.1,
1102
+ 'max' => 10,
1103
+ 'default' => 5,
1104
+ 'addAttr' => 'ele_v_sc_speed="{{ele_v_sc_speed}}"',
1105
+ 'req' => [ '!ele_vertical_scroll' => '', '!ele_scrolling_effects' => ''],
1106
+ 'show' => ['ele_motion_effects' => '']
1107
+ ),
1108
+ 'ele_v_sc_top_viewport' => array(
1109
+ 'type' => 'slider',
1110
+ 'label' => __pl('Top'),
1111
+ 'group' => 'scrolling_v',
1112
+ 'min' => 0,
1113
+ 'step' => 1,
1114
+ 'max' => 100,
1115
+ 'default' => 100,
1116
+ 'screen' => 1,
1117
+ 'addAttr' => 'ele_v_sc_top_viewport="{{ele_v_sc_top_viewport}}"',
1118
+ 'req' => [ '!ele_vertical_scroll' => '', '!ele_scrolling_effects' => ''],
1119
+ 'show' => ['ele_motion_effects' => '']
1120
+ ),
1121
+ 'ele_v_sc_bottom_viewport' => array(
1122
+ 'type' => 'slider',
1123
+ 'label' => __pl('bottom'),
1124
+ 'group' => 'scrolling_v',
1125
+ 'min' => 0,
1126
+ 'step' => 1,
1127
+ 'max' => 100,
1128
+ 'default' => 100,
1129
+ 'screen' => 1,
1130
+ 'addAttr' => 'ele_v_sc_bottom_viewport="{{ele_v_sc_bottom_viewport}}"',
1131
+ 'req' => [ '!ele_vertical_scroll' => '', '!ele_scrolling_effects' => ''],
1132
+ 'show' => ['ele_motion_effects' => '']
1133
+ ),
1134
+ //Horizontal Group
1135
+ 'ele_horizontal_scroll_group' => array(
1136
+ 'type' => 'access',
1137
+ 'label' => __pl('Horizontal Scroll'),
1138
+ 'show_group' => 'scrolling_h',
1139
+ 'req' => ['!ele_scrolling_effects' => ''],
1140
+ 'show' => ['ele_motion_effects' => '']
1141
+ ),
1142
+ // Horizontal Scroll
1143
+ 'ele_horizontal_scroll' => array(
1144
+ 'type' => 'checkbox',
1145
+ 'label' => __pl('Enable'),
1146
+ 'group' => 'scrolling_h',
1147
+ 'css' => 'transform:translateX(var(--transX));',
1148
+ 'addAttr' => 'ele_horizontal_scroll="{{ele_horizontal_scroll}}"',
1149
+ 'req' => ['!ele_scrolling_effects' => ''],
1150
+ 'show' => ['ele_motion_effects' => '']
1151
+ ),
1152
+ 'ele_h_sc_direction' => array(
1153
+ 'type' => 'select',
1154
+ 'label' => __pl('Direction'),
1155
+ 'group' => 'scrolling_h',
1156
+ 'default' => 'toleft',
1157
+ 'list' => array(
1158
+ 'toleft' => __pl('Toleft'),
1159
+ 'toright' => __pl('Toright'),
1160
+ ),
1161
+ 'addAttr' => 'ele_h_sc_direction="{{ele_h_sc_direction}}"',
1162
+ 'req' => ['!ele_horizontal_scroll' => '', '!ele_scrolling_effects' => ''],
1163
+ 'show' => ['ele_motion_effects' => '']
1164
+ ),
1165
+ 'ele_h_sc_speed' => array(
1166
+ 'type' => 'slider',
1167
+ 'label' => __pl('speed'),
1168
+ 'group' => 'scrolling_h',
1169
+ 'min' => 0,
1170
+ 'step' => 0.1,
1171
+ 'max' => 10,
1172
+ 'default' => 5,
1173
+ 'addAttr' => 'ele_h_sc_speed="{{ele_h_sc_speed}}"',
1174
+ 'req' => [ '!ele_horizontal_scroll' => '', '!ele_scrolling_effects' => ''],
1175
+ 'show' => ['ele_motion_effects' => '']
1176
+ ),
1177
+ 'ele_h_sc_left_viewport' => array(
1178
+ 'type' => 'slider',
1179
+ 'label' => __pl('Left'),
1180
+ 'group' => 'scrolling_h',
1181
+ 'min' => 0,
1182
+ 'step' => 1,
1183
+ 'max' => 100,
1184
+ 'default' => 100,
1185
+ 'screen' => 1,
1186
+ 'addAttr' => 'ele_h_sc_left_viewport="{{ele_h_sc_left_viewport}}"',
1187
+ 'req' => [ '!ele_horizontal_scroll' => '', '!ele_scrolling_effects' => ''],
1188
+ 'show' => ['ele_motion_effects' => '']
1189
+ ),
1190
+ 'ele_h_sc_right_viewport' => array(
1191
+ 'type' => 'slider',
1192
+ 'label' => __pl('Right'),
1193
+ 'group' => 'scrolling_h',
1194
+ 'min' => 0,
1195
+ 'step' => 1,
1196
+ 'max' => 100,
1197
+ 'default' => 100,
1198
+ 'screen' => 1,
1199
+ 'addAttr' => 'ele_h_sc_right_viewport="{{ele_h_sc_right_viewport}}"',
1200
+ 'req' => [ '!ele_horizontal_scroll' => '', '!ele_scrolling_effects' => ''],
1201
+ 'show' => ['ele_motion_effects' => '']
1202
+ ),
1203
+ // Transparency Group
1204
+ 'ele_transparency_group' => array(
1205
+ 'type' => 'access',
1206
+ 'label' => __pl('Transparency'),
1207
+ 'show_group' => 'scrolling_trans',
1208
+ 'req' => ['!ele_scrolling_effects' => ''],
1209
+ 'show' => ['ele_motion_effects' => '']
1210
+ ),
1211
+ // Transparency Settings
1212
+ 'ele_transparency' => array(
1213
+ 'type' => 'checkbox',
1214
+ 'label' => __pl('Enable'),
1215
+ 'group' => 'scrolling_trans',
1216
+ 'addAttr' => 'ele_transparency="{{ele_transparency}}"',
1217
+ 'req' => ['!ele_scrolling_effects' => ''],
1218
+ 'show' => ['ele_motion_effects' => '']
1219
+ ),
1220
+ 'ele_transp_type' => array(
1221
+ 'type' => 'select',
1222
+ 'label' => __pl('Type'),
1223
+ 'group' => 'scrolling_trans',
1224
+ 'default' => 'fadein',
1225
+ 'list' => array(
1226
+ 'fadein' => __pl('Fade In'),
1227
+ 'fadeout' => __pl('Fade Out'),
1228
+ 'fadeinout' => __pl('Fade In Out'),
1229
+ 'fadeoutin' => __pl('Fade Out In')
1230
+ ),
1231
+ 'addAttr' => 'ele_transp_type="{{ele_transp_type}}"',
1232
+ 'req' => ['!ele_transparency' => '', '!ele_scrolling_effects' => ''],
1233
+ 'show' => ['ele_motion_effects' => '']
1234
+ ),
1235
+ 'ele_transp_level' => array(
1236
+ 'type' => 'slider',
1237
+ 'label' => __pl('Level'),
1238
+ 'group' => 'scrolling_trans',
1239
+ 'min' => 1,
1240
+ 'step' => 0.1,
1241
+ 'max' => 10,
1242
+ 'default' => 5,
1243
+ 'addAttr' => 'ele_transp_level="{{ele_transp_level}}"',
1244
+ 'req' => [ '!ele_transparency' => '', '!ele_scrolling_effects' => ''],
1245
+ 'show' => ['ele_motion_effects' => '']
1246
+ ),
1247
+ 'ele_transp_top_viewport' => array(
1248
+ 'type' => 'slider',
1249
+ 'label' => __pl('top'),
1250
+ 'group' => 'scrolling_trans',
1251
+ 'min' => 0,
1252
+ 'step' => 1,
1253
+ 'max' => 100,
1254
+ 'default' => 100,
1255
+ 'screen' => 1,
1256
+ 'addAttr' => 'ele_transp_top_viewport="{{ele_transp_top_viewport}}"',
1257
+ 'req' => [ '!ele_transparency' => '', '!ele_scrolling_effects' => ''],
1258
+ 'show' => ['ele_motion_effects' => '']
1259
+ ),
1260
+ 'ele_transp_bottom_viewport' => array(
1261
+ 'type' => 'slider',
1262
+ 'label' => __pl('bottom'),
1263
+ 'group' => 'scrolling_trans',
1264
+ 'min' => 0,
1265
+ 'step' => 1,
1266
+ 'max' => 100,
1267
+ 'default' => 100,
1268
+ 'screen' => 1,
1269
+ 'addAttr' => 'ele_transp_bottom_viewport="{{ele_transp_bottom_viewport}}"',
1270
+ 'req' => [ '!ele_transparency' => '', '!ele_scrolling_effects' => ''],
1271
+ 'show' => ['ele_motion_effects' => '']
1272
+ ),
1273
+ // Blur Group
1274
+ 'ele_blur_group' => array(
1275
+ 'type' => 'access',
1276
+ 'label' => __pl('Blur'),
1277
+ 'show_group' => 'scrolling_blur',
1278
+ 'req' => ['!ele_scrolling_effects' => ''],
1279
+ 'show' => ['ele_motion_effects' => '']
1280
+ ),
1281
+ // Blur Setting
1282
+ 'ele_blur' => array(
1283
+ 'type' => 'checkbox',
1284
+ 'label' => __pl('Enable'),
1285
+ 'group' => 'scrolling_blur',
1286
+ 'addAttr' => 'ele_blur="{{ele_blur}}"',
1287
+ 'req' => ['!ele_scrolling_effects' => ''],
1288
+ 'show' => ['ele_motion_effects' => '']
1289
+ ),
1290
+ 'ele_blur_type' => array(
1291
+ 'type' => 'select',
1292
+ 'label' => __pl('Type'),
1293
+ 'group' => 'scrolling_blur',
1294
+ 'default' => 'blurin',
1295
+ 'list' => array(
1296
+ 'blurin' => __pl('Blur In'),
1297
+ 'blurout' => __pl('Blur Out'),
1298
+ 'blurinout' => __pl('Blur In Out'),
1299
+ 'bluroutin' => __pl('Blur Out In')
1300
+ ),
1301
+ 'addAttr' => 'ele_blur_type="{{ele_blur_type}}"',
1302
+ 'req' => ['!ele_blur' => '', '!ele_scrolling_effects' => ''],
1303
+ 'show' => ['ele_motion_effects' => '']
1304
+ ),
1305
+ 'ele_blur_level' => array(
1306
+ 'type' => 'slider',
1307
+ 'label' => __pl('Level'),
1308
+ 'group' => 'scrolling_blur',
1309
+ 'min' => 1,
1310
+ 'step' => 0.1,
1311
+ 'max' => 10,
1312
+ 'default' => 5,
1313
+ 'addAttr' => 'ele_blur_level="{{ele_blur_level}}"',
1314
+ 'req' => [ '!ele_blur' => '', '!ele_scrolling_effects' => ''],
1315
+ 'show' => ['ele_motion_effects' => '']
1316
+ ),
1317
+ 'ele_blur_top_viewport' => array(
1318
+ 'type' => 'slider',
1319
+ 'label' => __pl('top'),
1320
+ 'group' => 'scrolling_blur',
1321
+ 'min' => 0,
1322
+ 'step' => 1,
1323
+ 'max' => 100,
1324
+ 'default' => 100,
1325
+ 'screen' => 1,
1326
+ 'addAttr' => 'ele_blur_top_viewport="{{ele_blur_top_viewport}}"',
1327
+ 'req' => [ '!ele_blur' => '', '!ele_scrolling_effects' => ''],
1328
+ 'show' => ['ele_motion_effects' => '']
1329
+ ),
1330
+ 'ele_blur_bottom_viewport' => array(
1331
+ 'type' => 'slider',
1332
+ 'label' => __pl('bottom'),
1333
+ 'group' => 'scrolling_blur',
1334
+ 'min' => 0,
1335
+ 'step' => 1,
1336
+ 'max' => 100,
1337
+ 'default' => 100,
1338
+ 'screen' => 1,
1339
+ 'addAttr' => 'ele_blur_bottom_viewport="{{ele_blur_bottom_viewport}}"',
1340
+ 'req' => [ '!ele_blur' => '', '!ele_scrolling_effects' => ''],
1341
+ 'show' => ['ele_motion_effects' => '']
1342
+ ),
1343
+ // Rotate Group
1344
+ 'ele_rotate_group' => array(
1345
+ 'type' => 'access',
1346
+ 'label' => __pl('Rotate'),
1347
+ 'show_group' => 'scrolling_rotate',
1348
+ 'req' => ['!ele_scrolling_effects' => ''],
1349
+ 'show' => ['ele_motion_effects' => '']
1350
+ ),
1351
+ // Rotate Setting
1352
+ 'ele_rotate' => array(
1353
+ 'type' => 'checkbox',
1354
+ 'label' => __pl('Enable'),
1355
+ 'group' => 'scrolling_rotate',
1356
+ 'addAttr' => 'ele_rotate="{{ele_rotate}}"',
1357
+ 'req' => ['!ele_scrolling_effects' => '', '!ele_scrolling_effects' => ''],
1358
+ 'show' => ['ele_motion_effects' => '']
1359
+ ),
1360
+ 'ele_rot_direction' => array(
1361
+ 'type' => 'select',
1362
+ 'label' => __pl('Direction'),
1363
+ 'group' => 'scrolling_rotate',
1364
+ 'default' => 'clockwise',
1365
+ 'list' => array(
1366
+ 'clockwise' => __pl('Clockwise'),
1367
+ 'anticlockwise' => __pl('Anticlockwise')
1368
+ ),
1369
+ 'addAttr' => 'ele_rot_direction="{{ele_rot_direction}}"',
1370
+ 'req' => ['!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1371
+ 'show' => ['ele_motion_effects' => '']
1372
+ ),
1373
+ 'ele_rot_speed' => array(
1374
+ 'type' => 'slider',
1375
+ 'label' => __pl('Speed'),
1376
+ 'group' => 'scrolling_rotate',
1377
+ 'min' => 1,
1378
+ 'step' => 0.1,
1379
+ 'max' => 10,
1380
+ 'default' => 5,
1381
+ 'addAttr' => 'ele_rot_speed="{{ele_rot_speed}}"',
1382
+ 'req' => [ '!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1383
+ 'show' => ['ele_motion_effects' => '']
1384
+ ),
1385
+ 'ele_rot_top_viewport' => array(
1386
+ 'type' => 'slider',
1387
+ 'label' => __pl('top'),
1388
+ 'group' => 'scrolling_rotate',
1389
+ 'min' => 0,
1390
+ 'step' => 1,
1391
+ 'max' => 100,
1392
+ 'default' => 100,
1393
+ 'screen' => 1,
1394
+ 'addAttr' => 'ele_rot_top_viewport="{{ele_rot_top_viewport}}"',
1395
+ 'req' => [ '!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1396
+ 'show' => ['ele_motion_effects' => '']
1397
+ ),
1398
+ 'ele_rot_bottom_viewport' => array(
1399
+ 'type' => 'slider',
1400
+ 'label' => __pl('bottom'),
1401
+ 'group' => 'scrolling_rotate',
1402
+ 'min' => 0,
1403
+ 'step' => 1,
1404
+ 'max' => 100,
1405
+ 'default' => 100,
1406
+ 'screen' => 1,
1407
+ 'addAttr' => 'ele_rot_bottom_viewport="{{ele_rot_bottom_viewport}}"',
1408
+ 'req' => [ '!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1409
+ 'show' => ['ele_motion_effects' => '']
1410
+ ),
1411
+ 'ele_rot_x_anc_point' => array(
1412
+ 'type' => 'select',
1413
+ 'label' => __pl('X Anchor Point'),
1414
+ 'group' => 'scrolling_rotate',
1415
+ 'default' => 'center',
1416
+ 'list' => array(
1417
+ 'left' => __pl('Left'),
1418
+ 'center' => __pl('Center'),
1419
+ 'right' => __pl('Right')
1420
+ ),
1421
+ 'req' => ['!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1422
+ 'show' => ['ele_motion_effects' => '']
1423
+ ),
1424
+ 'ele_rot_y_anc_point' => array(
1425
+ 'type' => 'select',
1426
+ 'label' => __pl('Y Anchor Point'),
1427
+ 'group' => 'scrolling_rotate',
1428
+ 'default' => 'center',
1429
+ 'list' => array(
1430
+ 'top' => __pl('Top'),
1431
+ 'center' => __pl('Center'),
1432
+ 'bottom' => __pl('Bottom')
1433
+ ),
1434
+ 'css' => 'transform-origin:{{val}} {{ele_rot_x_anc_point}}',
1435
+ 'req' => ['!ele_rotate' => '', '!ele_scrolling_effects' => ''],
1436
+ 'show' => ['ele_motion_effects' => '']
1437
+ ),
1438
+ // Scale Group
1439
+ 'ele_scale_group' => array(
1440
+ 'type' => 'access',
1441
+ 'label' => __pl('Scale'),
1442
+ 'show_group' => 'scrolling_scale',
1443
+ 'req' => ['!ele_scrolling_effects' => ''],
1444
+ 'show' => ['ele_motion_effects' => '']
1445
+ ),
1446
+ // Scale Setting
1447
+ 'ele_scale' => array(
1448
+ 'type' => 'checkbox',
1449
+ 'label' => __pl('Enable'),
1450
+ 'group' => 'scrolling_scale',
1451
+ 'addAttr' => 'ele_scale="{{ele_scale}}"',
1452
+ 'req' => ['!ele_scrolling_effects' => ''],
1453
+ 'show' => ['ele_motion_effects' => '']
1454
+ ),
1455
+ 'ele_scl_direction' => array(
1456
+ 'type' => 'select',
1457
+ 'label' => __pl('Direction'),
1458
+ 'group' => 'scrolling_scale',
1459
+ 'default' => 'scaleup',
1460
+ 'list' => array(
1461
+ 'scaleup' => __pl('Scale Up'),
1462
+ 'scaledown' => __pl('Scale Down'),
1463
+ 'scaleupdown' => __pl('Scale Up Down'),
1464
+ 'scaledownup' => __pl('Scale Down Up')
1465
+ ),
1466
+ 'addAttr' => 'ele_scl_direction="{{ele_scl_direction}}"',
1467
+ 'req' => ['!ele_scale' => '', '!ele_scrolling_effects' => ''],
1468
+ 'show' => ['ele_motion_effects' => '']
1469
+ ),
1470
+ 'ele_scl_level' => array(
1471
+ 'type' => 'slider',
1472
+ 'label' => __pl('Level'),
1473
+ 'group' => 'scrolling_scale',
1474
+ 'min' => 1,
1475
+ 'step' => 0.1,
1476
+ 'max' => 10,
1477
+ 'default' => 5,
1478
+ 'addAttr' => 'ele_scl_level="{{ele_scl_level}}"',
1479
+ 'req' => [ '!ele_scale' => '', '!ele_scrolling_effects' => ''],
1480
+ 'show' => ['ele_motion_effects' => '']
1481
+ ),
1482
+ 'ele_scl_top_viewport' => array(
1483
+ 'type' => 'slider',
1484
+ 'label' => __pl('top'),
1485
+ 'group' => 'scrolling_scale',
1486
+ 'min' => 0,
1487
+ 'step' => 1,
1488
+ 'max' => 100,
1489
+ 'default' => 100,
1490
+ 'screen' => 1,
1491
+ 'addAttr' => 'ele_scl_top_viewport="{{ele_scl_top_viewport}}"',
1492
+ 'req' => [ '!ele_scale' => '', '!ele_scrolling_effects' => ''],
1493
+ 'show' => ['ele_motion_effects' => '']
1494
+ ),
1495
+ 'ele_scl_bottom_viewport' => array(
1496
+ 'type' => 'slider',
1497
+ 'label' => __pl('bottom'),
1498
+ 'group' => 'scrolling_scale',
1499
+ 'min' => 0,
1500
+ 'step' => 1,
1501
+ 'max' => 100,
1502
+ 'default' => 100,
1503
+ 'screen' => 1,
1504
+ 'addAttr' => 'ele_scl_bottom_viewport="{{ele_scl_bottom_viewport}}"',
1505
+ 'req' => [ '!ele_scale' => '', '!ele_scrolling_effects' => ''],
1506
+ 'show' => ['ele_motion_effects' => '']
1507
+ ),
1508
+ 'ele_scl_x_anc_point' => array(
1509
+ 'type' => 'select',
1510
+ 'label' => __pl('X Anchor Point'),
1511
+ 'group' => 'scrolling_scale',
1512
+ 'default' => 'center',
1513
+ 'list' => array(
1514
+ 'left' => __pl('Left'),
1515
+ 'center' => __pl('Center'),
1516
+ 'right' => __pl('Right')
1517
+ ),
1518
+ 'req' => ['!ele_scale' => '', '!ele_scrolling_effects' => ''],
1519
+ 'show' => ['ele_motion_effects' => '']
1520
+ ),
1521
+ 'ele_scl_y_anc_point' => array(
1522
+ 'type' => 'select',
1523
+ 'label' => __pl('Y Anchor Point'),
1524
+ 'group' => 'scrolling_scale',
1525
+ 'default' => 'center',
1526
+ 'list' => array(
1527
+ 'top' => __pl('Top'),
1528
+ 'center' => __pl('Center'),
1529
+ 'bottom' => __pl('Bottom')
1530
+ ),
1531
+ 'css' => 'transform-origin:{{val}} {{ele_scl_x_anc_point}}',
1532
+ 'req' => ['!ele_scale' => '', '!ele_scrolling_effects' => ''],
1533
+ 'show' => ['ele_motion_effects' => '']
1534
+ ),
1535
+ // Motion Area Selection
1536
+ 'motion_area' => array(
1537
+ 'type' => 'select',
1538
+ 'label' => __pl('Effect Relative To'),
1539
+ 'default' => 'viewport',
1540
+ 'list' => array(
1541
+ 'viewport' => __pl('Viewport'),
1542
+ 'entire_page' => __pl('Entire Page'),
1543
+ ),
1544
+ 'addAttr' => 'motion_area="{{motion_area}}"',
1545
+ 'req' => ['!ele_scrolling_effects' => ''],
1546
+ 'show' => ['ele_motion_effects' => '']
1547
+ ),
1548
+ // Motion Effect Screen Selection
1549
+ 'ele_motion_effect_on' => array(
1550
+ 'type' => 'multiselect',
1551
+ 'label' => __pl('Apply Effects On'),
1552
+ 'default' => 'desktop,tablet,mobile',
1553
+ 'addAttr' => 'ele_motion_effect_on="{{ele_motion_effect_on}}"',
1554
+ 'list' => array(
1555
+ 'desktop' => __pl('desktop'),
1556
+ 'tablet' => __pl('tablet'),
1557
+ 'mobile' => __pl('mobile'),
1558
+ ),
1559
+ 'req' => ['!ele_scrolling_effects' => ''],
1560
+ 'show' => ['ele_motion_effects' => ''],
1561
+ 'pro' => 1,
1562
+ ),
1563
+ // Mouse Effect
1564
+ 'ele_mouse_effects' => array(
1565
+ 'type' => 'checkbox',
1566
+ 'label' => __pl('Mouse Effects'),
1567
+ 'addClass' => 'pagelayer-mouse-effects',
1568
+ 'show' => ['ele_motion_effects' => 'mouse'],
1569
+ 'pro' => 1
1570
+ ),
1571
+ // Mouse Track Group
1572
+ 'ele_m_track_group' => array(
1573
+ 'type' => 'access',
1574
+ 'label' => __pl('Mouse Track'),
1575
+ 'show_group' => 'mouse_track',
1576
+ 'req' => ['!ele_mouse_effects' => ''],
1577
+ 'show' => ['ele_motion_effects' => 'mouse']
1578
+ ),
1579
+ // Mouse Track Setting
1580
+ 'ele_m_track' => array(
1581
+ 'type' => 'checkbox',
1582
+ 'label' => __pl('Enable'),
1583
+ 'group' => 'mouse_track',
1584
+ 'addAttr' => 'ele_m_track="{{ele_m_track}}"',
1585
+ 'req' => ['!ele_mouse_effects' => ''],
1586
+ 'show' => ['ele_motion_effects' => 'mouse']
1587
+ ),
1588
+ 'ele_m_tr_direction' => array(
1589
+ 'type' => 'select',
1590
+ 'label' => __pl('Direction'),
1591
+ 'group' => 'mouse_track',
1592
+ 'default' => 'opposite',
1593
+ 'list' => array(
1594
+ 'opposite' => __pl('Opposite'),
1595
+ 'same' => __pl('Same')
1596
+ ),
1597
+ 'addAttr' => 'ele_m_tr_direction="{{ele_m_tr_direction}}"',
1598
+ 'req' => ['!ele_m_track' => '', '!ele_mouse_effects' => ''],
1599
+ 'show' => ['ele_motion_effects' => 'mouse']
1600
+ ),
1601
+ 'ele_m_tr_level' => array(
1602
+ 'type' => 'slider',
1603
+ 'label' => __pl('Level'),
1604
+ 'group' => 'mouse_track',
1605
+ 'min' => 1,
1606
+ 'step' => 0.1,
1607
+ 'max' => 10,
1608
+ 'default' => 5,
1609
+ 'addAttr' => 'ele_m_tr_level="{{ele_m_tr_level}}"',
1610
+ 'req' => [ '!ele_m_track' => '', '!ele_mouse_effects' => ''],
1611
+ 'show' => ['ele_motion_effects' => 'mouse']
1612
+ ),
1613
+ // 3D Tilt Group
1614
+ 'ele_3d_tilt_group' => array(
1615
+ 'type' => 'access',
1616
+ 'label' => __pl('3D Tilt'),
1617
+ 'show_group' => 'mouse_3d',
1618
+ 'req' => ['!ele_mouse_effects' => ''],
1619
+ 'show' => ['ele_motion_effects' => 'mouse']
1620
+ ),
1621
+ // 3D Tilt Setting
1622
+ 'ele_3d_tilt' => array(
1623
+ 'type' => 'checkbox',
1624
+ 'label' => __pl('Enable'),
1625
+ 'group' => 'mouse_3d',
1626
+ 'addAttr' => 'ele_3d_tilt="{{ele_3d_tilt}}"',
1627
+ 'css' => 'will-change:transform; transform-style:preserve-3d;',
1628
+ 'req' => ['!ele_mouse_effects' => ''],
1629
+ 'show' => ['ele_motion_effects' => 'mouse']
1630
+ ),
1631
+ 'ele_3d_tilt_direction' => array(
1632
+ 'type' => 'select',
1633
+ 'label' => __pl('Direction'),
1634
+ 'group' => 'mouse_3d',
1635
+ 'default' => 'opposite',
1636
+ 'list' => array(
1637
+ 'opposite' => __pl('Opposite'),
1638
+ 'same' => __pl('Same')
1639
+ ),
1640
+ 'addAttr' => 'ele_3d_tilt_direction="{{ele_3d_tilt_direction}}"',
1641
+ 'req' => ['!ele_3d_tilt' => '', '!ele_mouse_effects' => ''],
1642
+ 'show' => ['ele_motion_effects' => 'mouse']
1643
+ ),
1644
+ 'ele_3d_tilt_level' => array(
1645
+ 'type' => 'slider',
1646
+ 'label' => __pl('Level'),
1647
+ 'group' => 'mouse_3d',
1648
+ 'min' => 1,
1649
+ 'step' => 0.1,
1650
+ 'max' => 10,
1651
+ 'default' => 5,
1652
+ 'addAttr' => 'ele_3d_tilt_level="{{ele_3d_tilt_level}}"',
1653
+ 'req' => [ '!ele_3d_tilt' => '', '!ele_mouse_effects' => ''],
1654
+ 'show' => ['ele_motion_effects' => 'mouse']
1655
+ )
1656
+ ];
1657
+
1658
  // Resposive stuff
1659
  $pagelayer->styles['responsive_styles'] = [
1660
  'hide_desktop' => [
2976
  'type' => 'text',
2977
  'label' => __pl('list_items_label'),
2978
  'default' => __pl('list_items_default'),
2979
+ 'edit' => '.pagelayer-list-item',
2980
  ),
2981
  'item_url' => array(
2982
  'type' => 'text',
2983
  'label' => __pl('list_item_url_label'),
 
2984
  ),
2985
  'show_icon' => array(
2986
  'type' => 'checkbox',
3152
  'icon_color' => array(
3153
  'type' => 'color',
3154
  'label' => __pl('list_icon_color_label'),
3155
+ 'default' => '#0986c0',
3156
  'css' => ['{{element}} i' => 'color:{{val}}'],
3157
  'show' => ['list_icon_state' => 'normal'],
3158
  ),
3302
  'label' => __pl('service_box_icon_color_label'),
3303
  'css' => ['{{element}} i' => 'height: 1em; width: 1em; position: relative; color: {{val}};',
3304
  '{{element}} i:before' => 'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'],
3305
+ 'default' => '#0986c0',
3306
  'show' => array(
3307
  'icon_hover' => ''
3308
  ),
3551
  'icon_border_color' => array(
3552
  'type' => 'color',
3553
  'label' => __pl('service_box_icon_border_color_label'),
3554
+ 'default' => '#0986c0',
3555
  'css' => ['{{element}} i' => 'border-color: {{val}};'],
3556
  'req' => array(
3557
  '!icon_border_type' => ''
3604
  'type' => 'color',
3605
  'label' => __pl('service_box_icon_border_color_label'),
3606
  'css' => ['{{element}} i:hover' => 'border-color: {{val}};'],
3607
+ 'default' => '#0986c0',
3608
  'req' => array(
3609
  '!icon_border_type_hover' => ''
3610
  ),
3666
  'badge_text' => array(
3667
  'type' => 'text',
3668
  'label' => __pl('badge_text'),
3669
+ 'default' => 'Badge',
3670
+ 'edit' => '.pagelayer-badge-title',
3671
  ),
3672
  'badge_url' => array(
3673
  'type' => 'link',
3674
  'label' => __pl('badge_url_label'),
 
3675
  ),
3676
  'badge_notification_type' => array(
3677
  'type' => 'select',
3718
  'type' => 'text',
3719
  'label' => __pl('text'),
3720
  'default' => 'Your custom text',
3721
+ 'edit' => '.pagelayer-badge-text',
3722
  ),
3723
  'text_color' => array(
3724
  'type' => 'color',
3986
  'icon_color' => array(
3987
  'type' => 'color',
3988
  'label' => __pl('tooltip_icon_color'),
3989
+ 'default' => '#0986c0',
3990
  'css' => ['{{element}} .pagelayer-tooltip-icon' => 'color:{{val}};'],
3991
  'req' => array(
3992
  'show_icon' => 'true',
4254
  'caption_color' => array(
4255
  'label' => __pl('Caption Color'),
4256
  'type' => 'color',
4257
+ 'default' => '#0986c0',
4258
  'css' => ['{{element}} .pagelayer-image-caption' => 'color: {{val}}'],
4259
  )
4260
  ],
4299
  'label' => __pl('content'),
4300
  'type' => 'editor',
4301
  'default' => '<p>Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.</p>',
4302
+ 'edit' => '.pagelayer-image-overlay-text',
4303
  'req' => array(
4304
  'overlay' => 'true'
4305
  )
4385
  'type' => 'multi_image',
4386
  'label' => __pl('image_slider_ids_label'),
4387
  'desc' => __pl('media_library_images_ids_desc'),
 
4388
  ),
4389
  'size' => array(
4390
  'type' => 'select',
4538
  'type' => 'multi_image',
4539
  'label' => __pl('grid_gallery_images'),
4540
  'desc' => __pl('media_library_images_ids_desc'),
 
4541
  ),
4542
  'columns' => array(
4543
  'type' => 'select',
4678
  'text' => array(
4679
  'type' => 'text',
4680
  'label' => __pl('button_text_label'),
4681
+ 'default' => __pl('button_name'),
4682
+ 'edit' => '.pagelayer-btn-text',
4683
  ),
4684
  'link' => array(
4685
  'type' => 'link',
4819
  'btn_bg_color' => array(
4820
  'type' => 'color',
4821
  'label' => __pl('btn_bg_color_label'),
4822
+ 'default' => '#0986c0',
4823
  'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
4824
  'req' => array(
4825
  'type' => 'pagelayer-btn-custom',
5161
  'icon_bg_color' => array(
5162
  'type' => 'color',
5163
  'label' => __pl('social_bg_color_label'),
5164
+ 'default' => '#0986c0',
5165
  'css' => ['{{element}} .pagelayer-icon-holder' => 'background-color: {{val}} !important;'],
5166
  'req' => array(
5167
  '!bg_shape' => '',
5278
  'icon_bg_color_hover' => array(
5279
  'type' => 'color',
5280
  'label' => __pl('social_bg_color_label'),
5281
+ 'default' => '#0986c0',
5282
  'css' => ['{{element}} .pagelayer-icon-holder:hover' => 'background-color: {{val}} !important;'],
5283
  'req' => array(
5284
  '!bg_shape' => '',
5424
  'icon_color' => array(
5425
  'type' => 'color',
5426
  'label' => __pl('service_heading_color'),
5427
+ 'default' => '#0986c0',
5428
  'css' => ['{{element}} .pagelayer-video-overlay i' => 'color:{{val}}'],
5429
  'req' => array(
5430
  'overlay' => 'true'
5653
  'img_border_color' => array(
5654
  'type' => 'color',
5655
  'label' => __pl('icon_border_color_label'),
5656
+ 'default' => '#0986c0',
5657
  'css' => ['{{element}} .pagelayer-service-image img' => 'border-color: {{val}};'],
5658
  'req' => [
5659
  '!img_border_type' => '',
5715
  'img_border_color_hover' => array(
5716
  'type' => 'color',
5717
  'label' => __pl('icon_border_color_hover_label'),
5718
+ 'default' => '#0986c0',
5719
  'css' => ['{{element}}:hover .pagelayer-service-image img' => 'border-color: {{val}};'],
5720
  'req' => [
5721
  '!img_border_type_hover' => '',
5749
  'type' => 'textarea',
5750
  'label' => __pl('service_box_heading_label'),
5751
  'default' => 'This is an Image Box',
5752
+ 'edit' => '.pagelayer-service-heading',
5753
  ),
5754
  'heading_url' => array(
5755
  'type' => 'link',
5775
  'service_heading_color' => array(
5776
  'type' => 'color',
5777
  'label' => __pl('service_heading_color'),
5778
+ 'default' => '#0986c0',
5779
  'css' => ['{{element}} .pagelayer-service-heading' => 'color:{{val}}'],
5780
  'show' => ['heading_state' => 'normal'],
5781
  ),
5836
  'type' => 'editor',
5837
  'label' => __pl('service_box_text_label'),
5838
  'default' => 'Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
5839
+ 'edit' => '.pagelayer-service-text',
5840
  )
5841
  ],
5842
  //service button style
5969
  'service_button_bg_color' => array(
5970
  'type' => 'color',
5971
  'label' => __pl('service_button_bg_color'),
5972
+ 'default' => '#0986c0',
5973
  'css' => ['{{element}} .pagelayer-service-btn' => 'background-color:{{val}};'],
5974
  'req' => [
5975
  'service_button' => 'true',
6241
  'service_icon_color' => array(
6242
  'type' => 'color',
6243
  'label' => __pl('iconbox_icon_color'),
6244
+ 'default' => '#0986c0',
6245
  'css' => ['{{element}} .pagelayer-service-icon i' => 'color:{{val}};'],
6246
  'show' => ['service_icon_state' => 'normal'],
6247
  ),
6379
  'service_icon_border_color' => array(
6380
  'type' => 'color',
6381
  'label' => __pl('icon_border_color_label'),
6382
+ 'default' => '#0986c0',
6383
  'css' => ['{{element}} .pagelayer-service-icon i' => 'border-color: {{val}};'],
6384
  'req' => [
6385
  '!service_icon_border_type' => '',
6423
  'service_icon_border_color_hover' => array(
6424
  'type' => 'color',
6425
  'label' => __pl('icon_border_color_hover_label'),
6426
+ 'default' => '#0986c0',
6427
  'css' => ['{{element}}:hover .pagelayer-service-icon i' => 'border-color: {{val}};'],
6428
  'req' => [
6429
  '!service_icon_border_type_hover' => '',
6456
  'type' => 'textarea',
6457
  'label' => __pl('iconbox_box_heading_label'),
6458
  'default' => 'This is Icon Box',
6459
+ 'edit' => '.pagelayer-service-heading',
6460
  ),
6461
  'heading_url' => array(
6462
  'type' => 'link',
6482
  'service_heading_color' => array(
6483
  'type' => 'color',
6484
  'label' => __pl('service_heading_color'),
6485
+ 'default' => '#0986c0',
6486
  'css' => ['{{element}} .pagelayer-service-heading' => 'color:{{val}}'],
6487
  'show' => ['heading_state' => 'normal']
6488
  ),
6542
  'type' => 'editor',
6543
  'label' => __pl('iconbox_box_text_label'),
6544
  'default' => 'Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
6545
+ 'edit' => '.pagelayer-service-text',
6546
  ),
6547
  ],
6548
  //service button style
6617
  'service_button_text' => array(
6618
  'type' => 'text',
6619
  'label' => __pl('iconbox_button_text_label'),
6620
+ 'edit' => '.pagelayer-service-btn',
6621
  'default' => 'Click Here!',
6622
  'req' => array(
6623
  'service_button' => 'true'
6676
  'service_button_bg_color' => array(
6677
  'type' => 'color',
6678
  'label' => __pl('service_button_bg_color'),
6679
+ 'default' => '#0986c0',
6680
  'css' => ['{{element}} .pagelayer-service-btn' => 'background-color:{{val}};'],
6681
  'req' => [
6682
  'service_button' => 'true',
6972
  'tabs_active_bg_color' => array(
6973
  'type' => 'color',
6974
  'label' => __pl('Active Tab Background Color'),
6975
+ 'default' => '#0986c0',
6976
  'css' => ['{{element}} .pagelayer-tabs-holder .pagelayer-tablinks.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-tabs-holder .pagelayer-tablinks:hover' => 'background-color:{{val}}'],
6977
  ),
6978
  'tab_title_typo' => array(
7090
  'label' => __pl('Edit Rich Text'),
7091
  'default' => 'Lorem ipsum dolor sit amet',
7092
  'desc' => __pl('Edit the content here or edit directly in the Editor'),
7093
+ 'edit' => '.pagelayer-tabcontent',
7094
  ),
7095
  )
7096
  )
7186
  'tabs_active_bg_color' => array(
7187
  'type' => 'color',
7188
  'label' => __pl('Active Tab Background Color '),
7189
+ 'default' => '#0986c0',
7190
  'css' => ['{{element}} .pagelayer-accordion-tabs.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-accordion-tabs:hover' => 'background-color:{{val}}'],
7191
  ),
7192
  'tab_padding' => array(
7298
  'label' => __pl('Edit Rich Text'),
7299
  'default' => 'Lorem ipsum dolor sit amet',
7300
  'desc' => __pl('Edit the content here or edit directly in the Editor'),
7301
+ 'edit' => '.pagelayer-accordion-panel',
7302
  ),
7303
  )
7304
  )
7395
  'tabs_active_bg_color' => array(
7396
  'type' => 'color',
7397
  'label' => __pl('Active Tab Background Color '),
7398
+ 'default' => '#0986c0',
7399
  'css' => ['{{element}} .pagelayer-accordion-tabs.active'=> 'background-color:{{val}}', '{{element}} .pagelayer-accordion-tabs:hover' => 'background-color:{{val}}'],
7400
  ),
7401
  'tab_padding' => array(
7629
  'quote_content' => array(
7630
  'type' => 'editor',
7631
  'label' => __pl('testimonial_content_label'),
 
7632
  'edit' => '.pagelayer-testimonial-content',
7633
  'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.'
7634
  )
7789
  'progress_color' => array(
7790
  'type' => 'color',
7791
  'label' => __pl('progress_bar_color'),
7792
+ 'default' => '#0986c0',
7793
  'css' => ['{{element}} .pagelayer-progress-bar' => 'background-color:{{val}};'],
7794
  'req' => ['progress_type' => '']
7795
  ),
7813
  'type' => 'text',
7814
  'label' => __pl('progress_title'),
7815
  'default' => 'Progress',
7816
+ 'edit' => '.pagelayer-progress-title',
7817
  ),
7818
  'title_color' => array(
7819
  'type' => 'color',
7834
  'type' => 'text',
7835
  'label' => __pl('progress_text'),
7836
  'default' => 'Designing',
7837
+ 'edit' => '.pagelayer-progress-text',
7838
  ),
7839
  'progress_text_color' => array(
7840
  'type' => 'color',
8080
  'rating_title' => array(
8081
  'type' => 'text',
8082
  'label' => __pl('rating_title'),
8083
+ 'default' => 'Rate us',
8084
+ 'edit' => '.pagelayer-stars-title',
8085
  ),
8086
  'title_color' => array(
8087
  'type' => 'color',
8088
  'label' => __pl('title_color'),
8089
+ 'default' => '#0986c0',
8090
  'css' => ['{{element}} .pagelayer-stars-title' => 'color: {{val}}'],
8091
  ),
8092
  'title_style' => array(
8101
  'stars_color' => array(
8102
  'type' => 'color',
8103
  'label' => __pl('stars_color'),
8104
+ 'default' => '#0986c0',
8105
  'css' => ['{{element}} .pagelayer-stars-icon:before' => 'color: {{val}}'],
8106
  ),
8107
  'unmarked_stars_color' => array(
8259
  'counter_number_color' => array(
8260
  'type' => 'color',
8261
  'label' => __pl('counter_number_color_label'),
8262
+ 'default' => '#0986c0',
8263
  'css' => ['{{element}} .pagelayer-counter-content' => 'color:{{val}};'],
8264
  ),
8265
  'number_prefix' => array(
8541
  'not_visible' => 1,
8542
  'overide_css_selector' => 'body',
8543
  'hide_active' => 1,
8544
+ 'skip_props_cat' => ['position_styles', 'animation_styles', 'responsive_styles', 'motion_effects'],
8545
  'skip_props' => ['ele_zindex',
8546
  'ele_shadow', 'border_shadow_hover',
8547
  'hide_desktop', 'hide_tablet', 'hide_mobile'],
8612
  'type' => 'text',
8613
  'label' => __pl('parameters_title'),
8614
  'default' => 'Title',
8615
+ 'desc' => __pl('wp_widgets_area_description'),
8616
+ 'edit' => '.pagelayer-wp-sidebar-title',
8617
  ),
8618
  'sidebar' => array(
8619
  'type' => 'select',
pagelayer.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
- Version: 1.0.7
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
+ Version: 1.0.8
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: page builder, editor, landing page, drag-and-drop, pagelayer, form-builder
4
  Requires at least: 4.7
5
  Tested up to: 5.3
6
  Requires PHP: 5.5
7
- Stable tag: 1.0.7
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
@@ -109,6 +109,22 @@ Do you have questions related to PageLayer ? Use the following links :
109
 
110
  == Changelog ==
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  = 1.0.7 (March 3, 2020) =
113
  * [Feature] The Add New Section code is now working. We have added 10 blocks and more are on the way.
114
  * [Task] Improved the layout of the color selector. Also when no color is selected, the color box will show blank space instead of white color.
4
  Requires at least: 4.7
5
  Tested up to: 5.3
6
  Requires PHP: 5.5
7
+ Stable tag: 1.0.8
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
109
 
110
  == Changelog ==
111
 
112
+ = 1.0.8 (March 24, 2020) =
113
+ * [Premium-Feature] We have added Scrolling Effects and Mouse Effects feature in Pagelayer. You can now set an animation to an element on mouse movement or on scroll.
114
+ * [Feature] We have now added 300+ sections in Pagelayer. You can 1-click add sections to a post / page. We have also added many pages so that you can build your website with just a few clicks.
115
+ * [Feature] Added "Import Theme" option in Pagelayer. A theme needs to be a pagelayer exported theme so that anyone can import the theme.
116
+ * [Feature] Most text fields are now editable from the Editor window itself without the left bar text fields. This enhances the editing experience.
117
+ * [Improvement] We have added a pre-loader to the Pagelayer editor.
118
+ * [Improvement] The Left-bar UI has been improved. Much more UI changes are coming !
119
+ * [Improvement] The Add Section wizard, has been further improved. The speed of image loading has also improved and we will improve the sections further.
120
+ * [Improvement] Added more options for popup builder. Advanced options are coming soon.
121
+ * [Task] Added the option to de-select the options from multi-select property type.
122
+ * [Task] The Pagelayer Editor left top bar UI is also improved.
123
+ * [Task] We are re-building our docs and also making some video tutorials for our users.
124
+ * [Bug-Fix] In certain cases, additional whitespace was added to the attributes. This is fixed.
125
+ * [Bug-Fix] In certain cases, widgets were broken when we use double code in text. This is fixed.
126
+ * [Bug-Fix] The image portfolio icon was missing. This is fixed.
127
+
128
  = 1.0.7 (March 3, 2020) =
129
  * [Feature] The Add New Section code is now working. We have added 10 blocks and more are on the way.
130
  * [Task] Improved the layout of the color selector. Also when no color is selected, the color box will show blank space instead of white color.