Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms - Version 1.5.5

Version Description

  • New feature: Redesigned dropdowns and a new setting to make Dropdown part searchable.
  • New feature: Redesigned Phone part now with country flags and a new searchable country dropdown.
  • Improvement: New shortcode view allows to directly edit a form from the editor.
  • Bug fix: Date & Time part set to show current date and time didn't consider timezone and showed incorrect date in some cases.
Download this release

Release Info

Developer thethemefoundry
Plugin Icon 128x128 Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms
Version 1.5.5
Comparing to
See all releases

Code changes from version 1.5.4 to 1.5.5

assets/css/frontend.css CHANGED
@@ -169,6 +169,7 @@ h3.happyforms-form__title {
169
  border-color: #dbdbdb !important;
170
  border-color: var(--happyforms-color-part-border) !important;
171
  border-radius: 6px;
 
172
  box-shadow: none;
173
  box-sizing: border-box;
174
  font-style: normal;
@@ -195,11 +196,6 @@ h3.happyforms-form__title {
195
  text-align: center;
196
  }
197
 
198
- .happyforms-form--part-value-text-align-center .happyforms-part select {
199
- text-align: justify;
200
- text-align-last: center;
201
- }
202
-
203
  .happyforms-form--part-value-text-align-center .happyforms-part--radio .happyforms-part__el {
204
  justify-content: center;
205
  }
@@ -219,12 +215,6 @@ h3.happyforms-form__title {
219
  justify-content: flex-end;
220
  }
221
 
222
- .happyforms-form--part-value-text-align-right .happyforms-part select {
223
- padding-right: 45px;
224
- text-align: justify;
225
- text-align-last: right;
226
- }
227
-
228
  .happyforms-form--part-border-off .happyforms-part input[type=text],
229
  .happyforms-form--part-border-off .happyforms-part input[type=email],
230
  .happyforms-form--part-border-off .happyforms-part input[type=tel],
@@ -343,14 +333,6 @@ h3.happyforms-form__title {
343
  margin-top: 10px;
344
  }
345
 
346
- .happyforms-part--label-below input,
347
- .happyforms-part--label-below textarea,
348
- .happyforms-part--label-below select,
349
- .happyforms-part--label-below .happyforms-part__select-wrap,
350
- .happyforms-part--label-below .happyforms-part__el {
351
- order: 3;
352
- }
353
-
354
  .happyforms-part--label-below .happyforms-part__description {
355
  order: 1;
356
  margin-top: 0;
@@ -380,11 +362,15 @@ h3.happyforms-form__title {
380
  }
381
  }
382
 
383
- .happyforms-part--label-left .happyforms-part__select-wrap,
384
  .happyforms-part--label-left .happyforms-part-wrap > .happyforms-part__el {
385
  width: 75%;
386
  }
387
 
 
 
 
 
388
  @media screen and (max-width: 800px) {
389
  .happyforms-part--label-left .happyforms-part-wrap {
390
  flex-flow: column;
@@ -393,7 +379,7 @@ h3.happyforms-form__title {
393
  align-self: flex-start;
394
  }
395
  .happyforms-part--label-left .happyforms-part-wrap>.happyforms-part__el,
396
- .happyforms-part--label-left .happyforms-part__select-wrap {
397
  width: 100%;
398
  }
399
  }
@@ -952,12 +938,15 @@ h3.happyforms-form__title {
952
 
953
  .happyforms-part--label-below input,
954
  .happyforms-part--label-below textarea,
955
- .happyforms-part--label-below select,
956
- .happyforms-part--label-below .happyforms-part__select-wrap,
957
  .happyforms-part--label-below .happyforms-part__el {
958
  order: 3;
959
  }
960
 
 
 
 
 
961
  .happyforms-part--label-below.happyforms-part--date .happyforms-part__el {
962
  width: 100%;
963
  order: 2;
@@ -973,9 +962,8 @@ h3.happyforms-form__title {
973
  text-align: right;
974
  }
975
 
976
- /* parts - phone */
977
- .happyforms-part--phone.happyforms-part--label-left input {
978
- width: 75%;
979
  }
980
 
981
  /* parts - placeholder */
@@ -1006,36 +994,6 @@ h3.happyforms-form__title {
1006
  }
1007
 
1008
  /* parts - select */
1009
-
1010
- .happyforms-part--select select,
1011
- .happyforms-part--date select,
1012
- .happyforms-part--title select {
1013
- position: relative;
1014
- z-index: 3;
1015
- -webkit-appearance: none;
1016
- -moz-appearance: none;
1017
- appearance: none;
1018
- width: 100%;
1019
- max-width: none;
1020
- height: auto !important;
1021
- border: 0;
1022
- border-radius: 0;
1023
- margin: 0;
1024
- padding: 10px;
1025
- line-height: 1.4;
1026
- background-color: transparent;
1027
- font-size: 16px;
1028
- font-size: var(--happyforms-part-value-font-size);
1029
- color: #000;
1030
- color: var(--happyforms-color-part-value);
1031
- }
1032
-
1033
- .happyforms-form--part-border-off .happyforms-part--select select,
1034
- .happyforms-form--part-border-off .happyforms-part--date select,
1035
- .happyforms-form--part-border-off .happyforms-part--title select {
1036
- border-color: transparent;
1037
- }
1038
-
1039
  .happyforms-part-date--datetime.happyforms-part--width-half .happyforms-part__el,
1040
  .happyforms-part-date--datetime.happyforms-part--width-third .happyforms-part__el {
1041
  flex-wrap: wrap;
@@ -1048,12 +1006,21 @@ h3.happyforms-form__title {
1048
  }
1049
 
1050
  .happyforms-part__select-wrap,
1051
- .happyforms-part--date__input-wrap {
 
1052
  position: relative;
1053
  flex: 1;
1054
  padding: 0 0 0 2%;
1055
  }
1056
 
 
 
 
 
 
 
 
 
1057
  .happyforms-part__select-bg {
1058
  padding: 1px 0 2px;
1059
  border: 1px solid;
@@ -1065,14 +1032,11 @@ h3.happyforms-form__title {
1065
  }
1066
 
1067
  .happyforms-part__select-wrap:first-of-type,
1068
- .happyforms-part--date__input-wrap:first-of-type {
 
1069
  padding-left: 0 !important;
1070
  }
1071
 
1072
- .happyforms-part--date input[type=text] {
1073
- height: 100% !important;
1074
- }
1075
-
1076
  .happyforms-part-date__time-input--minutes {
1077
  padding-left: 0;
1078
  }
@@ -1138,6 +1102,7 @@ h3.happyforms-form__title {
1138
  .happyforms-part--date .happyforms-part__el {
1139
  display: flex;
1140
  flex-flow: row wrap;
 
1141
  }
1142
 
1143
  .happyforms-part__select-wrap:last-child {
@@ -1608,8 +1573,9 @@ form > .happyforms-message-notices .error {
1608
  .happyforms-form--part-border-radius-square .happyforms-part input[type=range],
1609
  .happyforms-form--part-border-radius-square .happyforms-part textarea,
1610
  .happyforms-form--part-border-radius-square .happyforms-part .happyforms-part__select-bg,
1611
- .happyforms-form--part-border-radius-square .happyforms-part--address__results ul {
1612
- border-radius: 0px;
 
1613
  }
1614
 
1615
  .happyforms-form--part-border-radius-square .happyforms-part--radio .option-label .border {
@@ -1622,7 +1588,7 @@ form > .happyforms-message-notices .error {
1622
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
1623
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=range],
1624
  .happyforms-form--part-border-radius-pill .happyforms-part textarea {
1625
- border-radius: 25px;
1626
  padding-left: 25px;
1627
  padding-right: 25px;
1628
  }
@@ -1688,6 +1654,17 @@ form > .happyforms-message-notices .error {
1688
  left: 11px;
1689
  }
1690
 
 
 
 
 
 
 
 
 
 
 
 
1691
  .happyforms-part--label-inside label .label {
1692
  font-weight: bold;
1693
  font-size: 14px;
@@ -1736,8 +1713,7 @@ form > .happyforms-message-notices .error {
1736
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=text],
1737
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=email],
1738
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=number],
1739
- .happyforms-form--part-borders-bottom-only .happyforms-part textarea,
1740
- .happyforms-form--part-borders-bottom-only .happyforms-part select {
1741
  border-top-color: transparent;
1742
  border-left-color: transparent;
1743
  border-right-color: transparent;
@@ -1909,10 +1885,6 @@ form > .happyforms-message-notices .error {
1909
  margin-left: 5px;
1910
  }
1911
 
1912
- .happyforms-form--part-inner-padding-narrow .happyforms-part select {
1913
- padding: 7px;
1914
- }
1915
-
1916
  .happyforms-form--part-inner-padding-narrow .happyforms-part__label {
1917
  margin-bottom: 5px;
1918
  }
@@ -1946,10 +1918,6 @@ form > .happyforms-message-notices .error {
1946
  margin-left: 15px;
1947
  }
1948
 
1949
- .happyforms-form--part-inner-padding-wide .happyforms-part select {
1950
- padding: 16px;
1951
- }
1952
-
1953
  .happyforms-form--part-inner-padding-wide .happyforms-part .happyforms-part__select-wrap:after {
1954
  top: 45%;
1955
  }
@@ -2220,4 +2188,157 @@ form > .happyforms-message-notices .error {
2220
 
2221
  .happyforms-form--part-outer-padding-narrow .happyforms-part--recaptcha .happyforms-part-wrap > div {
2222
  padding: 5px 0.5%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2223
  }
169
  border-color: #dbdbdb !important;
170
  border-color: var(--happyforms-color-part-border) !important;
171
  border-radius: 6px;
172
+ border-radius: 6px !important;
173
  box-shadow: none;
174
  box-sizing: border-box;
175
  font-style: normal;
196
  text-align: center;
197
  }
198
 
 
 
 
 
 
199
  .happyforms-form--part-value-text-align-center .happyforms-part--radio .happyforms-part__el {
200
  justify-content: center;
201
  }
215
  justify-content: flex-end;
216
  }
217
 
 
 
 
 
 
 
218
  .happyforms-form--part-border-off .happyforms-part input[type=text],
219
  .happyforms-form--part-border-off .happyforms-part input[type=email],
220
  .happyforms-form--part-border-off .happyforms-part input[type=tel],
333
  margin-top: 10px;
334
  }
335
 
 
 
 
 
 
 
 
 
336
  .happyforms-part--label-below .happyforms-part__description {
337
  order: 1;
338
  margin-top: 0;
362
  }
363
  }
364
 
365
+ .happyforms-part--label-left .happyforms-custom-select,
366
  .happyforms-part--label-left .happyforms-part-wrap > .happyforms-part__el {
367
  width: 75%;
368
  }
369
 
370
+ .happyforms-part--label-left.happyforms-part--date .happyforms-custom-select {
371
+ width: 100%;
372
+ }
373
+
374
  @media screen and (max-width: 800px) {
375
  .happyforms-part--label-left .happyforms-part-wrap {
376
  flex-flow: column;
379
  align-self: flex-start;
380
  }
381
  .happyforms-part--label-left .happyforms-part-wrap>.happyforms-part__el,
382
+ .happyforms-part--label-left .happyforms-custom-select {
383
  width: 100%;
384
  }
385
  }
938
 
939
  .happyforms-part--label-below input,
940
  .happyforms-part--label-below textarea,
941
+ .happyforms-part--label-below .happyforms-custom-select,
 
942
  .happyforms-part--label-below .happyforms-part__el {
943
  order: 3;
944
  }
945
 
946
+ .happyforms-part--label-below .happyforms-custom-select {
947
+ width: 100%;
948
+ }
949
+
950
  .happyforms-part--label-below.happyforms-part--date .happyforms-part__el {
951
  width: 100%;
952
  order: 2;
962
  text-align: right;
963
  }
964
 
965
+ .happyforms-part--label-below.happyforms-part--phone .happyforms-part__el {
966
+ width: 100%;
 
967
  }
968
 
969
  /* parts - placeholder */
994
  }
995
 
996
  /* parts - select */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
997
  .happyforms-part-date--datetime.happyforms-part--width-half .happyforms-part__el,
998
  .happyforms-part-date--datetime.happyforms-part--width-third .happyforms-part__el {
999
  flex-wrap: wrap;
1006
  }
1007
 
1008
  .happyforms-part__select-wrap,
1009
+ .happyforms-part--date__input-wrap,
1010
+ .happyforms-part-date__date-input {
1011
  position: relative;
1012
  flex: 1;
1013
  padding: 0 0 0 2%;
1014
  }
1015
 
1016
+ .happyforms-part__select-wrap {
1017
+ height: 100%;
1018
+ }
1019
+
1020
+ .happyforms-part-date__date-input {
1021
+ height: 100%;
1022
+ }
1023
+
1024
  .happyforms-part__select-bg {
1025
  padding: 1px 0 2px;
1026
  border: 1px solid;
1032
  }
1033
 
1034
  .happyforms-part__select-wrap:first-of-type,
1035
+ .happyforms-part--date__input-wrap:first-of-type,
1036
+ .happyforms-part-date__date-input:first-of-type {
1037
  padding-left: 0 !important;
1038
  }
1039
 
 
 
 
 
1040
  .happyforms-part-date__time-input--minutes {
1041
  padding-left: 0;
1042
  }
1102
  .happyforms-part--date .happyforms-part__el {
1103
  display: flex;
1104
  flex-flow: row wrap;
1105
+ align-items: center;
1106
  }
1107
 
1108
  .happyforms-part__select-wrap:last-child {
1573
  .happyforms-form--part-border-radius-square .happyforms-part input[type=range],
1574
  .happyforms-form--part-border-radius-square .happyforms-part textarea,
1575
  .happyforms-form--part-border-radius-square .happyforms-part .happyforms-part__select-bg,
1576
+ .happyforms-form--part-border-radius-square .happyforms-part--address__results ul,
1577
+ .happyforms-form--part-border-radius-square .happyforms-country-select__selected-country {
1578
+ border-radius: 0px !important;
1579
  }
1580
 
1581
  .happyforms-form--part-border-radius-square .happyforms-part--radio .option-label .border {
1588
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
1589
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=range],
1590
  .happyforms-form--part-border-radius-pill .happyforms-part textarea {
1591
+ border-radius: 25px !important;
1592
  padding-left: 25px;
1593
  padding-right: 25px;
1594
  }
1654
  left: 11px;
1655
  }
1656
 
1657
+ .happyforms-part--label-inside.happyforms-part--phone.happyforms-is-masked label {
1658
+ top: 10px;
1659
+ left: 75px;
1660
+ z-index: 2;
1661
+ }
1662
+
1663
+ .happyforms-part--label-as_placeholder.happyforms-part--phone.happyforms-is-masked label {
1664
+ top: 10px;
1665
+ left: 75px;
1666
+ }
1667
+
1668
  .happyforms-part--label-inside label .label {
1669
  font-weight: bold;
1670
  font-size: 14px;
1713
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=text],
1714
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=email],
1715
  .happyforms-form--part-borders-bottom-only .happyforms-part input[type=number],
1716
+ .happyforms-form--part-borders-bottom-only .happyforms-part textarea {
 
1717
  border-top-color: transparent;
1718
  border-left-color: transparent;
1719
  border-right-color: transparent;
1885
  margin-left: 5px;
1886
  }
1887
 
 
 
 
 
1888
  .happyforms-form--part-inner-padding-narrow .happyforms-part__label {
1889
  margin-bottom: 5px;
1890
  }
1918
  margin-left: 15px;
1919
  }
1920
 
 
 
 
 
1921
  .happyforms-form--part-inner-padding-wide .happyforms-part .happyforms-part__select-wrap:after {
1922
  top: 45%;
1923
  }
2188
 
2189
  .happyforms-form--part-outer-padding-narrow .happyforms-part--recaptcha .happyforms-part-wrap > div {
2190
  padding: 5px 0.5%;
2191
+ }
2192
+
2193
+ .happyforms-part--phone .happyforms-part__el {
2194
+ position: relative;
2195
+ }
2196
+
2197
+ /* phone part */
2198
+ .happyforms-country-select {
2199
+ position: absolute;
2200
+ top: 0;
2201
+ left: 0;
2202
+ right: auto;
2203
+ width: 70px;
2204
+ height: 100%;
2205
+ border: 1px solid var(--happyforms-color-part-border);
2206
+ border-right: 0;
2207
+ border-radius: 8px;
2208
+ border-top-right-radius: 0;
2209
+ border-bottom-right-radius: 0;
2210
+ transition: border-color 0.4s;
2211
+ transition: border-color var(--happyforms-transition-duration);
2212
+ }
2213
+ .happyforms-form--part-border-radius-square .happyforms-country-select {
2214
+ border-radius: 0;
2215
+ }
2216
+ .happyforms-form--part-border-radius-pill .happyforms-country-select {
2217
+ border-radius: 25px;
2218
+ border-bottom: 0;
2219
+ border-top: 0;
2220
+ }
2221
+ .happyforms-country-select.focus {
2222
+ border: 2px solid var(--happyforms-color-part-border-focus);
2223
+ border-right: 0;
2224
+ }
2225
+ .happyforms-country-select-trigger {
2226
+ display: none;
2227
+ position: absolute;
2228
+ top: 0;
2229
+ left: 0;
2230
+ right: auto;
2231
+ width: 70px;
2232
+ height: 100%;
2233
+ z-index: 10;
2234
+ }
2235
+ .happyforms-country-select--multiple .happyforms-country-select-trigger {
2236
+ display: block;
2237
+ }
2238
+ .happyforms-country-select__selected-country {
2239
+ position: relative;
2240
+ z-index: 1;
2241
+ height: 100%;
2242
+ padding: 0 20px 0 7px;
2243
+ box-sizing: border-box;
2244
+ border-radius: 6px;
2245
+ border-top-right-radius: 0;
2246
+ border-bottom-right-radius: 0;
2247
+ transition: background-color 0.2s ease-in;
2248
+ }
2249
+ .happyforms-form--part-border-radius-pill .happyforms-country-select__selected-country {
2250
+ border-radius: 25px;
2251
+ border-top-right-radius: 0;
2252
+ border-bottom-right-radius: 0;
2253
+ }
2254
+ .happyforms-country-select--multiple .happyforms-country-select__selected-country:hover,
2255
+ .happyforms-country-select--multiple .happyforms-country-select__selected-country.open {
2256
+ background-color: #dbdbdb;
2257
+ background-color: var(--happyforms-color-part-border);
2258
+ }
2259
+ .happyforms-country-select--multiple .happyforms-country-select__selected-country:after {
2260
+ content: '';
2261
+ display: block;
2262
+ position: absolute;
2263
+ top: calc(50% - 3px);
2264
+ right: 5px;
2265
+ width: 0;
2266
+ height: 0;
2267
+ border-left: 5px solid transparent;
2268
+ border-right: 5px solid transparent;
2269
+ border-top: 5px solid #000;
2270
+ }
2271
+ .happyforms-country-select.focus .happyforms-flag {
2272
+ position: relative;
2273
+ left: -1px;
2274
+ }
2275
+ .happyforms-flag {
2276
+ display: flex;
2277
+ align-items: center;
2278
+ height: 100%;
2279
+ line-height: 1;
2280
+ font-size: 40px;
2281
+ }
2282
+ .happyforms-part--phone.happyforms-is-masked .happyforms-part__el>input[type=text] {
2283
+ padding-left: 65px;
2284
+ }
2285
+ .happyforms-part--phone.happyforms-is-masked .happyforms-part__el>input[type=text]:focus~div {
2286
+ display: none;
2287
+ }
2288
+ .happyforms-part--phone.happyforms-is-masked.happyforms-has-country-select .happyforms-part__el>input[type=text] {
2289
+ padding-left: 75px;
2290
+ }
2291
+
2292
+ /* new dropdowns */
2293
+ .happyforms-part select {
2294
+ display: none;
2295
+ }
2296
+ .happyforms-custom-select input[readonly="readonly"] {
2297
+ cursor: pointer;
2298
+ }
2299
+ .happyforms-custom-select-dropdown {
2300
+ display: none;
2301
+ position: absolute;
2302
+ z-index: 10;
2303
+ list-style: none;
2304
+ padding: 0;
2305
+ text-align: left;
2306
+ margin: 0;
2307
+ background-color: #fff;
2308
+ border: 1px solid #dbdbdb;
2309
+ white-space: nowrap;
2310
+ width: 100%;
2311
+ max-height: 250px;
2312
+ overflow-y: scroll;
2313
+ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2)
2314
+ }
2315
+ .happyforms-part__select-wrap {
2316
+ cursor: pointer;
2317
+ }
2318
+ .happyforms-custom-select-dropdown.phone {
2319
+ min-width: 425px;
2320
+ }
2321
+ .happyforms-custom-select-dropdown.active {
2322
+ display: block;
2323
+ }
2324
+ .happyforms-custom-select-dropdown li {
2325
+ cursor: pointer;
2326
+ display: flex;
2327
+ align-items: center;
2328
+ padding: 5px 10px;
2329
+ transition: background-color 0.2s ease-in;
2330
+ }
2331
+ .happyforms-custom-select-dropdown li.happyforms-custom-select-dropdown__item:hover {
2332
+ background-color: #dbdbdb;
2333
+ }
2334
+ .happyforms-custom-select-dropdown .happyforms-flag {
2335
+ font-size: 30px;
2336
+ }
2337
+ .happyforms-custom-select-dropdown .happyforms-custom-select-dropdown-item__label--country {
2338
+ padding: 0 10px 0 5px;
2339
+ font-size: 16px;
2340
+ }
2341
+ .happyforms-custom-select-dropdown .happyforms-custom-select-dropdown-item__label--country-code {
2342
+ font-size: 14px;
2343
+ color: #888888;
2344
  }
assets/img/flags.png ADDED
Binary file
assets/js/admin/dashboard.js ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+ // Dismissible notices
3
+ $( '.notice:not(.one-time)' ).on( 'click', '.notice-dismiss', function( e ) {
4
+ e.preventDefault();
5
+
6
+ var $target = $( e.target );
7
+ var $parent = $target.parents( '.notice' ).first();
8
+ var id = $parent.attr( 'id' ).replace( 'happyforms-notice-', '' );
9
+ var nonce = $parent.data( 'nonce' );
10
+
11
+ $.post( ajaxurl, {
12
+ action: 'happyforms_hide_notice',
13
+ nid: id,
14
+ nonce: nonce
15
+ }
16
+ );
17
+ } );
18
+
19
+ // Messages edit screen
20
+ $( 'form#post' ).on( 'click', '#happyforms-message-status-toggle', function( e ) {
21
+ e.preventDefault();
22
+
23
+ var $target = $( e.target );
24
+ var $form = $( 'form#post' );
25
+ var $field = $form.find( '[name="message-status"]' );
26
+
27
+ if ( 1 == $field.val() ) {
28
+ $field.val( 0 );
29
+ } else {
30
+ $field.val( 1 );
31
+ }
32
+
33
+ $form.submit();
34
+ } );
35
+
36
+ function getCurrentEditor() {
37
+ var editor,
38
+ hasTinymce = typeof tinymce !== 'undefined',
39
+ hasQuicktags = typeof QTags !== 'undefined';
40
+
41
+ if ( ! wpActiveEditor ) {
42
+ if ( hasTinymce && tinymce.activeEditor ) {
43
+ editor = tinymce.activeEditor;
44
+ wpActiveEditor = editor.id;
45
+ } else if ( ! hasQuicktags ) {
46
+ return false;
47
+ }
48
+ } else if ( hasTinymce ) {
49
+ editor = tinymce.get( wpActiveEditor );
50
+ }
51
+
52
+ return editor;
53
+ }
54
+
55
+ // Shortcode popup insert button
56
+ $( '.happyforms-dialog__button' ).on( 'click', function(e) {
57
+ e.preventDefault();
58
+ e.stopImmediatePropagation();
59
+
60
+ var selectedForm = $( '#happyforms-dialog-select' ).val();
61
+ if ( ! selectedForm ) {
62
+ return false;
63
+ }
64
+
65
+ var shortcode = '[happyforms id="' + selectedForm + '" /]';
66
+ window.parent.send_to_editor( shortcode );
67
+ $( '#happyforms-modal' ).dialog( 'close' );
68
+ $( '#happyforms-dialog-select' ).val( '' );
69
+
70
+ if ( editor = getCurrentEditor() ) {
71
+ editor.focus();
72
+ }
73
+ } );
74
+
75
+ // Shortcode popup
76
+ $( document ).on( 'click', '.happyforms-editor-button', function( e ) {
77
+ var title = $( e.currentTarget ).attr( 'data-title' );
78
+
79
+ $('#happyforms-modal').dialog( {
80
+ title: title,
81
+ dialogClass: 'happyforms-dialog wp-dialog',
82
+ draggable: false,
83
+ width: 'auto',
84
+ modal: true,
85
+ resizable: false,
86
+ closeOnEscape: true,
87
+ position: {
88
+ my: 'center',
89
+ at: 'center',
90
+ of: $(window)
91
+ }
92
+ } );
93
+ } );
94
+ } )( jQuery );
assets/js/admin/shortcode.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( window, views, $, settings ) {
2
+
3
+ var happyforms = {
4
+ template: wp.media.template( 'happyforms-shortcode' ),
5
+
6
+ getTitle: function( id ) {
7
+ var title = '';
8
+
9
+ if ( settings.forms[id] ) {
10
+ title = '"' + settings.forms[id] + '" - ';
11
+ }
12
+
13
+ return title;
14
+ },
15
+
16
+ getId: function() {
17
+ return this.shortcode.attrs.named.id;
18
+ },
19
+
20
+ initialize: function() {
21
+ var id = this.getId();
22
+ var title = this.getTitle( id );
23
+
24
+ this.render( this.template( {
25
+ id: id,
26
+ title: title,
27
+ } ) );
28
+ },
29
+
30
+ edit: function() {
31
+ var id = this.getId();
32
+ var returnUrl = encodeURIComponent( document.location.href );
33
+ var link = settings.edit_link.replace( 'ID', id ).replace( 'URL', returnUrl );
34
+
35
+ document.location.href = link;
36
+ },
37
+ }
38
+
39
+ views.register( 'happyforms', _.extend( {}, happyforms ) );
40
+
41
+ } )( window, window.wp.mce.views, window.jQuery, HappyForms.admin );
assets/js/frontend.js CHANGED
@@ -149,6 +149,10 @@
149
  var type = $part.data( 'happyforms-type' );
150
 
151
  HappyForms.wrapPart( $part, $form );
 
 
 
 
152
  } );
153
 
154
  this.$el.on( 'happyforms-change', this.validate.bind( this ) );
149
  var type = $part.data( 'happyforms-type' );
150
 
151
  HappyForms.wrapPart( $part, $form );
152
+
153
+ if ($part.find('.happyforms-custom-select').length) {
154
+ $('.happyforms-custom-select', $part).happyformsSelect();
155
+ }
156
  } );
157
 
158
  this.$el.on( 'happyforms-change', this.validate.bind( this ) );
assets/js/frontend/date.js CHANGED
@@ -8,7 +8,7 @@
8
  this.spinnerInterval = '';
9
  this.spinnerIntervalLength = 50;
10
  this.$input = $('input, select', this.$el);
11
- this.$numbers = $('input', this.$el);
12
  this.$spinnerUpArrow = $('.happyforms-spinner-arrow--up', this.$el);
13
  this.$spinnerDownArrow = $('.happyforms-spinner-arrow--down', this.$el);
14
 
8
  this.spinnerInterval = '';
9
  this.spinnerIntervalLength = 50;
10
  this.$input = $('input, select', this.$el);
11
+ this.$numbers = $('.happyforms-part-date__time-input input', this.$el);
12
  this.$spinnerUpArrow = $('.happyforms-spinner-arrow--up', this.$el);
13
  this.$spinnerDownArrow = $('.happyforms-spinner-arrow--down', this.$el);
14
 
assets/js/frontend/phone.js CHANGED
@@ -5,41 +5,74 @@
5
  HappyForms.parts.phone = {
6
  init: function() {
7
  this.type = this.$el.data( 'happyforms-type' );
8
- this.$input = $( 'input', this.$el );
9
  this.masked = this.$el.attr( 'data-mask' );
 
10
  this.prefix = '';
11
 
12
  this.$input.on( 'keyup', this.triggerChange.bind( this ) );
13
  this.$input.on( 'change', this.triggerChange.bind( this ) );
14
  this.$input.on( 'blur', this.onBlur.bind(this) );
 
 
15
 
16
  if ( this.masked ) {
17
- this.cleaveInstances = this.$input.map( function( i, input ) {
18
- var $input = $( input );
19
- var code = this.$el.attr( 'data-country' );
20
- var rawValue = $input.val();
 
 
 
 
 
21
 
22
- this.prefix = '+' + code;
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- var cleave = new Cleave( $input, {
 
 
25
  phone: true,
26
  phoneRegionCode: settings.codes[code],
27
- prefix: this.prefix,
28
- } );
 
29
 
30
- cleave.setRawValue( rawValue );
31
 
 
 
32
  return cleave;
33
- }.bind( this ) );
34
  }
35
  },
36
 
37
- reinit: function() {
38
- $.each( this.cleaveInstances, function( i, instance ) {
39
- instance.destroy();
40
- } );
41
 
42
- this.init();
 
 
 
 
 
 
 
 
 
43
  },
44
 
45
  isFilled: function() {
@@ -79,7 +112,11 @@
79
  };
80
 
81
  if ( self.masked ) {
82
- keyValue.value = self.cleaveInstances[i].getRawValue();
 
 
 
 
83
  }
84
 
85
  return keyValue;
@@ -87,6 +124,109 @@
87
 
88
  return serialized;
89
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  } )( jQuery, HappyFormsPhoneSettings );
5
  HappyForms.parts.phone = {
6
  init: function() {
7
  this.type = this.$el.data( 'happyforms-type' );
8
+ this.$input = $( '.happyforms-part__el > input', this.$el );
9
  this.masked = this.$el.attr( 'data-mask' );
10
+ this.$countryCode = $( 'input[type=hidden]', this.$el );
11
  this.prefix = '';
12
 
13
  this.$input.on( 'keyup', this.triggerChange.bind( this ) );
14
  this.$input.on( 'change', this.triggerChange.bind( this ) );
15
  this.$input.on( 'blur', this.onBlur.bind(this) );
16
+ this.$input.on( 'focus', this.toggleCountryDropdownClass.bind(this) );
17
+ this.$input.on( 'blur', this.toggleCountryDropdownClass.bind(this) );
18
 
19
  if ( this.masked ) {
20
+ this.initCleave();
21
+ this.initCountryDropdown();
22
+ }
23
+ },
24
+
25
+ reinit: function() {
26
+ this.destroyCleave();
27
+ this.init();
28
+ },
29
 
30
+ destroyCleave: function() {
31
+ $.each(this.cleaveInstances, function (i, instance) {
32
+ instance.destroy();
33
+ });
34
+ },
35
+
36
+ initCleave: function() {
37
+ var self = this;
38
+
39
+ if ( this.masked ) {
40
+ this.cleaveInstances = this.$input.not(':hidden').map(function (i, input) {
41
+ var $input = $(input);
42
+ var code = $( 'input[type=hidden]', this.$el ).val();
43
+ var rawValue = $input.val();
44
 
45
+ this.prefix = code;
46
+
47
+ var cleave = new Cleave($input, {
48
  phone: true,
49
  phoneRegionCode: settings.codes[code],
50
+ prefix: '+' + this.prefix + ' ',
51
+ rawValueTrimPrefix: true
52
+ });
53
 
54
+ var cleaveValue = '+' + code + rawValue;
55
 
56
+ cleave.setRawValue( cleaveValue );
57
+
58
  return cleave;
59
+ }.bind(this));
60
  }
61
  },
62
 
63
+ initCountryDropdown: function() {
64
+ var self = this;
 
 
65
 
66
+ this.$input.not(':hidden').map(function (i, input) {
67
+ var $input = $(input);
68
+
69
+ if ( 'text' === $input.attr('type') ) {
70
+ $input.countryDropdown = new HappyFormsCountryDropdown( $input.prev('.happyforms-country-select') );
71
+ $.extend( $input.countryDropdown, HappyForms.countryDropdownMethods );
72
+ $input.countryDropdown.inputObject = self;
73
+ $input.countryDropdown.init();
74
+ }
75
+ });
76
  },
77
 
78
  isFilled: function() {
112
  };
113
 
114
  if ( self.masked ) {
115
+ self.cleaveInstances.map( function(i, instance) {
116
+ if ( instance.element === input ) {
117
+ keyValue.value = self.cleaveInstances[i].getRawValue();
118
+ }
119
+ });
120
  }
121
 
122
  return keyValue;
124
 
125
  return serialized;
126
  },
127
+
128
+ toggleCountryDropdownClass: function(e) {
129
+ var $input = $(e.target);
130
+
131
+ if ( 'focus' === e.type ) {
132
+ $input.prev('div').addClass('focus');
133
+ } else {
134
+ $input.prev('div').removeClass('focus');
135
+ }
136
+ }
137
+ };
138
+
139
+ function HappyFormsCountryDropdown( $el ) {
140
+ this.$el = $el;
141
  }
142
 
143
+ HappyForms.countryDropdownMethods = {
144
+ init: function() {
145
+ this.$countryTrigger = $( '.happyforms-country-select-trigger', this.$el );
146
+ this.$currentCountry = $( '.happyforms-country-select__selected-country', this.$el );
147
+ this.$currentFlag = $( '.happyforms-country-select__selected-country .happyforms-flag', this.inputObject.$el );
148
+ this.$countryDropdown = $( '.happyforms-custom-select-dropdown', this.$el );
149
+ this.$countrySearchField = $( '.happyforms-custom-select-dropdown__search', this.$el );
150
+
151
+ this.$countryTrigger.on( 'click', this.toggleCountryDropdown.bind(this) );
152
+ this.$countrySearchField.on( 'keyup', this.searchCountries.bind(this) );
153
+
154
+ $( '.happyforms-custom-select-dropdown__item', this.$countryDropdown ).on( 'click keyup', this.onCountrySelect.bind(this) );
155
+ $( window ).on( 'click', this.maybeCloseCountryDropdown.bind(this) );
156
+ },
157
+
158
+ toggleCountryDropdown: function(e) {
159
+ if ( 'undefined' !== typeof e ) {
160
+ e.preventDefault();
161
+ e.stopPropagation();
162
+ }
163
+
164
+ this.$currentCountry.toggleClass('open');
165
+ this.$countryDropdown.scrollTop(0);
166
+ this.$countryDropdown.toggleClass('active');
167
+
168
+ // clear search input val and show all items on dropdown close
169
+ if ( ! this.$countryDropdown.hasClass('active') ) {
170
+ this.$countrySearchField.val('');
171
+ $( 'li', this.$countryDropdown ).show();
172
+ }
173
+ },
174
+
175
+ maybeCloseCountryDropdown: function (e) {
176
+ if ( this.$countryDropdown.hasClass('active') && -1 >= e.target.className.indexOf('happyforms-custom-select') ) {
177
+ this.toggleCountryDropdown();
178
+ }
179
+ },
180
+
181
+ onCountrySelect: function( e ) {
182
+ var $li;
183
+ var $target = $(e.target);
184
+
185
+ if ( 'click' === e.type ) {
186
+ if ( ! $target.is('li') ) {
187
+ $li = $(e.target).parent('li');
188
+ } else {
189
+ $li = $target;
190
+ }
191
+ }
192
+
193
+ if ( 'keyup' === e.type ) {
194
+ if ( 'Enter' !== e.key ) {
195
+ return false;
196
+ }
197
+
198
+ $li = $(e.target);
199
+ }
200
+
201
+ var $flag = $( 'img', $li ).clone();
202
+
203
+ this.inputObject.cleaveInstances.map(function(i, instance) {
204
+ instance.setRawValue('');
205
+ });
206
+
207
+ this.$currentFlag.html($flag); // replace flag
208
+
209
+ this.inputObject.$countryCode.val($li.attr('data-code'));
210
+
211
+ // re-init cleave
212
+ this.inputObject.destroyCleave();
213
+ this.inputObject.initCleave();
214
+
215
+ this.toggleCountryDropdown();
216
+ },
217
+
218
+ searchCountries: function(e) {
219
+ var searchString = this.$countrySearchField.val().toLowerCase();
220
+ var $allItems = $( '.happyforms-custom-select-dropdown__item', this.$countryDropdown );
221
+
222
+ if ( !searchString ) {
223
+ $allItems.show();
224
+ } else {
225
+ $allItems.hide();
226
+ $( '.happyforms-custom-select-dropdown__item[data-country*="'+ searchString +'"]', this.$countryDropdown).show();
227
+ $( '.happyforms-custom-select-dropdown__item[data-search-string*="'+ searchString +'"]', this.$countryDropdown ).show();
228
+ }
229
+ }
230
+ };
231
+
232
  } )( jQuery, HappyFormsPhoneSettings );
assets/js/happyforms.js DELETED
@@ -1,35 +0,0 @@
1
- ( function( $ ) {
2
- // Dismissible notices
3
- $( '.notice:not(.one-time)' ).on( 'click', '.notice-dismiss', function( e ) {
4
- e.preventDefault();
5
-
6
- var $target = $( e.target );
7
- var $parent = $target.parents( '.notice' ).first();
8
- var id = $parent.attr( 'id' ).replace( 'happyforms-notice-', '' );
9
- var nonce = $parent.data( 'nonce' );
10
-
11
- $.post( ajaxurl, {
12
- action: 'happyforms_hide_notice',
13
- nid: id,
14
- nonce: nonce
15
- }
16
- );
17
- } );
18
-
19
- // Messages edit screen
20
- $( 'form#post' ).on( 'click', '#happyforms-message-status-toggle', function( e ) {
21
- e.preventDefault();
22
-
23
- var $target = $( e.target );
24
- var $form = $( 'form#post' );
25
- var $field = $form.find( '[name="message-status"]' );
26
-
27
- if ( 1 == $field.val() ) {
28
- $field.val( 0 );
29
- } else {
30
- $field.val( 1 );
31
- }
32
-
33
- $form.submit();
34
- } );
35
- } )( jQuery );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/lib/happyforms-select.js ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+ 'use strict';
3
+
4
+ function HappyFormsSelect( el, options ) {
5
+ this.el = el;
6
+ this.$el = $(this.el);
7
+ this.options = options;
8
+
9
+ this.$el.addClass('happyforms-select-active');
10
+
11
+ this.$inputWrapper = $('.happyforms-part__select-wrap', this.$el);
12
+ this.$input = $('input', this.$el);
13
+ this.$select = $('select', this.$el);
14
+ this.$dropdown = $('.happyforms-custom-select-dropdown', this.$el);
15
+
16
+ this.defaultValue = '';
17
+ }
18
+
19
+ var happyformsSelectMethods = {
20
+ init: function() {
21
+ this.cleanUp();
22
+
23
+ if ( this.el.hasAttribute('data-searchable') ) {
24
+ this.options.searchable = this.$el.data('searchable');
25
+ }
26
+
27
+ if ( ! this.options.searchable ) {
28
+ this.$input.attr( 'readonly', 'readonly' );
29
+ } else {
30
+ this.$input.removeAttr( 'readonly' );
31
+ }
32
+
33
+ if ( $('li.default', this.$dropdown).length ) {
34
+ var $defaultItem = $('li.default', this.$dropdown);
35
+
36
+ this.defaultValue = ( $defaultItem.data('label') ) ? $defaultItem.data('label') : $defaultItem.data('value');
37
+ }
38
+
39
+ this.bindEvents();
40
+ },
41
+
42
+ bindEvents: function() {
43
+ if ( this.options.searchable ) {
44
+ this.$input.on( 'keyup.happyformsSelect', this.searchOptions.bind(this) );
45
+ }
46
+
47
+ this.$inputWrapper.on('click', this.onWrapperClick.bind( this ) );
48
+ this.$input.on( 'focus.happyformsSelect click.happyformsSelect', this.showDropdown.bind( this ) );
49
+ $( 'li', this.$dropdown ).on( 'click.happyformsSelect keyup.happyformsSelect', this.onItemSelect.bind( this ) );
50
+ $( window ).on( 'click.happyformsSelect', this.onOutsideClick.bind( this ) );
51
+ },
52
+
53
+ showDropdown: function( e ) {
54
+ $( '.happyforms-part-select__dropdown' ).hide();
55
+
56
+ this.$dropdown.show();
57
+
58
+ e.stopPropagation();
59
+ },
60
+
61
+ hideDropdown: function () {
62
+ this.verifyValue();
63
+ this.$dropdown.hide();
64
+
65
+ $( 'li', this.$dropdown ).show();
66
+ },
67
+
68
+ onWrapperClick: function ( e ) {
69
+ this.$input.focus();
70
+ this.showDropdown( e );
71
+ },
72
+
73
+ onOutsideClick: function( e ) {
74
+ if ( ! this.el.contains(e.target).length && this.$dropdown.is(':visible') ) {
75
+ this.hideDropdown();
76
+ }
77
+ },
78
+
79
+ onItemSelect: function( e ) {
80
+ if ( 'keyup' === e.type && 'Enter' !== e.key || 'Tab' === e.key ) {
81
+ return false;
82
+ }
83
+
84
+ e.stopPropagation();
85
+
86
+ var $li = $(e.target);
87
+ this.$input.val($li.data('value'));
88
+
89
+ this.hideDropdown();
90
+ },
91
+
92
+ searchOptions: function( e ) {
93
+ if ( e.key && 'Tab' === e.key ) {
94
+ return false;
95
+ }
96
+
97
+ var value = this.$input.val();
98
+ var $allItems = $( 'li', this.$dropdown );
99
+
100
+ if ( value ) {
101
+ $allItems.hide();
102
+
103
+ $allItems.map(function( i, li ) {
104
+ var $li = $(li);
105
+ var liValue = $li.data('value');
106
+ var liLabel = ( $li.data('label') && $li.data('label').length ) ? $li.data('label').toLowerCase() : '';
107
+
108
+ if ( liValue ) {
109
+ liValue = liValue.toString().toLowerCase();
110
+ value = value.toString().toLowerCase();
111
+ }
112
+
113
+ if ( liValue && -1 !== liValue.indexOf(value) ) {
114
+ $li.show();
115
+ }
116
+
117
+ if ( liLabel && -1 !== liLabel.indexOf(value) ) {
118
+ $li.show();
119
+ }
120
+ });
121
+ } else {
122
+ $allItems.show();
123
+ }
124
+ },
125
+
126
+ verifyValue: function( e ) {
127
+ var value = this.$input.val();
128
+ var self = this;
129
+
130
+ if ( value ) {
131
+ $( 'li', this.$dropdown ).each(function( i, li ) {
132
+ var $li = $(li);
133
+ var liValue = $li.data('value');
134
+ var liLabel = ( $li.data('label') && $li.data('label').length ) ? $li.data('label') : '';
135
+
136
+ if ( liValue && liValue.toString() === value || liLabel.toString() === value ) {
137
+ self.$select.val(liValue);
138
+
139
+ if ( liLabel ) {
140
+ self.$input.val(liLabel);
141
+ } else {
142
+ self.$input.val(liValue);
143
+ }
144
+
145
+ return false;
146
+ } else {
147
+ self.$input.val(self.defaultValue);
148
+ }
149
+ });
150
+ } else {
151
+ self.$input.val(this.defaultValue);
152
+ self.$select.val(this.defaultValue);
153
+ }
154
+ },
155
+
156
+ cleanUp: function() {
157
+ $( 'input', this.$el ).off( 'change.happyformsSelect keyup.happyformsSelect focus.happyformsSelect click.happyformsSelect' );
158
+ $( '.happyforms-part-select__dropdown li', this.$el ).off( 'click.happyformsSelect keyup.happyformsSelect' );
159
+ },
160
+ }
161
+
162
+ $.fn.happyformsSelect = function( options ) {
163
+ options = $.extend({
164
+ searchable: false
165
+ }, $.fn.happyformsSelect.config, options);
166
+
167
+ return this.each(function () {
168
+ var instance = new HappyFormsSelect( this, options );
169
+ $.extend( instance, happyformsSelectMethods );
170
+ instance.init();
171
+ });
172
+ };
173
+ } )( jQuery );
assets/js/parts/part-phone.js CHANGED
@@ -11,52 +11,53 @@
11
  } );
12
 
13
  var PhoneView = happyForms.classes.views.Part.extend( {
14
- template: '#happyforms-customize-phone-template',
15
-
16
- events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
17
  'change [name=masked]': 'onMaskedChange',
18
- } ),
19
 
20
  initialize: function () {
21
  happyForms.classes.views.Part.prototype.initialize.apply( this, arguments );
22
 
23
  this.listenTo( this.model, 'change:confirmation_field', this.onConfirmationChange );
24
  this.listenTo( this.model, 'change:confirmation_field_label', this.onConfirmationLabelChange );
25
- this.listenTo( this.model, 'change:mask_phone_country', this.onCountryChange );
 
26
  },
27
 
28
  /**
29
- * Toggle masked input configuration on `Mask this input` checkbox change.
30
- *
31
- * @since 1.0.0.
32
- *
33
- * @param {object} e JS event.
34
- *
35
- * @return void
36
- */
37
- onMaskedChange: function( e ) {
38
- var $input = $( e.target );
39
- var attribute = $input.data( 'bind' );
40
- var $maskWrapper = $( '.number-options--phone', this.$el );
41
-
42
- if ( $input.is( ':checked' ) ) {
43
- this.model.set( attribute, 1 );
44
  $maskWrapper.show();
45
  } else {
46
- this.model.set( attribute, 0 );
47
  $maskWrapper.hide();
48
  }
49
 
50
  var model = this.model;
51
 
52
- this.model.fetchHtml( function( response ) {
53
  var data = {
54
- id: model.get( 'id' ),
55
  html: response,
56
  };
57
 
58
- api.previewer.send( 'happyforms-form-part-refresh', data );
59
- } );
60
  },
61
 
62
  onConfirmationChange: function( e ) {
@@ -96,14 +97,16 @@
96
  api.previewer.send( 'happyforms-part-dom-update', data );
97
  },
98
 
99
- onCountryChange: function() {
100
- var data = {
101
- id: this.model.get( 'id' ),
102
- callback: 'onPhoneCountryChangeCallback',
103
- };
 
104
 
105
- api.previewer.send( 'happyforms-part-dom-update', data );
106
- },
 
107
  } );
108
 
109
  happyForms.previewer = _.extend( happyForms.previewer, {
11
  } );
12
 
13
  var PhoneView = happyForms.classes.views.Part.extend( {
14
+ template: '#happyforms-customize-phone-template',
15
+
16
+ events: _.extend({}, happyForms.classes.views.Part.prototype.events, {
17
  'change [name=masked]': 'onMaskedChange',
18
+ }),
19
 
20
  initialize: function () {
21
  happyForms.classes.views.Part.prototype.initialize.apply( this, arguments );
22
 
23
  this.listenTo( this.model, 'change:confirmation_field', this.onConfirmationChange );
24
  this.listenTo( this.model, 'change:confirmation_field_label', this.onConfirmationLabelChange );
25
+ this.listenTo( this.model, 'change:mask_phone_country', this.refreshPhonePart );
26
+ this.listenTo( this.model, 'change:mask_allow_all_countries', this.refreshPhonePart );
27
  },
28
 
29
  /**
30
+ * Toggle masked input configuration on `Mask this input` checkbox change.
31
+ *
32
+ * @since 1.0.0.
33
+ *
34
+ * @param {object} e JS event.
35
+ *
36
+ * @return void
37
+ */
38
+ onMaskedChange: function (e) {
39
+ var $input = $(e.target);
40
+ var attribute = $input.data('bind');
41
+ var $maskWrapper = $('.number-options--phone', this.$el);
42
+
43
+ if ($input.is(':checked')) {
44
+ this.model.set(attribute, 1);
45
  $maskWrapper.show();
46
  } else {
47
+ this.model.set(attribute, 0);
48
  $maskWrapper.hide();
49
  }
50
 
51
  var model = this.model;
52
 
53
+ this.model.fetchHtml(function (response) {
54
  var data = {
55
+ id: model.get('id'),
56
  html: response,
57
  };
58
 
59
+ api.previewer.send('happyforms-form-part-refresh', data);
60
+ });
61
  },
62
 
63
  onConfirmationChange: function( e ) {
97
  api.previewer.send( 'happyforms-part-dom-update', data );
98
  },
99
 
100
+ refreshPhonePart: function( model, value ) {
101
+ model.fetchHtml(function (response) {
102
+ var data = {
103
+ id: model.get('id'),
104
+ html: response
105
+ };
106
 
107
+ api.previewer.send('happyforms-form-part-refresh', data);
108
+ });
109
+ }
110
  } );
111
 
112
  happyForms.previewer = _.extend( happyForms.previewer, {
assets/js/parts/part-select.js CHANGED
@@ -43,6 +43,7 @@
43
 
44
  this.listenTo( this.model.get( 'options' ), 'add change remove', this.onOptionsChange );
45
  this.listenTo( this, 'ready', this.onReady );
 
46
  },
47
 
48
  events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
@@ -183,11 +184,22 @@
183
 
184
  api.previewer.send( 'happyforms-part-dom-update', data );
185
  },
 
 
 
 
 
 
 
 
 
 
 
 
186
  } );
187
 
188
  happyForms.previewer = _.extend( happyForms.previewer, {
189
  onSelectItemAdd: function( id, html, options ) {
190
- var part = this.getPartModel( id );
191
  var $part = this.getPartElement( html );
192
 
193
  this.$( '.happyforms-part__el', $part ).append( this.$( options.optionHTML ) );
@@ -205,18 +217,31 @@
205
  onSelectItemDefaultChangeCallback: function( id, html, options ) {
206
  var part = this.getPartModel( id );
207
  var $part = this.getPartElement( html );
208
- var option = part.get( 'options' ).get( options.itemID );
209
  var $option = $( '#' + options.itemID, $part );
210
 
211
  $option.attr( 'selected', true );
212
  },
213
 
214
  onSelectItemDeleteCallback: function( id, html, options ) {
215
- var part = this.getPartModel( id );
216
  var $part = this.getPartElement( html );
217
  var $option = $( '#' + options.itemID, $part );
218
 
219
  $option.remove();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  }
221
  } );
222
 
43
 
44
  this.listenTo( this.model.get( 'options' ), 'add change remove', this.onOptionsChange );
45
  this.listenTo( this, 'ready', this.onReady );
46
+ this.listenTo( this.model, 'change:allow_search', this.onAllowSearchChange );
47
  },
48
 
49
  events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
184
 
185
  api.previewer.send( 'happyforms-part-dom-update', data );
186
  },
187
+
188
+ onAllowSearchChange: function( model, value ) {
189
+ var data = {
190
+ id: model.get( 'id' ),
191
+ callback: 'onSearchableCallback',
192
+ options: {
193
+ value: value
194
+ }
195
+ };
196
+
197
+ api.previewer.send( 'happyforms-part-dom-update', data );
198
+ }
199
  } );
200
 
201
  happyForms.previewer = _.extend( happyForms.previewer, {
202
  onSelectItemAdd: function( id, html, options ) {
 
203
  var $part = this.getPartElement( html );
204
 
205
  this.$( '.happyforms-part__el', $part ).append( this.$( options.optionHTML ) );
217
  onSelectItemDefaultChangeCallback: function( id, html, options ) {
218
  var part = this.getPartModel( id );
219
  var $part = this.getPartElement( html );
 
220
  var $option = $( '#' + options.itemID, $part );
221
 
222
  $option.attr( 'selected', true );
223
  },
224
 
225
  onSelectItemDeleteCallback: function( id, html, options ) {
 
226
  var $part = this.getPartElement( html );
227
  var $option = $( '#' + options.itemID, $part );
228
 
229
  $option.remove();
230
+ },
231
+
232
+ onSearchableCallback: function( id, html, options, $ ) {
233
+ var $part = this.getPartElement( html );
234
+ var pluginOptions = {};
235
+
236
+ if ( options.value ) {
237
+ $part.attr( 'data-searchable', 'true' );
238
+ pluginOptions['searchable'] = true;
239
+ } else {
240
+ $part.attr( 'data-searchable', 'false' );
241
+ pluginOptions['searchable'] = false;
242
+ }
243
+
244
+ $.fn.happyformsSelect.call($part, pluginOptions );
245
  }
246
  } );
247
 
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
- * Version: 1.5.4
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
@@ -13,7 +13,7 @@
13
  /**
14
  * The current version of the plugin.
15
  */
16
- define( 'HAPPYFORMS_VERSION', '1.5.4' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
+ * Version: 1.5.5
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
13
  /**
14
  * The current version of the plugin.
15
  */
16
+ define( 'HAPPYFORMS_VERSION', '1.5.5' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/classes/class-form-styles.php CHANGED
@@ -464,6 +464,36 @@ class HappyForms_Form_Styles {
464
  'sanitize' => 'sanitize_text_field',
465
  'target' => 'css_var',
466
  'variable' => '--happyforms-color-choice-checkmark-color',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
467
  )
468
  );
469
 
@@ -665,6 +695,40 @@ class HappyForms_Form_Styles {
665
  'label' => __( 'Required text', 'happyforms' ),
666
  'field' => 'color_part_required',
667
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
668
  array(
669
  'type' => 'divider',
670
  'label' => __( 'Checkboxes & Radios', 'happyforms' ),
464
  'sanitize' => 'sanitize_text_field',
465
  'target' => 'css_var',
466
  'variable' => '--happyforms-color-choice-checkmark-color',
467
+ ),
468
+ 'color_dropdown_bg' => array(
469
+ 'default' => '#ffffff',
470
+ 'sanitize' => 'sanitize_text_field',
471
+ 'target' => 'css_var',
472
+ 'variable' => '--happyforms-color-dropdown-bg-color',
473
+ ),
474
+ 'color_dropdown_item_bg' => array(
475
+ 'default' => '#ffffff',
476
+ 'sanitize' => 'sanitize_text_field',
477
+ 'target' => 'css_var',
478
+ 'variable' => '--happyforms-color-dropdown-item-bg',
479
+ ),
480
+ 'color_dropdown_item_text' => array(
481
+ 'default' => '#000000',
482
+ 'sanitize' => 'sanitize_text_field',
483
+ 'target' => 'css_var',
484
+ 'variable' => '--happyforms-color-dropdown-item-text',
485
+ ),
486
+ 'color_dropdown_item_bg_hover' => array(
487
+ 'default' => '#dbdbdb',
488
+ 'sanitize' => 'sanitize_text_field',
489
+ 'target' => 'css_var',
490
+ 'variable' => '--happyforms-color-dropdown-item-bg-hover',
491
+ ),
492
+ 'color_dropdown_item_text_hover' => array(
493
+ 'default' => '#000000',
494
+ 'sanitize' => 'sanitize_text_field',
495
+ 'target' => 'css_var',
496
+ 'variable' => '--happyforms-color-dropdown-item-text-hover',
497
  )
498
  );
499
 
695
  'label' => __( 'Required text', 'happyforms' ),
696
  'field' => 'color_part_required',
697
  ),
698
+ array(
699
+ 'type' => 'divider',
700
+ 'label' => __( 'Dropdowns', 'happyforms' ),
701
+ 'condition' => '( happyForms.form.get(\'parts\').findWhere( { type: \'select\' } ) || happyForms.form.get(\'parts\').findWhere( { type: \'date\' } ) || happyForms.form.get(\'parts\').findWhere( { type: \'title\' } ) )'
702
+ ),
703
+ array(
704
+ 'type' => 'color',
705
+ 'label' => __( 'Background', 'happyforms' ),
706
+ 'field' => 'color_dropdown_bg',
707
+ ),
708
+ array(
709
+ 'type' => 'heading',
710
+ 'label' => __( 'Items', 'happyforms' )
711
+ ),
712
+ array(
713
+ 'type' => 'color',
714
+ 'label' => __( 'Background', 'happyforms' ),
715
+ 'field' => 'color_dropdown_item_bg',
716
+ ),
717
+ array(
718
+ 'type' => 'color',
719
+ 'label' => __( 'Text', 'happyforms' ),
720
+ 'field' => 'color_dropdown_item_text',
721
+ ),
722
+ array(
723
+ 'type' => 'color',
724
+ 'label' => __( 'Background focused', 'happyforms' ),
725
+ 'field' => 'color_dropdown_item_bg_hover',
726
+ ),
727
+ array(
728
+ 'type' => 'color',
729
+ 'label' => __( 'Text focused', 'happyforms' ),
730
+ 'field' => 'color_dropdown_item_text_hover',
731
+ ),
732
  array(
733
  'type' => 'divider',
734
  'label' => __( 'Checkboxes & Radios', 'happyforms' ),
inc/classes/class-happyforms-plugin.php CHANGED
@@ -72,11 +72,13 @@ class HappyForms_Plugin {
72
  require_once( happyforms_get_include_folder() . '/helpers/helper-form-templates.php' );
73
 
74
  // Admin hooks
 
75
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
76
  add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 80 );
77
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
78
  add_action( 'current_screen', array( $this, 'admin_screens' ) );
79
  add_filter( 'media_buttons_context', array( $this, 'insert_editor_buttons' ) );
 
80
 
81
  // Widget
82
  add_action( 'widgets_init', array( $this, 'register_widget' ) );
@@ -84,9 +86,9 @@ class HappyForms_Plugin {
84
  // Common hooks
85
  add_shortcode( $this->shortcode, array( $this, 'handle_shortcode' ) );
86
  add_action( 'wp_head', array( $this, 'wp_head' ) );
87
- add_action( 'admin_head', array( $this, 'wp_head' ) );
88
  add_action( 'wp_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ), 0 );
89
  add_action( 'admin_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ), 0 );
 
90
 
91
  // Preview scripts and styles
92
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_preview' ) );
@@ -207,7 +209,7 @@ class HappyForms_Plugin {
207
 
208
  wp_enqueue_script(
209
  'happyforms-admin',
210
- happyforms_get_plugin_url() . 'assets/js/happyforms.js',
211
  array(), HAPPYFORMS_VERSION, true
212
  );
213
  }
@@ -372,6 +374,26 @@ class HappyForms_Plugin {
372
  <?php
373
  }
374
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
  /**
376
  * Filter: Add HappyForms button markup to a markup above content editor, next to
377
  * Add Media button.
@@ -391,13 +413,19 @@ class HappyForms_Plugin {
391
  return $context;
392
  }
393
 
394
- $button_html = '<a href="#" class="button happyforms-editor-button"><span class="dashicons dashicons-format-status"></span><span>'. __( 'Add HappyForms', 'happyforms' ) .'</span></a>';
395
 
396
  add_action( 'admin_footer', array( $this, 'output_happyforms_modal' ) );
397
 
398
  return $context . ' ' . $button_html;
399
  }
400
 
 
 
 
 
 
 
401
  /**
402
  * Render HappyForms dialog in the footer of edit post / page screen. Also
403
  * prints a script block for adding shortcode to visual editor.
@@ -472,6 +500,10 @@ class HappyForms_Plugin {
472
  do_action( 'happyforms_footer', $this->current_forms );
473
  }
474
 
 
 
 
 
475
  public function enqueue_styles_preview() {
476
  if ( ! happyforms_is_preview() ) {
477
  return;
72
  require_once( happyforms_get_include_folder() . '/helpers/helper-form-templates.php' );
73
 
74
  // Admin hooks
75
+ add_action( 'admin_head', array( $this, 'admin_head' ) );
76
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
77
  add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 80 );
78
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
79
  add_action( 'current_screen', array( $this, 'admin_screens' ) );
80
  add_filter( 'media_buttons_context', array( $this, 'insert_editor_buttons' ) );
81
+ add_filter( 'mce_external_plugins', array( $this, 'mce_external_plugins' ) );
82
 
83
  // Widget
84
  add_action( 'widgets_init', array( $this, 'register_widget' ) );
86
  // Common hooks
87
  add_shortcode( $this->shortcode, array( $this, 'handle_shortcode' ) );
88
  add_action( 'wp_head', array( $this, 'wp_head' ) );
 
89
  add_action( 'wp_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ), 0 );
90
  add_action( 'admin_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ), 0 );
91
+ add_action( 'admin_print_footer_scripts', array( $this, 'print_shortcode_template' ) );
92
 
93
  // Preview scripts and styles
94
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_preview' ) );
209
 
210
  wp_enqueue_script(
211
  'happyforms-admin',
212
+ happyforms_get_plugin_url() . 'assets/js/admin/dashboard.js',
213
  array(), HAPPYFORMS_VERSION, true
214
  );
215
  }
374
  <?php
375
  }
376
 
377
+ public function admin_head() {
378
+ global $pagenow;
379
+
380
+ if ( 'post.php' !== $pagenow && 'post-new.php' !== $pagenow ) {
381
+ return;
382
+ }
383
+
384
+ $forms = happyforms_get_form_controller()->get();
385
+ $form_titles = wp_list_pluck( $forms, 'post_title', 'ID' );
386
+ ?>
387
+ <script type="text/javascript">
388
+ HappyForms = {};
389
+ HappyForms.admin = {
390
+ edit_link: '<?php echo admin_url( happyforms_get_form_edit_link( 'ID', 'URL' ) ); ?>',
391
+ forms: <?php echo json_encode( $form_titles ); ?>,
392
+ }
393
+ </script>
394
+ <?php
395
+ }
396
+
397
  /**
398
  * Filter: Add HappyForms button markup to a markup above content editor, next to
399
  * Add Media button.
413
  return $context;
414
  }
415
 
416
+ $button_html = '<a href="#" class="button happyforms-editor-button" data-title="' . __( 'Insert HappyForm', 'happyforms' ) . '"><span class="dashicons dashicons-format-status"></span><span>'. __( 'Add HappyForms', 'happyforms' ) .'</span></a>';
417
 
418
  add_action( 'admin_footer', array( $this, 'output_happyforms_modal' ) );
419
 
420
  return $context . ' ' . $button_html;
421
  }
422
 
423
+ public function mce_external_plugins( $plugins ) {
424
+ $plugins['happyforms_shortcode'] = happyforms_get_plugin_url() . 'assets/js/admin/shortcode.js';
425
+
426
+ return $plugins;
427
+ }
428
+
429
  /**
430
  * Render HappyForms dialog in the footer of edit post / page screen. Also
431
  * prints a script block for adding shortcode to visual editor.
500
  do_action( 'happyforms_footer', $this->current_forms );
501
  }
502
 
503
+ public function print_shortcode_template() {
504
+ require_once( happyforms_get_include_folder() . '/templates/admin-shortcode.php' );
505
+ }
506
+
507
  public function enqueue_styles_preview() {
508
  if ( ! happyforms_is_preview() ) {
509
  return;
inc/classes/parts/class-part-date.php CHANGED
@@ -350,6 +350,14 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
350
 
351
  $deps[] = 'happyforms-part-date';
352
 
 
 
 
 
 
 
 
 
353
  return $deps;
354
  }
355
 
350
 
351
  $deps[] = 'happyforms-part-date';
352
 
353
+ wp_register_script(
354
+ 'happyforms-select',
355
+ happyforms_get_plugin_url() . 'assets/js/lib/happyforms-select.js',
356
+ array( 'jquery' ), HAPPYFORMS_VERSION, true
357
+ );
358
+
359
+ $deps[] = 'happyforms-select';
360
+
361
  return $deps;
362
  }
363
 
inc/classes/parts/class-part-phone.php CHANGED
@@ -63,6 +63,10 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
63
  'default' => 1,
64
  'sanitize' => 'intval'
65
  ),
 
 
 
 
66
  'confirmation_field' => array(
67
  'default' => 0,
68
  'sanitize' => 'intval'
@@ -71,7 +75,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
71
  'default' => __( 'Confirm Phone', 'happyforms' ),
72
  'sanitize' => 'sanitize_text_field'
73
  ),
74
- 'required' => array(
75
  'default' => 1,
76
  'sanitize' => 'happyforms_sanitize_checkbox',
77
  ),
@@ -115,229 +119,225 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
115
  */
116
  public function get_phone_countries_array() {
117
  $phone_countries = array(
118
- 'AD' => array( 'name' => 'ANDORRA', 'code' => '376' ),
119
- 'AE' => array( 'name' => 'UNITED ARAB EMIRATES', 'code' => '971' ),
120
- 'AF' => array( 'name' => 'AFGHANISTAN', 'code' => '93' ),
121
- 'AG' => array( 'name' => 'ANTIGUA AND BARBUDA', 'code' => '1268' ),
122
- 'AI' => array( 'name' => 'ANGUILLA', 'code' => '1264' ),
123
- 'AL' => array( 'name' => 'ALBANIA', 'code' => '355' ),
124
- 'AM' => array( 'name' => 'ARMENIA', 'code' => '374' ),
125
- 'AN' => array( 'name' => 'NETHERLANDS ANTILLES', 'code' => '599' ),
126
- 'AO' => array( 'name' => 'ANGOLA', 'code' => '244' ),
127
- 'AQ' => array( 'name' => 'ANTARCTICA', 'code' => '672' ),
128
- 'AR' => array( 'name' => 'ARGENTINA', 'code' => '54' ),
129
- 'AS' => array( 'name' => 'AMERICAN SAMOA', 'code' => '1684' ),
130
- 'AT' => array( 'name' => 'AUSTRIA', 'code' => '43' ),
131
- 'AU' => array( 'name' => 'AUSTRALIA', 'code' => '61' ),
132
- 'AW' => array( 'name' => 'ARUBA', 'code' => '297' ),
133
- 'AZ' => array( 'name' => 'AZERBAIJAN', 'code' => '994' ),
134
- 'BA' => array( 'name' => 'BOSNIA AND HERZEGOVINA', 'code' => '387' ),
135
- 'BB' => array( 'name' => 'BARBADOS', 'code' => '1246' ),
136
- 'BD' => array( 'name' => 'BANGLADESH', 'code' => '880' ),
137
- 'BE' => array( 'name' => 'BELGIUM', 'code' => '32' ),
138
- 'BF' => array( 'name' => 'BURKINA FASO', 'code' => '226' ),
139
- 'BG' => array( 'name' => 'BULGARIA', 'code' => '359' ),
140
- 'BH' => array( 'name' => 'BAHRAIN', 'code' => '973' ),
141
- 'BI' => array( 'name' => 'BURUNDI', 'code' => '257' ),
142
- 'BJ' => array( 'name' => 'BENIN', 'code' => '229' ),
143
- 'BL' => array( 'name' => 'SAINT BARTHELEMY', 'code' => '590' ),
144
- 'BM' => array( 'name' => 'BERMUDA', 'code' => '1441' ),
145
- 'BN' => array( 'name' => 'BRUNEI DARUSSALAM', 'code' => '673' ),
146
- 'BO' => array( 'name' => 'BOLIVIA', 'code' => '591' ),
147
- 'BR' => array( 'name' => 'BRAZIL', 'code' => '55' ),
148
- 'BS' => array( 'name' => 'BAHAMAS', 'code' => '1242' ),
149
- 'BT' => array( 'name' => 'BHUTAN', 'code' => '975' ),
150
- 'BW' => array( 'name' => 'BOTSWANA', 'code' => '267' ),
151
- 'BY' => array( 'name' => 'BELARUS', 'code' => '375' ),
152
- 'BZ' => array( 'name' => 'BELIZE', 'code' => '501' ),
153
- 'CA' => array( 'name' => 'CANADA', 'code' => '1' ),
154
- 'CD' => array( 'name' => 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'code' => '243' ),
155
- 'CF' => array( 'name' => 'CENTRAL AFRICAN REPUBLIC', 'code' => '236' ),
156
- 'CG' => array( 'name' => 'CONGO', 'code' => '242' ),
157
- 'CH' => array( 'name' => 'SWITZERLAND', 'code' => '41' ),
158
- 'CI' => array( 'name' => 'COTE D IVOIRE', 'code' => '225' ),
159
- 'CK' => array( 'name' => 'COOK ISLANDS', 'code' => '682' ),
160
- 'CL' => array( 'name' => 'CHILE', 'code' => '56' ),
161
- 'CM' => array( 'name' => 'CAMEROON', 'code' => '237' ),
162
- 'CN' => array( 'name' => 'CHINA', 'code' => '86' ),
163
- 'CO' => array( 'name' => 'COLOMBIA', 'code' => '57' ),
164
- 'CR' => array( 'name' => 'COSTA RICA', 'code' => '506' ),
165
- 'CU' => array( 'name' => 'CUBA', 'code' => '53' ),
166
- 'CV' => array( 'name' => 'CAPE VERDE', 'code' => '238' ),
167
- 'CY' => array( 'name' => 'CYPRUS', 'code' => '357' ),
168
- 'CZ' => array( 'name' => 'CZECH REPUBLIC', 'code' => '420' ),
169
- 'DE' => array( 'name' => 'GERMANY', 'code' => '49' ),
170
- 'DJ' => array( 'name' => 'DJIBOUTI', 'code' => '253' ),
171
- 'DK' => array( 'name' => 'DENMARK', 'code' => '45' ),
172
- 'DM' => array( 'name' => 'DOMINICA', 'code' => '1767' ),
173
- 'DO' => array( 'name' => 'DOMINICAN REPUBLIC', 'code' => '1809' ),
174
- 'DZ' => array( 'name' => 'ALGERIA', 'code' => '213' ),
175
- 'EC' => array( 'name' => 'ECUADOR', 'code' => '593' ),
176
- 'EE' => array( 'name' => 'ESTONIA', 'code' => '372' ),
177
- 'EG' => array( 'name' => 'EGYPT', 'code' => '20' ),
178
- 'ER' => array( 'name' => 'ERITREA', 'code' => '291' ),
179
- 'ES' => array( 'name' => 'SPAIN', 'code' => '34' ),
180
- 'ET' => array( 'name' => 'ETHIOPIA', 'code' => '251' ),
181
- 'FI' => array( 'name' => 'FINLAND', 'code' => '358' ),
182
- 'FJ' => array( 'name' => 'FIJI', 'code' => '679' ),
183
- 'FK' => array( 'name' => 'FALKLAND ISLANDS (MALVINAS)', 'code' => '500' ),
184
- 'FM' => array( 'name' => 'MICRONESIA, FEDERATED STATES OF', 'code' => '691' ),
185
- 'FO' => array( 'name' => 'FAROE ISLANDS', 'code' => '298' ),
186
- 'FR' => array( 'name' => 'FRANCE', 'code' => '33' ),
187
- 'GA' => array( 'name' => 'GABON', 'code' => '241' ),
188
- 'GB' => array( 'name' => 'UNITED KINGDOM', 'code' => '44' ),
189
- 'GD' => array( 'name' => 'GRENADA', 'code' => '1473' ),
190
- 'GE' => array( 'name' => 'GEORGIA', 'code' => '995' ),
191
- 'GH' => array( 'name' => 'GHANA', 'code' => '233' ),
192
- 'GI' => array( 'name' => 'GIBRALTAR', 'code' => '350' ),
193
- 'GL' => array( 'name' => 'GREENLAND', 'code' => '299' ),
194
- 'GM' => array( 'name' => 'GAMBIA', 'code' => '220' ),
195
- 'GN' => array( 'name' => 'GUINEA', 'code' => '224' ),
196
- 'GQ' => array( 'name' => 'EQUATORIAL GUINEA', 'code' => '240' ),
197
- 'GR' => array( 'name' => 'GREECE', 'code' => '30' ),
198
- 'GT' => array( 'name' => 'GUATEMALA', 'code' => '502' ),
199
- 'GU' => array( 'name' => 'GUAM', 'code' => '1671' ),
200
- 'GW' => array( 'name' => 'GUINEA-BISSAU', 'code' => '245' ),
201
- 'GY' => array( 'name' => 'GUYANA', 'code' => '592' ),
202
- 'HK' => array( 'name' => 'HONG KONG', 'code' => '852' ),
203
- 'HN' => array( 'name' => 'HONDURAS', 'code' => '504' ),
204
- 'HR' => array( 'name' => 'CROATIA', 'code' => '385' ),
205
- 'HT' => array( 'name' => 'HAITI', 'code' => '509' ),
206
- 'HU' => array( 'name' => 'HUNGARY', 'code' => '36' ),
207
- 'ID' => array( 'name' => 'INDONESIA', 'code' => '62' ),
208
- 'IE' => array( 'name' => 'IRELAND', 'code' => '353' ),
209
- 'IL' => array( 'name' => 'ISRAEL', 'code' => '972' ),
210
- 'IN' => array( 'name' => 'INDIA', 'code' => '91' ),
211
- 'IQ' => array( 'name' => 'IRAQ', 'code' => '964' ),
212
- 'IR' => array( 'name' => 'IRAN, ISLAMIC REPUBLIC OF', 'code' => '98' ),
213
- 'IS' => array( 'name' => 'ICELAND', 'code' => '354' ),
214
- 'IT' => array( 'name' => 'ITALY', 'code' => '39' ),
215
- 'JM' => array( 'name' => 'JAMAICA', 'code' => '1876' ),
216
- 'JO' => array( 'name' => 'JORDAN', 'code' => '962' ),
217
- 'JP' => array( 'name' => 'JAPAN', 'code' => '81' ),
218
- 'KE' => array( 'name' => 'KENYA', 'code' => '254' ),
219
- 'KG' => array( 'name' => 'KYRGYZSTAN', 'code' => '996' ),
220
- 'KH' => array( 'name' => 'CAMBODIA', 'code' => '855' ),
221
- 'KI' => array( 'name' => 'KIRIBATI', 'code' => '686' ),
222
- 'KM' => array( 'name' => 'COMOROS', 'code' => '269' ),
223
- 'KN' => array( 'name' => 'SAINT KITTS AND NEVIS', 'code' => '1869' ),
224
- 'KP' => array( 'name' => 'KOREA DEMOCRATIC PEOPLES REPUBLIC OF', 'code' => '850' ),
225
- 'KR' => array( 'name' => 'KOREA REPUBLIC OF', 'code' => '82' ),
226
- 'KW' => array( 'name' => 'KUWAIT', 'code' => '965' ),
227
- 'KY' => array( 'name' => 'CAYMAN ISLANDS', 'code' => '1345' ),
228
- 'LA' => array( 'name' => 'LAO PEOPLES DEMOCRATIC REPUBLIC', 'code' => '856' ),
229
- 'LB' => array( 'name' => 'LEBANON', 'code' => '961' ),
230
- 'LC' => array( 'name' => 'SAINT LUCIA', 'code' => '1758' ),
231
- 'LI' => array( 'name' => 'LIECHTENSTEIN', 'code' => '423' ),
232
- 'LK' => array( 'name' => 'SRI LANKA', 'code' => '94' ),
233
- 'LR' => array( 'name' => 'LIBERIA', 'code' => '231' ),
234
- 'LS' => array( 'name' => 'LESOTHO', 'code' => '266' ),
235
- 'LT' => array( 'name' => 'LITHUANIA', 'code' => '370' ),
236
- 'LU' => array( 'name' => 'LUXEMBOURG', 'code' => '352' ),
237
- 'LV' => array( 'name' => 'LATVIA', 'code' => '371' ),
238
- 'LY' => array( 'name' => 'LIBYAN ARAB JAMAHIRIYA', 'code' => '218' ),
239
- 'MA' => array( 'name' => 'MOROCCO', 'code' => '212' ),
240
- 'MC' => array( 'name' => 'MONACO', 'code' => '377' ),
241
- 'MD' => array( 'name' => 'MOLDOVA, REPUBLIC OF', 'code' => '373' ),
242
- 'ME' => array( 'name' => 'MONTENEGRO', 'code' => '382' ),
243
- 'MF' => array( 'name' => 'SAINT MARTIN', 'code' => '1599' ),
244
- 'MG' => array( 'name' => 'MADAGASCAR', 'code' => '261' ),
245
- 'MH' => array( 'name' => 'MARSHALL ISLANDS', 'code' => '692' ),
246
- 'MK' => array( 'name' => 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'code' => '389' ),
247
- 'ML' => array( 'name' => 'MALI', 'code' => '223' ),
248
- 'MM' => array( 'name' => 'MYANMAR', 'code' => '95' ),
249
- 'MN' => array( 'name' => 'MONGOLIA', 'code' => '976' ),
250
- 'MO' => array( 'name' => 'MACAU', 'code' => '853' ),
251
- 'MP' => array( 'name' => 'NORTHERN MARIANA ISLANDS', 'code' => '1670' ),
252
- 'MR' => array( 'name' => 'MAURITANIA', 'code' => '222' ),
253
- 'MS' => array( 'name' => 'MONTSERRAT', 'code' => '1664' ),
254
- 'MT' => array( 'name' => 'MALTA', 'code' => '356' ),
255
- 'MU' => array( 'name' => 'MAURITIUS', 'code' => '230' ),
256
- 'MV' => array( 'name' => 'MALDIVES', 'code' => '960' ),
257
- 'MW' => array( 'name' => 'MALAWI', 'code' => '265' ),
258
- 'MX' => array( 'name' => 'MEXICO', 'code' => '52' ),
259
- 'MY' => array( 'name' => 'MALAYSIA', 'code' => '60' ),
260
- 'MZ' => array( 'name' => 'MOZAMBIQUE', 'code' => '258' ),
261
- 'NA' => array( 'name' => 'NAMIBIA', 'code' => '264' ),
262
- 'NC' => array( 'name' => 'NEW CALEDONIA', 'code' => '687' ),
263
- 'NE' => array( 'name' => 'NIGER', 'code' => '227' ),
264
- 'NG' => array( 'name' => 'NIGERIA', 'code' => '234' ),
265
- 'NI' => array( 'name' => 'NICARAGUA', 'code' => '505' ),
266
- 'NL' => array( 'name' => 'NETHERLANDS', 'code' => '31' ),
267
- 'NO' => array( 'name' => 'NORWAY', 'code' => '47' ),
268
- 'NP' => array( 'name' => 'NEPAL', 'code' => '977' ),
269
- 'NR' => array( 'name' => 'NAURU', 'code' => '674' ),
270
- 'NU' => array( 'name' => 'NIUE', 'code' => '683' ),
271
- 'NZ' => array( 'name' => 'NEW ZEALAND', 'code' => '64' ),
272
- 'OM' => array( 'name' => 'OMAN', 'code' => '968' ),
273
- 'PA' => array( 'name' => 'PANAMA', 'code' => '507' ),
274
- 'PE' => array( 'name' => 'PERU', 'code' => '51' ),
275
- 'PF' => array( 'name' => 'FRENCH POLYNESIA', 'code' => '689' ),
276
- 'PG' => array( 'name' => 'PAPUA NEW GUINEA', 'code' => '675' ),
277
- 'PH' => array( 'name' => 'PHILIPPINES', 'code' => '63' ),
278
- 'PK' => array( 'name' => 'PAKISTAN', 'code' => '92' ),
279
- 'PL' => array( 'name' => 'POLAND', 'code' => '48' ),
280
- 'PM' => array( 'name' => 'SAINT PIERRE AND MIQUELON', 'code' => '508' ),
281
- 'PN' => array( 'name' => 'PITCAIRN', 'code' => '870' ),
282
- 'PT' => array( 'name' => 'PORTUGAL', 'code' => '351' ),
283
- 'PW' => array( 'name' => 'PALAU', 'code' => '680' ),
284
- 'PY' => array( 'name' => 'PARAGUAY', 'code' => '595' ),
285
- 'QA' => array( 'name' => 'QATAR', 'code' => '974' ),
286
- 'RO' => array( 'name' => 'ROMANIA', 'code' => '40' ),
287
- 'RS' => array( 'name' => 'SERBIA', 'code' => '381' ),
288
- 'RU' => array( 'name' => 'RUSSIAN FEDERATION', 'code' => '7' ),
289
- 'RW' => array( 'name' => 'RWANDA', 'code' => '250' ),
290
- 'SA' => array( 'name' => 'SAUDI ARABIA', 'code' => '966' ),
291
- 'SB' => array( 'name' => 'SOLOMON ISLANDS', 'code' => '677' ),
292
- 'SC' => array( 'name' => 'SEYCHELLES', 'code' => '248' ),
293
- 'SD' => array( 'name' => 'SUDAN', 'code' => '249' ),
294
- 'SE' => array( 'name' => 'SWEDEN', 'code' => '46' ),
295
- 'SG' => array( 'name' => 'SINGAPORE', 'code' => '65' ),
296
- 'SH' => array( 'name' => 'SAINT HELENA', 'code' => '290' ),
297
- 'SI' => array( 'name' => 'SLOVENIA', 'code' => '386' ),
298
- 'SK' => array( 'name' => 'SLOVAKIA', 'code' => '421' ),
299
- 'SL' => array( 'name' => 'SIERRA LEONE', 'code' => '232' ),
300
- 'SM' => array( 'name' => 'SAN MARINO', 'code' => '378' ),
301
- 'SN' => array( 'name' => 'SENEGAL', 'code' => '221' ),
302
- 'SO' => array( 'name' => 'SOMALIA', 'code' => '252' ),
303
- 'SR' => array( 'name' => 'SURINAME', 'code' => '597' ),
304
- 'ST' => array( 'name' => 'SAO TOME AND PRINCIPE', 'code' => '239' ),
305
- 'SV' => array( 'name' => 'EL SALVADOR', 'code' => '503' ),
306
- 'SY' => array( 'name' => 'SYRIAN ARAB REPUBLIC', 'code' => '963' ),
307
- 'SZ' => array( 'name' => 'SWAZILAND', 'code' => '268' ),
308
- 'TC' => array( 'name' => 'TURKS AND CAICOS ISLANDS', 'code' => '1649' ),
309
- 'TD' => array( 'name' => 'CHAD', 'code' => '235' ),
310
- 'TG' => array( 'name' => 'TOGO', 'code' => '228' ),
311
- 'TH' => array( 'name' => 'THAILAND', 'code' => '66' ),
312
- 'TJ' => array( 'name' => 'TAJIKISTAN', 'code' => '992' ),
313
- 'TK' => array( 'name' => 'TOKELAU', 'code' => '690' ),
314
- 'TL' => array( 'name' => 'TIMOR-LESTE', 'code' => '670' ),
315
- 'TM' => array( 'name' => 'TURKMENISTAN', 'code' => '993' ),
316
- 'TN' => array( 'name' => 'TUNISIA', 'code' => '216' ),
317
- 'TO' => array( 'name' => 'TONGA', 'code' => '676' ),
318
- 'TR' => array( 'name' => 'TURKEY', 'code' => '90' ),
319
- 'TT' => array( 'name' => 'TRINIDAD AND TOBAGO', 'code' => '1868' ),
320
- 'TV' => array( 'name' => 'TUVALU', 'code' => '688' ),
321
- 'TW' => array( 'name' => 'TAIWAN, PROVINCE OF CHINA', 'code' => '886' ),
322
- 'TZ' => array( 'name' => 'TANZANIA, UNITED REPUBLIC OF', 'code' => '255' ),
323
- 'UA' => array( 'name' => 'UKRAINE', 'code' => '380' ),
324
- 'UG' => array( 'name' => 'UGANDA', 'code' => '256' ),
325
- 'US' => array( 'name' => 'UNITED STATES', 'code' => '1' ),
326
- 'UY' => array( 'name' => 'URUGUAY', 'code' => '598' ),
327
- 'UZ' => array( 'name' => 'UZBEKISTAN', 'code' => '998' ),
328
- 'VC' => array( 'name' => 'SAINT VINCENT AND THE GRENADINES', 'code' => '1784' ),
329
- 'VE' => array( 'name' => 'VENEZUELA', 'code' => '58' ),
330
- 'VG' => array( 'name' => 'VIRGIN ISLANDS, BRITISH', 'code' => '1284' ),
331
- 'VI' => array( 'name' => 'VIRGIN ISLANDS, U.S.', 'code' => '1340' ),
332
- 'VN' => array( 'name' => 'VIET NAM', 'code' => '84' ),
333
- 'VU' => array( 'name' => 'VANUATU', 'code' => '678' ),
334
- 'WF' => array( 'name' => 'WALLIS AND FUTUNA', 'code' => '681' ),
335
- 'WS' => array( 'name' => 'SAMOA', 'code' => '685' ),
336
- 'YE' => array( 'name' => 'YEMEN', 'code' => '967' ),
337
- 'YT' => array( 'name' => 'MAYOTTE', 'code' => '262' ),
338
- 'ZA' => array( 'name' => 'SOUTH AFRICA', 'code' => '27' ),
339
- 'ZM' => array( 'name' => 'ZAMBIA', 'code' => '260' ),
340
- 'ZW' => array( 'name' => 'ZIMBABWE', 'code' => '263 '),
341
  );
342
 
343
  return $phone_countries;
@@ -361,20 +361,13 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
361
  $part_name = happyforms_get_part_name( $part_data, $form_data );
362
 
363
  if ( isset( $_REQUEST[$part_name] ) ) {
364
- $sanitized_value[0] = $_REQUEST[$part_name];
365
- }
366
-
367
- if ( isset( $_REQUEST[$part_name . '_confirmation'] ) ) {
368
- $sanitized_value[1] = $_REQUEST[$part_name . '_confirmation'];
369
- }
370
 
371
- foreach ( $sanitized_value as $v => $value ) {
372
- if ( $part_data['masked'] ) {
373
- $prefix_length = strlen( $part_data['mask_phone_country'] ) + 1;
374
- $value = substr( $value, $prefix_length );
375
  }
376
-
377
- $sanitized_value[$v] = preg_replace( '/[^0-9]/', '', $value );
378
  }
379
 
380
  return $sanitized_value;
@@ -398,44 +391,61 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
398
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
399
  }
400
 
401
- if ( $part['required'] && empty( $validated_values[0] ) ) {
402
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
403
  }
404
 
405
- if ( isset( $validated_values[1] ) && $validated_values[0] !== $validated_values[1] ) {
406
  return new WP_Error( 'error', __( 'Number and confirmation number are not matching.', 'happyforms' ) );
407
  }
408
 
409
- if ( $part['masked'] ) {
410
- foreach ( $validated_values as $v => $validated_value ) {
411
- $validated_values[$v] = $part['mask_phone_country'] . $validated_values[$v];
412
- }
413
  }
414
 
415
- return $validated_values[0];
416
  }
417
 
418
  public function get_part_value( $value, $part, $form, $component ) {
419
  if ( $this->type === $part['type'] ) {
420
  if ( false !== $component ) {
421
  $value = isset( $value[$component] ) ? $value[$component] : '';
422
-
423
- if ( $part['masked'] ) {
424
- $value = '+' . $part['mask_phone_country'] . $value;
425
- }
426
  }
427
  }
428
 
429
  return $value;
430
  }
431
 
 
 
 
 
 
 
 
 
 
432
  public function html_part_class( $class, $part, $form ) {
433
  if ( $this->type === $part['type'] ) {
434
- if ( $part['masked']
435
  || happyforms_get_part_value( $part, $form, 0 )
436
  || happyforms_get_part_value( $part, $form, 1 ) ) {
437
  $class[] = 'happyforms-part--filled';
438
  }
 
 
 
 
 
 
 
 
 
 
 
 
439
  }
440
 
441
  return $class;
@@ -450,7 +460,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
450
  $attributes['happyforms-require-confirmation'] = '';
451
  }
452
 
453
- if ( $part['masked'] ) {
454
  $attributes['mask'] = 'true';
455
  $attributes['country'] = $part['mask_phone_country'];
456
  }
63
  'default' => 1,
64
  'sanitize' => 'intval'
65
  ),
66
+ 'mask_allow_all_countries' => array(
67
+ 'default' => 0,
68
+ 'sanitize' => 'intval'
69
+ ),
70
  'confirmation_field' => array(
71
  'default' => 0,
72
  'sanitize' => 'intval'
75
  'default' => __( 'Confirm Phone', 'happyforms' ),
76
  'sanitize' => 'sanitize_text_field'
77
  ),
78
+ 'required' => array(
79
  'default' => 1,
80
  'sanitize' => 'happyforms_sanitize_checkbox',
81
  ),
119
  */
120
  public function get_phone_countries_array() {
121
  $phone_countries = array(
122
+ 'AD' => array( 'name' => 'ANDORRA', 'code' => '376', 'flag' => '🇦🇩' ),
123
+ 'AE' => array( 'name' => 'UNITED ARAB EMIRATES', 'code' => '971', 'flag' => '🇦🇪' ),
124
+ 'AF' => array( 'name' => 'AFGHANISTAN', 'code' => '93', 'flag' => '🇦🇫' ),
125
+ 'AG' => array( 'name' => 'ANTIGUA AND BARBUDA', 'code' => '1268', 'flag' => '🇦🇬' ),
126
+ 'AI' => array( 'name' => 'ANGUILLA', 'code' => '1264', 'flag' => '🇦🇮' ),
127
+ 'AL' => array( 'name' => 'ALBANIA', 'code' => '355', 'flag' => '🇦🇱' ),
128
+ 'AM' => array( 'name' => 'ARMENIA', 'code' => '374', 'flag' => '🇦🇲' ),
129
+ 'AO' => array( 'name' => 'ANGOLA', 'code' => '244', 'flag' => '🇦🇴' ),
130
+ 'AQ' => array( 'name' => 'ANTARCTICA', 'code' => '672', 'flag' => '🇦🇶' ),
131
+ 'AR' => array( 'name' => 'ARGENTINA', 'code' => '54', 'flag' => '🇦🇷' ),
132
+ 'AS' => array( 'name' => 'AMERICAN SAMOA', 'code' => '1684', 'flag' => '🇦🇸' ),
133
+ 'AT' => array( 'name' => 'AUSTRIA', 'code' => '43', 'flag' => '🇦🇹' ),
134
+ 'AU' => array( 'name' => 'AUSTRALIA', 'code' => '61', 'flag' => '🇦🇺' ),
135
+ 'AW' => array( 'name' => 'ARUBA', 'code' => '297', 'flag' => '🇦🇼' ),
136
+ 'AZ' => array( 'name' => 'AZERBAIJAN', 'code' => '994', 'flag' => '🇦🇿' ),
137
+ 'BA' => array( 'name' => 'BOSNIA AND HERZEGOVINA', 'code' => '387', 'flag' => '🇧🇦' ),
138
+ 'BB' => array( 'name' => 'BARBADOS', 'code' => '1246', 'flag' => '🇧🇧' ),
139
+ 'BD' => array( 'name' => 'BANGLADESH', 'code' => '880', 'flag' => '🇧🇩' ),
140
+ 'BE' => array( 'name' => 'BELGIUM', 'code' => '32', 'flag' => '🇧🇪' ),
141
+ 'BF' => array( 'name' => 'BURKINA FASO', 'code' => '226', 'flag' => '🇧🇫' ),
142
+ 'BG' => array( 'name' => 'BULGARIA', 'code' => '359', 'flag' => '🇧🇬' ),
143
+ 'BH' => array( 'name' => 'BAHRAIN', 'code' => '973', 'flag' => '🇧🇭' ),
144
+ 'BI' => array( 'name' => 'BURUNDI', 'code' => '257', 'flag' => '🇧🇮' ),
145
+ 'BJ' => array( 'name' => 'BENIN', 'code' => '229', 'flag' => '🇧🇯' ),
146
+ 'BL' => array( 'name' => 'SAINT BARTHELEMY', 'code' => '590', 'flag' => '🇧🇱' ),
147
+ 'BM' => array( 'name' => 'BERMUDA', 'code' => '1441', 'flag' => '🇧🇲' ),
148
+ 'BN' => array( 'name' => 'BRUNEI DARUSSALAM', 'code' => '673', 'flag' => '🇧🇳' ),
149
+ 'BO' => array( 'name' => 'BOLIVIA', 'code' => '591', 'flag' => '🇧🇴' ),
150
+ 'BR' => array( 'name' => 'BRAZIL', 'code' => '55', 'flag' => '🇧🇷' ),
151
+ 'BS' => array( 'name' => 'BAHAMAS', 'code' => '1242', 'flag' => '🇧🇸' ),
152
+ 'BT' => array( 'name' => 'BHUTAN', 'code' => '975', 'flag' => '🇧🇹' ),
153
+ 'BW' => array( 'name' => 'BOTSWANA', 'code' => '267', 'flag' => '🇧🇼' ),
154
+ 'BY' => array( 'name' => 'BELARUS', 'code' => '375', 'flag' => '🇧🇾' ),
155
+ 'BZ' => array( 'name' => 'BELIZE', 'code' => '501', 'flag' => '🇧🇿' ),
156
+ 'CA' => array( 'name' => 'CANADA', 'code' => '1', 'flag' => '🇨🇦' ),
157
+ 'CD' => array( 'name' => 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'code' => '243', 'flag' => '🇨🇩' ),
158
+ 'CF' => array( 'name' => 'CENTRAL AFRICAN REPUBLIC', 'code' => '236', 'flag' => '🇨🇫' ),
159
+ 'CG' => array( 'name' => 'CONGO', 'code' => '242', 'flag' => '🇨🇬' ),
160
+ 'CH' => array( 'name' => 'SWITZERLAND', 'code' => '41', 'flag' => '🇨🇭' ),
161
+ 'CK' => array( 'name' => 'COOK ISLANDS', 'code' => '682', 'flag' => '🇨🇰' ),
162
+ 'CL' => array( 'name' => 'CHILE', 'code' => '56', 'flag' => '🇨🇱' ),
163
+ 'CM' => array( 'name' => 'CAMEROON', 'code' => '237', 'flag' => '🇨🇲' ),
164
+ 'CN' => array( 'name' => 'CHINA', 'code' => '86', 'flag' => '🇨🇳' ),
165
+ 'CO' => array( 'name' => 'COLOMBIA', 'code' => '57', 'flag' => '🇨🇴' ),
166
+ 'CR' => array( 'name' => 'COSTA RICA', 'code' => '506', 'flag' => '🇨🇷' ),
167
+ 'CU' => array( 'name' => 'CUBA', 'code' => '53', 'flag' => '🇨🇺' ),
168
+ 'CV' => array( 'name' => 'CAPE VERDE', 'code' => '238', 'flag' => '🇨🇻' ),
169
+ 'CY' => array( 'name' => 'CYPRUS', 'code' => '357', 'flag' => '🇨🇾' ),
170
+ 'CZ' => array( 'name' => 'CZECH REPUBLIC', 'code' => '420', 'flag' => '🇨🇿' ),
171
+ 'DE' => array( 'name' => 'GERMANY', 'code' => '49', 'flag' => '🇩🇪' ),
172
+ 'DJ' => array( 'name' => 'DJIBOUTI', 'code' => '253', 'flag' => '🇩🇯' ),
173
+ 'DK' => array( 'name' => 'DENMARK', 'code' => '45', 'flag' => '🇩🇰' ),
174
+ 'DM' => array( 'name' => 'DOMINICA', 'code' => '1767', 'flag' => '🇩🇲' ),
175
+ 'DO' => array( 'name' => 'DOMINICAN REPUBLIC', 'code' => '1809', 'flag' => '🇩🇴' ),
176
+ 'DZ' => array( 'name' => 'ALGERIA', 'code' => '213', 'flag' => '🇩🇿' ),
177
+ 'EC' => array( 'name' => 'ECUADOR', 'code' => '593', 'flag' => '🇪🇨' ),
178
+ 'EE' => array( 'name' => 'ESTONIA', 'code' => '372', 'flag' => '🇪🇪' ),
179
+ 'EG' => array( 'name' => 'EGYPT', 'code' => '20', 'flag' => '🇪🇬' ),
180
+ 'ER' => array( 'name' => 'ERITREA', 'code' => '291', 'flag' => '🇪🇷' ),
181
+ 'ES' => array( 'name' => 'SPAIN', 'code' => '34', 'flag' => '🇪🇸' ),
182
+ 'ET' => array( 'name' => 'ETHIOPIA', 'code' => '251', 'flag' => '🇪🇹' ),
183
+ 'FI' => array( 'name' => 'FINLAND', 'code' => '358', 'flag' => '🇫🇮' ),
184
+ 'FJ' => array( 'name' => 'FIJI', 'code' => '679', 'flag' => '🇫🇯' ),
185
+ 'FK' => array( 'name' => 'FALKLAND ISLANDS (MALVINAS)', 'code' => '500', 'flag' => '🇫🇰' ),
186
+ 'FM' => array( 'name' => 'MICRONESIA, FEDERATED STATES OF', 'code' => '691', 'flag' => '🇫🇲' ),
187
+ 'FO' => array( 'name' => 'FAROE ISLANDS', 'code' => '298', 'flag' => '🇫🇴' ),
188
+ 'FR' => array( 'name' => 'FRANCE', 'code' => '33', 'flag' => '🇫🇷' ),
189
+ 'GA' => array( 'name' => 'GABON', 'code' => '241', 'flag' => '🇬🇦' ),
190
+ 'GB' => array( 'name' => 'UNITED KINGDOM', 'code' => '44', 'flag' => '🇬🇧' ),
191
+ 'GD' => array( 'name' => 'GRENADA', 'code' => '1473', 'flag' => '🇬🇩' ),
192
+ 'GE' => array( 'name' => 'GEORGIA', 'code' => '995', 'flag' => '🇬🇪' ),
193
+ 'GH' => array( 'name' => 'GHANA', 'code' => '233', 'flag' => '🇬🇭' ),
194
+ 'GI' => array( 'name' => 'GIBRALTAR', 'code' => '350', 'flag' => '🇬🇮' ),
195
+ 'GL' => array( 'name' => 'GREENLAND', 'code' => '299', 'flag' => '🇬🇱' ),
196
+ 'GM' => array( 'name' => 'GAMBIA', 'code' => '220', 'flag' => '🇬🇲' ),
197
+ 'GN' => array( 'name' => 'GUINEA', 'code' => '224', 'flag' => '🇬🇳' ),
198
+ 'GR' => array( 'name' => 'GREECE', 'code' => '30', 'flag' => '🇬🇷' ),
199
+ 'GT' => array( 'name' => 'GUATEMALA', 'code' => '502', 'flag' => '🇬🇹' ),
200
+ 'GU' => array( 'name' => 'GUAM', 'code' => '1671', 'flag' => '🇬🇺' ),
201
+ 'GW' => array( 'name' => 'GUINEA-BISSAU', 'code' => '245', 'flag' => '🇬🇼' ),
202
+ 'GY' => array( 'name' => 'GUYANA', 'code' => '592', 'flag' => '🇬🇾' ),
203
+ 'HK' => array( 'name' => 'HONG KONG', 'code' => '852', 'flag' => '🇭🇰' ),
204
+ 'HN' => array( 'name' => 'HONDURAS', 'code' => '504', 'flag' => '🇭🇳' ),
205
+ 'HR' => array( 'name' => 'CROATIA', 'code' => '385', 'flag' => '🇭🇷' ),
206
+ 'HT' => array( 'name' => 'HAITI', 'code' => '509', 'flag' => '🇭🇹' ),
207
+ 'HU' => array( 'name' => 'HUNGARY', 'code' => '36', 'flag' => '🇭🇺' ),
208
+ 'ID' => array( 'name' => 'INDONESIA', 'code' => '62', 'flag' => '🇮🇩' ),
209
+ 'IE' => array( 'name' => 'IRELAND', 'code' => '353', 'flag' => '🇮🇪' ),
210
+ 'IL' => array( 'name' => 'ISRAEL', 'code' => '972', 'flag' => '🇮🇱' ),
211
+ 'IN' => array( 'name' => 'INDIA', 'code' => '91', 'flag' => '🇮🇳' ),
212
+ 'IQ' => array( 'name' => 'IRAQ', 'code' => '964', 'flag' => '🇮🇶' ),
213
+ 'IR' => array( 'name' => 'IRAN, ISLAMIC REPUBLIC OF', 'code' => '98', 'flag' => '🇮🇷' ),
214
+ 'IS' => array( 'name' => 'ICELAND', 'code' => '354', 'flag' => '🇮🇸' ),
215
+ 'IT' => array( 'name' => 'ITALY', 'code' => '39', 'flag' => '🇮🇹' ),
216
+ 'JM' => array( 'name' => 'JAMAICA', 'code' => '1876', 'flag' => '🇯🇲' ),
217
+ 'JO' => array( 'name' => 'JORDAN', 'code' => '962', 'flag' => '🇯🇴' ),
218
+ 'JP' => array( 'name' => 'JAPAN', 'code' => '81', 'flag' => '🇯🇵' ),
219
+ 'KE' => array( 'name' => 'KENYA', 'code' => '254', 'flag' => '🇰🇪' ),
220
+ 'KG' => array( 'name' => 'KYRGYZSTAN', 'code' => '996', 'flag' => '🇰🇬' ),
221
+ 'KH' => array( 'name' => 'CAMBODIA', 'code' => '855', 'flag' => '🇰🇭' ),
222
+ 'KI' => array( 'name' => 'KIRIBATI', 'code' => '686', 'flag' => '🇰🇮' ),
223
+ 'KM' => array( 'name' => 'COMOROS', 'code' => '269', 'flag' => '🇰🇲' ),
224
+ 'KN' => array( 'name' => 'SAINT KITTS AND NEVIS', 'code' => '1869', 'flag' => '🇰🇳' ),
225
+ 'KP' => array( 'name' => 'KOREA DEMOCRATIC PEOPLES REPUBLIC OF', 'code' => '850', 'flag' => '🇰🇵' ),
226
+ 'KR' => array( 'name' => 'KOREA REPUBLIC OF', 'code' => '82', 'flag' => '🇰🇷' ),
227
+ 'KW' => array( 'name' => 'KUWAIT', 'code' => '965', 'flag' => '🇰🇼' ),
228
+ 'KY' => array( 'name' => 'CAYMAN ISLANDS', 'code' => '1345', 'flag' => '🇰🇾' ),
229
+ 'LA' => array( 'name' => 'LAO PEOPLES DEMOCRATIC REPUBLIC', 'code' => '856', 'flag' => '🇱🇦' ),
230
+ 'LB' => array( 'name' => 'LEBANON', 'code' => '961', 'flag' => '🇱🇧' ),
231
+ 'LC' => array( 'name' => 'SAINT LUCIA', 'code' => '1758', 'flag' => '🇱🇨' ),
232
+ 'LI' => array( 'name' => 'LIECHTENSTEIN', 'code' => '423', 'flag' => '🇱🇮' ),
233
+ 'LK' => array( 'name' => 'SRI LANKA', 'code' => '94', 'flag' => '🇱🇰' ),
234
+ 'LR' => array( 'name' => 'LIBERIA', 'code' => '231', 'flag' => '🇱🇷' ),
235
+ 'LS' => array( 'name' => 'LESOTHO', 'code' => '266', 'flag' => '🇱🇸' ),
236
+ 'LT' => array( 'name' => 'LITHUANIA', 'code' => '370', 'flag' => '🇱🇹' ),
237
+ 'LU' => array( 'name' => 'LUXEMBOURG', 'code' => '352', 'flag' => '🇱🇺' ),
238
+ 'LV' => array( 'name' => 'LATVIA', 'code' => '371', 'flag' => '🇱🇻' ),
239
+ 'LY' => array( 'name' => 'LIBYAN ARAB JAMAHIRIYA', 'code' => '218', 'flag' => '🇱🇾' ),
240
+ 'MA' => array( 'name' => 'MOROCCO', 'code' => '212', 'flag' => '🇲🇦' ),
241
+ 'MC' => array( 'name' => 'MONACO', 'code' => '377', 'flag' => '🇲🇨' ),
242
+ 'MD' => array( 'name' => 'MOLDOVA, REPUBLIC OF', 'code' => '373', 'flag' => '🇲🇩' ),
243
+ 'ME' => array( 'name' => 'MONTENEGRO', 'code' => '382', 'flag' => '🇲🇪' ),
244
+ 'MG' => array( 'name' => 'MADAGASCAR', 'code' => '261', 'flag' => '🇲🇬' ),
245
+ 'MH' => array( 'name' => 'MARSHALL ISLANDS', 'code' => '692', 'flag' => '🇲🇭' ),
246
+ 'MK' => array( 'name' => 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'code' => '389', 'flag' => '🇲🇰' ),
247
+ 'ML' => array( 'name' => 'MALI', 'code' => '223', 'flag' => '🇲🇱' ),
248
+ 'MM' => array( 'name' => 'MYANMAR', 'code' => '95', 'flag' => '🇲🇲' ),
249
+ 'MN' => array( 'name' => 'MONGOLIA', 'code' => '976', 'flag' => '🇲🇳' ),
250
+ 'MO' => array( 'name' => 'MACAU', 'code' => '853', 'flag' => '🇲🇴' ),
251
+ 'MP' => array( 'name' => 'NORTHERN MARIANA ISLANDS', 'code' => '1670', 'flag' => '🇲🇵' ),
252
+ 'MR' => array( 'name' => 'MAURITANIA', 'code' => '222', 'flag' => '🇲🇺' ),
253
+ 'MS' => array( 'name' => 'MONTSERRAT', 'code' => '1664', 'flag' => '🇲🇸' ),
254
+ 'MT' => array( 'name' => 'MALTA', 'code' => '356', 'flag' => '🇲🇹' ),
255
+ 'MU' => array( 'name' => 'MAURITIUS', 'code' => '230', 'flag' => '🇲🇺' ),
256
+ 'MV' => array( 'name' => 'MALDIVES', 'code' => '960', 'flag' => '🇲🇻' ),
257
+ 'MW' => array( 'name' => 'MALAWI', 'code' => '265', 'flag' => '🇲🇼' ),
258
+ 'MX' => array( 'name' => 'MEXICO', 'code' => '52', 'flag' => '🇲🇽' ),
259
+ 'MY' => array( 'name' => 'MALAYSIA', 'code' => '60', 'flag' => '🇲🇾' ),
260
+ 'MZ' => array( 'name' => 'MOZAMBIQUE', 'code' => '258', 'flag' => '🇲🇿' ),
261
+ 'NA' => array( 'name' => 'NAMIBIA', 'code' => '264', 'flag' => '🇳🇦' ),
262
+ 'NC' => array( 'name' => 'NEW CALEDONIA', 'code' => '687', 'flag' => '🇳🇨' ),
263
+ 'NE' => array( 'name' => 'NIGER', 'code' => '227', 'flag' => '🇳🇪' ),
264
+ 'NG' => array( 'name' => 'NIGERIA', 'code' => '234', 'flag' => '🇳🇬' ),
265
+ 'NI' => array( 'name' => 'NICARAGUA', 'code' => '505', 'flag' => '🇳🇮' ),
266
+ 'NL' => array( 'name' => 'NETHERLANDS', 'code' => '31', 'flag' => '🇳🇱' ),
267
+ 'NO' => array( 'name' => 'NORWAY', 'code' => '47', 'flag' => '🇳🇴' ),
268
+ 'NP' => array( 'name' => 'NEPAL', 'code' => '977', 'flag' => '🇳🇵' ),
269
+ 'NR' => array( 'name' => 'NAURU', 'code' => '674', 'flag' => '🇳🇷' ),
270
+ 'NU' => array( 'name' => 'NIUE', 'code' => '683', 'flag' => '🇳🇺' ),
271
+ 'NZ' => array( 'name' => 'NEW ZEALAND', 'code' => '64', 'flag' => '🇳🇿' ),
272
+ 'OM' => array( 'name' => 'OMAN', 'code' => '968', 'flag' => '🇴🇲' ),
273
+ 'PA' => array( 'name' => 'PANAMA', 'code' => '507', 'flag' => '🇵🇦' ),
274
+ 'PE' => array( 'name' => 'PERU', 'code' => '51', 'flag' => '🇵🇪' ),
275
+ 'PF' => array( 'name' => 'FRENCH POLYNESIA', 'code' => '689', 'flag' => '🇵🇫' ),
276
+ 'PG' => array( 'name' => 'PAPUA NEW GUINEA', 'code' => '675', 'flag' => '🇵🇬' ),
277
+ 'PH' => array( 'name' => 'PHILIPPINES', 'code' => '63', 'flag' => '🇵🇭' ),
278
+ 'PK' => array( 'name' => 'PAKISTAN', 'code' => '92', 'flag' => '🇵🇰' ),
279
+ 'PL' => array( 'name' => 'POLAND', 'code' => '48', 'flag' => '🇵🇱' ),
280
+ 'PM' => array( 'name' => 'SAINT PIERRE AND MIQUELON', 'code' => '508', 'flag' => '🇵🇲' ),
281
+ 'PN' => array( 'name' => 'PITCAIRN', 'code' => '870', 'flag' => '🇵🇳' ),
282
+ 'PT' => array( 'name' => 'PORTUGAL', 'code' => '351', 'flag' => '🇵🇹' ),
283
+ 'PW' => array( 'name' => 'PALAU', 'code' => '680', 'flag' => '🇵🇼' ),
284
+ 'PY' => array( 'name' => 'PARAGUAY', 'code' => '595', 'flag' => '🇵🇾' ),
285
+ 'QA' => array( 'name' => 'QATAR', 'code' => '974', 'flag' => '🇶🇦' ),
286
+ 'RO' => array( 'name' => 'ROMANIA', 'code' => '40', 'flag' => '🇷🇴' ),
287
+ 'RS' => array( 'name' => 'SERBIA', 'code' => '381', 'flag' => '🇷🇸' ),
288
+ 'RU' => array( 'name' => 'RUSSIAN FEDERATION', 'code' => '7', 'flag' => '🇷🇺' ),
289
+ 'RW' => array( 'name' => 'RWANDA', 'code' => '250', 'flag' => '🇷🇼' ),
290
+ 'SA' => array( 'name' => 'SAUDI ARABIA', 'code' => '966', 'flag' => '🇸🇦' ),
291
+ 'SB' => array( 'name' => 'SOLOMON ISLANDS', 'code' => '677', 'flag' => '🇸🇧' ),
292
+ 'SC' => array( 'name' => 'SEYCHELLES', 'code' => '248', 'flag' => '🇸🇨' ),
293
+ 'SD' => array( 'name' => 'SUDAN', 'code' => '249', 'flag' => '🇸🇩' ),
294
+ 'SE' => array( 'name' => 'SWEDEN', 'code' => '46', 'flag' => '🇸🇪' ),
295
+ 'SG' => array( 'name' => 'SINGAPORE', 'code' => '65', 'flag' => '🇸🇬' ),
296
+ 'SH' => array( 'name' => 'SAINT HELENA', 'code' => '290', 'flag' => '🇸🇭' ),
297
+ 'SI' => array( 'name' => 'SLOVENIA', 'code' => '386', 'flag' => '🇸🇮' ),
298
+ 'SK' => array( 'name' => 'SLOVAKIA', 'code' => '421', 'flag' => '🇸🇰' ),
299
+ 'SL' => array( 'name' => 'SIERRA LEONE', 'code' => '232', 'flag' => '🇸🇱' ),
300
+ 'SM' => array( 'name' => 'SAN MARINO', 'code' => '378', 'flag' => '🇸🇲' ),
301
+ 'SN' => array( 'name' => 'SENEGAL', 'code' => '221', 'flag' => '🇸🇳' ),
302
+ 'SO' => array( 'name' => 'SOMALIA', 'code' => '252', 'flag' => '🇸🇴' ),
303
+ 'SR' => array( 'name' => 'SURINAME', 'code' => '597', 'flag' => '🇸🇷' ),
304
+ 'ST' => array( 'name' => 'SAO TOME AND PRINCIPE', 'code' => '239', 'flag' => '🇸🇹' ),
305
+ 'SV' => array( 'name' => 'EL SALVADOR', 'code' => '503', 'flag' => '🇸🇻' ),
306
+ 'SY' => array( 'name' => 'SYRIAN ARAB REPUBLIC', 'code' => '963', 'flag' => '🇸🇾' ),
307
+ 'SZ' => array( 'name' => 'SWAZILAND', 'code' => '268', 'flag' => '🇸🇿' ),
308
+ 'TC' => array( 'name' => 'TURKS AND CAICOS ISLANDS', 'code' => '1649', 'flag' => '🇹🇨' ),
309
+ 'TD' => array( 'name' => 'CHAD', 'code' => '235', 'flag' => '🇹🇩' ),
310
+ 'TG' => array( 'name' => 'TOGO', 'code' => '228', 'flag' => '🇹🇬' ),
311
+ 'TH' => array( 'name' => 'THAILAND', 'code' => '66', 'flag' => '🇹🇭' ),
312
+ 'TJ' => array( 'name' => 'TAJIKISTAN', 'code' => '992', 'flag' => '🇹🇯' ),
313
+ 'TK' => array( 'name' => 'TOKELAU', 'code' => '690', 'flag' => '🇹🇰' ),
314
+ 'TL' => array( 'name' => 'TIMOR-LESTE', 'code' => '670', 'flag' => '🇹🇱' ),
315
+ 'TM' => array( 'name' => 'TURKMENISTAN', 'code' => '993', 'flag' => '🇹🇲' ),
316
+ 'TN' => array( 'name' => 'TUNISIA', 'code' => '216', 'flag' => '🇹🇳' ),
317
+ 'TO' => array( 'name' => 'TONGA', 'code' => '676', 'flag' => '🇹🇴' ),
318
+ 'TR' => array( 'name' => 'TURKEY', 'code' => '90', 'flag' => '🇹🇷' ),
319
+ 'TT' => array( 'name' => 'TRINIDAD AND TOBAGO', 'code' => '1868', 'flag' => '🇹🇹' ),
320
+ 'TV' => array( 'name' => 'TUVALU', 'code' => '688', 'flag' => '🇹🇻' ),
321
+ 'TW' => array( 'name' => 'TAIWAN, PROVINCE OF CHINA', 'code' => '886', 'flag' => '🇹🇼' ),
322
+ 'TZ' => array( 'name' => 'TANZANIA, UNITED REPUBLIC OF', 'code' => '255', 'flag' => '🇹🇿' ),
323
+ 'UA' => array( 'name' => 'UKRAINE', 'code' => '380', 'flag' => '🇺🇦' ),
324
+ 'UG' => array( 'name' => 'UGANDA', 'code' => '256', 'flag' => '🇺🇬' ),
325
+ 'US' => array( 'name' => 'UNITED STATES', 'code' => '1', 'flag' => '🇺🇸' ),
326
+ 'UY' => array( 'name' => 'URUGUAY', 'code' => '598', 'flag' => '🇺🇾' ),
327
+ 'UZ' => array( 'name' => 'UZBEKISTAN', 'code' => '998', 'flag' => '🇺🇿' ),
328
+ 'VC' => array( 'name' => 'SAINT VINCENT AND THE GRENADINES', 'code' => '1784', 'flag' => '🇻🇨' ),
329
+ 'VE' => array( 'name' => 'VENEZUELA', 'code' => '58', 'flag' => '🇻🇪' ),
330
+ 'VG' => array( 'name' => 'VIRGIN ISLANDS, BRITISH', 'code' => '1284', 'flag' => '🇻🇬' ),
331
+ 'VI' => array( 'name' => 'VIRGIN ISLANDS, U.S.', 'code' => '1340', 'flag' => '🇻🇮' ),
332
+ 'VN' => array( 'name' => 'VIETNAM', 'code' => '84', 'flag' => '🇻🇳' ),
333
+ 'VU' => array( 'name' => 'VANUATU', 'code' => '678', 'flag' => '🇻🇺' ),
334
+ 'WF' => array( 'name' => 'WALLIS AND FUTUNA', 'code' => '681', 'flag' => '🇼🇫' ),
335
+ 'WS' => array( 'name' => 'SAMOA', 'code' => '685', 'flag' => '🇼🇸' ),
336
+ 'YE' => array( 'name' => 'YEMEN', 'code' => '967', 'flag' => '🇾🇪' ),
337
+ 'YT' => array( 'name' => 'MAYOTTE', 'code' => '262', 'flag' => '🇾🇹' ),
338
+ 'ZA' => array( 'name' => 'SOUTH AFRICA', 'code' => '27', 'flag' => '🇿🇦' ),
339
+ 'ZM' => array( 'name' => 'ZAMBIA', 'code' => '260', 'flag' => '🇿🇲' ),
340
+ 'ZW' => array( 'name' => 'ZIMBABWE', 'code' => '263', 'flag' => '🇿🇼' ),
 
 
 
 
341
  );
342
 
343
  return $phone_countries;
361
  $part_name = happyforms_get_part_name( $part_data, $form_data );
362
 
363
  if ( isset( $_REQUEST[$part_name] ) ) {
364
+ $sanitized_value = wp_parse_args( $_REQUEST[$part_name], $sanitized_value );
 
 
 
 
 
365
 
366
+ if ( '' !== implode( '', array_values( $sanitized_value ) ) ) {
367
+ foreach( $sanitized_value as $component => $value ) {
368
+ $sanitized_value[$component] = preg_replace( '/[^0-9]/', '', $value );
369
+ }
370
  }
 
 
371
  }
372
 
373
  return $sanitized_value;
391
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
392
  }
393
 
394
+ if ( $part['required'] && empty( $validated_values['number'] ) ) {
395
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
396
  }
397
 
398
+ if ( isset( $validated_values['confirmation'] ) && $validated_values['number'] !== $validated_values['confirmation'] ) {
399
  return new WP_Error( 'error', __( 'Number and confirmation number are not matching.', 'happyforms' ) );
400
  }
401
 
402
+ $phone_string = $validated_values['number'];
403
+
404
+ if ( $this->is_masked( $part ) ) {
405
+ $phone_string = '+' . $validated_values['code'] . ' ' . $validated_values['number'];
406
  }
407
 
408
+ return $phone_string;
409
  }
410
 
411
  public function get_part_value( $value, $part, $form, $component ) {
412
  if ( $this->type === $part['type'] ) {
413
  if ( false !== $component ) {
414
  $value = isset( $value[$component] ) ? $value[$component] : '';
 
 
 
 
415
  }
416
  }
417
 
418
  return $value;
419
  }
420
 
421
+ public function is_masked( $part ) {
422
+ // back compatibility with "Mask this input" option
423
+ if ( 1 == $part['masked'] ) {
424
+ return true;
425
+ }
426
+
427
+ return false;
428
+ }
429
+
430
  public function html_part_class( $class, $part, $form ) {
431
  if ( $this->type === $part['type'] ) {
432
+ if ( $this->is_masked( $part )
433
  || happyforms_get_part_value( $part, $form, 0 )
434
  || happyforms_get_part_value( $part, $form, 1 ) ) {
435
  $class[] = 'happyforms-part--filled';
436
  }
437
+
438
+ if ( $this->is_masked( $part ) ) {
439
+ $class[] = 'happyforms-is-masked';
440
+ }
441
+
442
+ if ( $this->is_masked( $part ) && $part['mask_allow_all_countries'] ) {
443
+ $class[] = 'happyforms-has-country-select';
444
+ }
445
+
446
+ if ( ! $this->is_masked( $part ) ) {
447
+ $class[] = 'happyforms-phone--plain';
448
+ }
449
  }
450
 
451
  return $class;
460
  $attributes['happyforms-require-confirmation'] = '';
461
  }
462
 
463
+ if ( $this->is_masked( $part ) ) {
464
  $attributes['mask'] = 'true';
465
  $attributes['country'] = $part['mask_phone_country'];
466
  }
inc/classes/parts/class-part-select.php CHANGED
@@ -8,7 +8,7 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
10
 
11
- add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
12
  }
13
 
14
  /**
@@ -55,6 +55,10 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
55
  'options' => array(
56
  'default' => array(),
57
  'sanitize' => 'happyforms_sanitize_array'
 
 
 
 
58
  )
59
  );
60
  }
@@ -163,24 +167,36 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
163
  $options = wp_list_pluck( $options, 'label' );
164
  $options = array_map( 'sanitize_text_field', $options );
165
 
166
- if ( ! in_array( $value, $options ) ) {
167
  return new WP_Error( 'error', __( 'Select values are not valid.', 'happyforms' ) );
168
  }
169
 
170
  return $validated_value;
171
  }
172
 
173
- public function html_part_class( $class, $part, $form ) {
174
- if ( $this->type === $part['type'] ) {
175
- if ( isset( $part['date_type'] ) ) {
176
- $class[] = 'happyforms-part-date--' . $part['date_type'];
177
- }
178
 
179
- if ( isset( $part['time_format'] ) ) {
180
- $class[] = 'happyforms-part-date--' . $part['time_format'];
 
 
181
  }
182
  }
183
 
184
- return $class;
 
 
 
 
 
 
 
 
 
 
 
 
185
  }
186
  }
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
10
 
11
+ add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
12
  }
13
 
14
  /**
55
  'options' => array(
56
  'default' => array(),
57
  'sanitize' => 'happyforms_sanitize_array'
58
+ ),
59
+ 'allow_search' => array(
60
+ 'default' => 0,
61
+ 'sanitize' => 'happyforms_sanitize_checkbox'
62
  )
63
  );
64
  }
167
  $options = wp_list_pluck( $options, 'label' );
168
  $options = array_map( 'sanitize_text_field', $options );
169
 
170
+ if ( ! empty( $validated_value ) && ! in_array( $value, $options ) ) {
171
  return new WP_Error( 'error', __( 'Select values are not valid.', 'happyforms' ) );
172
  }
173
 
174
  return $validated_value;
175
  }
176
 
177
+ public function script_dependencies( $deps, $forms ) {
178
+ $contains_select = false;
179
+ $form_controller = happyforms_get_form_controller();
 
 
180
 
181
+ foreach ( $forms as $form ) {
182
+ if ( $form_controller->get_first_part_by_type( $form, $this->type ) ) {
183
+ $contains_select = true;
184
+ break;
185
  }
186
  }
187
 
188
+ if ( ! happyforms_is_preview() && ! $contains_select ) {
189
+ return $deps;
190
+ }
191
+
192
+ wp_register_script(
193
+ 'happyforms-select',
194
+ happyforms_get_plugin_url() . 'assets/js/lib/happyforms-select.js',
195
+ array( 'jquery' ), HAPPYFORMS_VERSION, true
196
+ );
197
+
198
+ $deps[] = 'happyforms-select';
199
+
200
+ return $deps;
201
  }
202
  }
inc/classes/parts/class-part-title.php CHANGED
@@ -7,6 +7,8 @@ class HappyForms_Part_Title extends HappyForms_Form_Part {
7
  public function __construct() {
8
  $this->label = __( 'Title', 'happyforms' );
9
  $this->description = __( 'For displaying personal honorifics.', 'happyforms' );
 
 
10
  }
11
 
12
  /**
@@ -164,4 +166,30 @@ class HappyForms_Part_Title extends HappyForms_Form_Part {
164
  return $validated_value;
165
  }
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  }
7
  public function __construct() {
8
  $this->label = __( 'Title', 'happyforms' );
9
  $this->description = __( 'For displaying personal honorifics.', 'happyforms' );
10
+
11
+ add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
12
  }
13
 
14
  /**
166
  return $validated_value;
167
  }
168
 
169
+ public function script_dependencies( $deps, $forms ) {
170
+ $contains_title = false;
171
+ $form_controller = happyforms_get_form_controller();
172
+
173
+ foreach ( $forms as $form ) {
174
+ if ( $form_controller->get_first_part_by_type( $form, $this->type ) ) {
175
+ $contains_title = true;
176
+ break;
177
+ }
178
+ }
179
+
180
+ if ( ! happyforms_is_preview() && ! $contains_title ) {
181
+ return $deps;
182
+ }
183
+
184
+ wp_register_script(
185
+ 'happyforms-select',
186
+ happyforms_get_plugin_url() . 'assets/js/lib/happyforms-select.js',
187
+ array( 'jquery' ), HAPPYFORMS_VERSION, true
188
+ );
189
+
190
+ $deps[] = 'happyforms-select';
191
+
192
+ return $deps;
193
+ }
194
+
195
  }
inc/helpers/helper-form-templates.php CHANGED
@@ -768,4 +768,44 @@ function happyforms_get_site_date_format() {
768
  return apply_filters( 'happyforms_date_part_format', $format );
769
  }
770
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
771
  endif;
768
  return apply_filters( 'happyforms_date_part_format', $format );
769
  }
770
 
771
+ endif;
772
+
773
+ if ( ! function_exists( 'happyforms_the_countries_dropdown' ) ) :
774
+
775
+ function happyforms_the_countries_dropdown( $part_object, $part, $country_code ) { ?>
776
+ <?php if ( $part_object->is_masked( $part ) ) : ?>
777
+ <div class="happyforms-part--phone__country-select happyforms-country-select<?php if ( $part['mask_allow_all_countries'] ) { ?> happyforms-country-select--multiple<?php } ?>">
778
+ <div class="happyforms-country-select__selected-country">
779
+ <a href="#" class="happyforms-country-select-trigger"></a>
780
+ <?php
781
+ $countries = $part_object->get_phone_countries_array();
782
+ $current_country = 0;
783
+
784
+ foreach( $countries as $country ) {
785
+ if ( intval( $country['code'] ) === intval( $country_code ) ) {
786
+ $current_country = $country;
787
+ }
788
+ }
789
+ ?>
790
+ <div class="happyforms-flag us"><?php echo $current_country['flag']; ?></div>
791
+ </div>
792
+ <?php if ( $part['mask_allow_all_countries'] ) { ?>
793
+ <ul class="happyforms-custom-select-dropdown phone">
794
+ <li>
795
+ <input type="text" autocomplete="off" placeholder="Search countries..." class="happyforms-custom-select-dropdown__search">
796
+ </li>
797
+ <?php foreach( $countries as $key => $country ) { ?>
798
+ <li tabindex="0" class="happyforms-custom-select-dropdown__item happyforms-custom-select-dropdown-item" data-country="<?php echo strtolower( $key ); ?>" data-search-string="<?php echo strtolower( $country['name'] ); ?>" data-code="<?php echo $country['code']; ?>">
799
+ <div class="happyforms-flag <?php echo strtolower( $key ); ?>"><?php echo $country['flag']; ?></div>
800
+ <span class="happyforms-custom-select-dropdown-item__label happyforms-custom-select-dropdown-item__label--country"><?php echo ucwords( strtolower( $country['name'] ) ); ?></span>
801
+ <span class="happyforms-custom-select-dropdown-item__label happyforms-custom-select-dropdown-item__label--country-code">+<?php echo $country['code']; ?></span>
802
+ </li>
803
+ <?php } ?>
804
+ </ul>
805
+ <?php } ?>
806
+ </div>
807
+ <?php endif; ?>
808
+ <?php
809
+ }
810
+
811
  endif;
inc/helpers/helper-misc.php CHANGED
@@ -135,9 +135,10 @@ if ( ! function_exists( 'happyforms_get_form_edit_link' ) ):
135
  * @return string
136
  */
137
  function happyforms_get_form_edit_link( $id, $return_url = '' ) {
 
138
  $base_url = add_query_arg( array(
139
  'form_id' => $id,
140
- ), happyforms_customizer_url( happyforms_get_all_form_link() ) );
141
  $url = "{$base_url}#build";
142
 
143
  return $url;
135
  * @return string
136
  */
137
  function happyforms_get_form_edit_link( $id, $return_url = '' ) {
138
+ $return_url = empty( $return_url ) ? happyforms_get_all_form_link() : $return_url;
139
  $base_url = add_query_arg( array(
140
  'form_id' => $id,
141
+ ), happyforms_customizer_url( $return_url ) );
142
  $url = "{$base_url}#build";
143
 
144
  return $url;
inc/templates/admin-form-modal.php CHANGED
@@ -10,40 +10,4 @@
10
  </div>
11
 
12
  <button class="button-primary happyforms-dialog__button"><?php _e( 'Insert', 'happyforms' ); ?></button>
13
- </div>
14
-
15
- <script>
16
- jQuery(function($) {
17
- $(document).on('click', '.happyforms-editor-button', function() {
18
- $('#happyforms-modal').dialog({
19
- title: '<?php _e( 'Insert HappyForm', 'happyforms' ); ?>',
20
- dialogClass: 'happyforms-dialog wp-dialog',
21
- draggable: false,
22
- width: 'auto',
23
- modal: true,
24
- resizable: false,
25
- closeOnEscape: true,
26
- position: {
27
- my: 'center',
28
- at: 'center',
29
- of: $(window)
30
- },
31
- open: function() {
32
- $('.happyforms-dialog__button').on('click', function(e) {
33
- e.preventDefault();
34
- e.stopImmediatePropagation();
35
-
36
- var selectedForm = $('#happyforms-dialog-select').val();
37
- if (!selectedForm) {
38
- return false;
39
- }
40
- var shortcode = '[happyforms id="' + selectedForm + '" /]';
41
- window.parent.send_to_editor(shortcode);
42
- $('#happyforms-modal').dialog('close');
43
- $('#happyforms-dialog-select').val('');
44
- });
45
- }
46
- });
47
- });
48
- });
49
- </script>
10
  </div>
11
 
12
  <button class="button-primary happyforms-dialog__button"><?php _e( 'Insert', 'happyforms' ); ?></button>
13
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/templates/admin-shortcode.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <script type="text/html" id="tmpl-happyforms-shortcode">
2
+ <div class="loading-placeholder">
3
+ <div style="text-align: center">
4
+ <span>{{ data.title }} HappyForms</span>
5
+ </div>
6
+ </div>
7
+ <span class="wpview-end"></span>
8
+ </script>
inc/templates/parts/customize-phone.php CHANGED
@@ -40,12 +40,12 @@
40
  <div class="happyforms-part-advanced-settings-wrap">
41
  <p>
42
  <label>
43
- <input type="checkbox" name="masked" class="checkbox" value="1" <% if ( instance.masked ) { %>checked="checked"<% } %> data-bind="masked" /> <?php _e( 'Mask this input', 'happyforms' ); ?>
44
  </label>
45
  </p>
46
- <div class="number-options number-options--phone" style="display: <%= (instance.masked == 1) ? 'block' : 'none' %>">
47
  <p>
48
- <label for="<%= instance.id %>_mask_phone_country"><?php _e( 'Pre-format phone number region', 'happyforms' ); ?></label>
49
  <select id="<%= instance.id %>_mask_phone_country" class="widefat title" data-bind="mask_phone_country">
50
  <?php
51
  $phone_countries = $this->get_phone_countries_array();
@@ -55,6 +55,11 @@
55
  <?php endforeach; ?>
56
  </select>
57
  </p>
 
 
 
 
 
58
  </div>
59
  <p>
60
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
40
  <div class="happyforms-part-advanced-settings-wrap">
41
  <p>
42
  <label>
43
+ <input type="checkbox" name="masked" class="checkbox" value="1" <% if ( instance.masked ) { %>checked="checked"<% } %> data-bind="masked" /> <?php _e( 'International format', 'happyforms' ); ?>
44
  </label>
45
  </p>
46
+ <div class="number-options number-options--phone" style="display: <%= (instance.masked != 0) ? 'block' : 'none' %>">
47
  <p>
48
+ <label for="<%= instance.id %>_mask_phone_country"><?php _e( 'Default phone number region', 'happyforms' ); ?></label>
49
  <select id="<%= instance.id %>_mask_phone_country" class="widefat title" data-bind="mask_phone_country">
50
  <?php
51
  $phone_countries = $this->get_phone_countries_array();
55
  <?php endforeach; ?>
56
  </select>
57
  </p>
58
+ <p>
59
+ <label>
60
+ <input type="checkbox" name="mask_allow_all_countries" class="checkbox" value="1" <% if ( instance.mask_allow_all_countries ) { %>checked="checked"<% } %> data-bind="mask_allow_all_countries" /> <?php _e( 'Allow other regions to be selected', 'happyforms' ); ?>
61
+ </label>
62
+ </p>
63
  </div>
64
  <p>
65
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
inc/templates/parts/customize-select.php CHANGED
@@ -41,6 +41,11 @@
41
  <a href="#" class="add-option"><?php _e( 'Add option', 'happyforms' ); ?></a>
42
  </p>
43
  <div class="happyforms-part-advanced-settings-wrap">
 
 
 
 
 
44
  <p>
45
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
46
  <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
41
  <a href="#" class="add-option"><?php _e( 'Add option', 'happyforms' ); ?></a>
42
  </p>
43
  <div class="happyforms-part-advanced-settings-wrap">
44
+ <p>
45
+ <label>
46
+ <input type="checkbox" class="checkbox" value="1" <% if ( instance.allow_search ) { %>checked="checked"<% } %> data-bind="allow_search" /> <?php _e( 'Make searchable', 'happyforms' ); ?>
47
+ </label>
48
+ </p>
49
  <p>
50
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
51
  <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
inc/templates/parts/frontend-date-day.php CHANGED
@@ -1,11 +1,47 @@
1
- <?php $day_value = ( 'current' === $part['default_datetime'] ) ? date( 'j' ) : intval( happyforms_get_part_value( $part, $form, 'day' ) ); ?>
2
- <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
3
- <div class="happyforms-part__select-bg">
4
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[day]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
5
- <option value=""><?php _e( 'Day', 'happyforms' ); ?></option>
6
- <?php for ( $i = 1; $i <= 31; $i++ ) : ?>
7
- <option value="<?php echo $i; ?>" <?php selected( $day_value, $i ); ?>><?php echo $i; ?></option>
8
- <?php endfor; ?>
9
- </select>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  </div>
11
  </div>
1
+ <?php
2
+ $current_timestamp = current_time( 'timestamp', false );
3
+ $day_value = ( 'current' === $part['default_datetime'] ) ? date( 'j', $current_timestamp ) : intval( happyforms_get_part_value( $part, $form, 'day' ) ); ?>
4
+ <div class="happyforms-part-date__date-input">
5
+ <div class="happyforms-custom-select" data-searchable="true">
6
+ <div class="happyforms-part__select-wrap">
7
+ <?php
8
+ $default_value = $day_value;
9
+ $placeholder_value = '';
10
+ $has_value = false;
11
+
12
+ if ( ! empty( $default_value ) || 0 !== $default_value ) {
13
+ $has_value = true;
14
+ }
15
+
16
+ if ( ! $has_value ) {
17
+ $placeholder_value = __( 'Day', 'happyforms' );
18
+ }
19
+ ?>
20
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
21
+
22
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
23
+ <li data-value=""><?php _e( 'Day', 'happyforms' ); ?></li>
24
+ <?php
25
+ for ( $i = 1; $i <= 31; $i++ ) :
26
+ $selected = ( $day_value === $i ) ? true : false;
27
+
28
+ $li_classes = array();
29
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
30
+
31
+ if ( $selected ) {
32
+ $li_classes[] = 'current';
33
+ }
34
+ ?>
35
+ <li data-value="<?php echo $i; ?>" data-label="<?php echo $i; ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo $i; ?></li>
36
+ <?php endfor; ?>
37
+ </ul>
38
+
39
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[day]">
40
+ <option value=""><?php _e( 'Day', 'happyforms' ); ?></option>
41
+ <?php for ( $i = 1; $i <= 31; $i++ ) : ?>
42
+ <option value="<?php echo $i; ?>" <?php selected( $day_value, $i ); ?>><?php echo $i; ?></option>
43
+ <?php endfor; ?>
44
+ </select>
45
+ </div>
46
  </div>
47
  </div>
inc/templates/parts/frontend-date-month.php CHANGED
@@ -1,12 +1,50 @@
1
- <?php $month_value = ( 'current' === $part['default_datetime'] ) ? date( 'n' ) : intval( happyforms_get_part_value( $part, $form, 'month' ) ); ?>
2
- <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
3
- <div class="happyforms-part__select-bg">
4
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[month]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
5
- <option value=""><?php _e( 'Month', 'happyforms' ); ?></option>
6
- <?php $months = happyforms_get_months(); ?>
7
- <?php for ( $i = 1; $i <= 12; $i++ ) : ?>
8
- <option value="<?php echo $i; ?>" <?php selected( $month_value, $i ); ?>><?php echo $months[$i]; ?></option>
9
- <?php endfor; ?>
10
- </select>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  </div>
12
  </div>
1
+ <?php
2
+ $current_timestamp = current_time( 'timestamp', false );
3
+ $month_value = ( 'current' === $part['default_datetime'] ) ? date( 'n', $current_timestamp ) : intval( happyforms_get_part_value( $part, $form, 'month' ) ); ?>
4
+ <div class="happyforms-part-date__date-input">
5
+ <div class="happyforms-custom-select" data-searchable="true">
6
+ <div class="happyforms-part__select-wrap">
7
+ <?php
8
+ $months = happyforms_get_months();
9
+
10
+ $default_value = $month_value;
11
+ $placeholder_value = '';
12
+ $has_value = false;
13
+
14
+ if ( ! empty( $default_value ) || 0 !== $default_value ) {
15
+ $has_value = true;
16
+ }
17
+
18
+ if ( ! $has_value ) {
19
+ $placeholder_value = __( 'Month', 'happyforms' );
20
+ }
21
+ ?>
22
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
23
+
24
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
25
+ <li data-value=""><?php _e( 'Month', 'happyforms' ); ?></li>
26
+ <?php
27
+ for ( $i = 1; $i <= 12; $i++ ) :
28
+ $selected = ( $month_value === $i ) ? true : false;
29
+
30
+ $li_classes = array();
31
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
32
+
33
+ if ( $selected ) {
34
+ $li_classes[] = 'current';
35
+ }
36
+ ?>
37
+ <li data-value="<?php echo $i; ?>" data-label="<?php echo $months[$i]; ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo $months[$i]; ?></li>
38
+ <?php endfor; ?>
39
+ </ul>
40
+
41
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[month]">
42
+ <option value=""><?php _e( 'Month', 'happyforms' ); ?></option>
43
+
44
+ <?php for ( $i = 1; $i <= 12; $i++ ) : ?>
45
+ <option value="<?php echo $i; ?>" <?php selected( $month_value, $i ); ?>><?php echo $months[$i]; ?></option>
46
+ <?php endfor; ?>
47
+ </select>
48
+ </div>
49
  </div>
50
  </div>
inc/templates/parts/frontend-date.php CHANGED
@@ -19,28 +19,62 @@
19
  }
20
  ?>
21
  <?php $year_value = ( 'current' === $part['default_datetime'] ) ? date( 'Y', $current_timestamp ) : intval( happyforms_get_part_value( $part, $form, 'year' ) ); ?>
22
- <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
23
- <div class="happyforms-part__select-bg">
24
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[year]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
25
- <option value=""><?php _e( 'Year', 'happyforms' ); ?></option>
26
  <?php
27
- $order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
28
- $min_year = $part['min_year'];
29
- $max_year = ( $part['max_year'] > $min_year ) ? $part['max_year'] : date('Y');
30
 
31
- $option_template = '<option value="%d" %s>%d</option>';
32
-
33
- if ( 'desc' === $order ) {
34
- for ( $i = $max_year; $i >= $min_year; $i-- ) {
35
- printf( $option_template, $i, selected( $year_value, $i ), $i );
36
  }
37
- } else {
38
- for ( $i = $min_year; $i <= $max_year; $i++ ) {
39
- printf( $option_template, $i, selected( $year_value, $i ), $i );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  }
41
- }
42
- ?>
43
- </select>
44
  </div>
45
  </div>
46
  <?php endif; ?>
@@ -80,13 +114,35 @@
80
  <?php
81
  $happyforms_period_value = ( happyforms_get_part_value( $part, $form, 'period' ) ) ? happyforms_get_part_value( $part, $form, 'period' ) : 'AM';
82
  $period_value = ( 'current' === $part['default_datetime'] ) ? date( 'A', $current_timestamp ) : $happyforms_period_value; ?>
83
- <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--period happyforms-part__select-wrap">
84
- <div class="happyforms-part__select-bg">
85
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[period]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
86
- <option value=""><?php _e( 'Period', 'happyforms' ); ?></option>
87
- <option value="AM" <?php selected( $period_value, 'AM' ); ?>><?php _e( 'AM', 'happyforms' ); ?></option>
88
- <option value="PM" <?php selected( $period_value, 'PM' ); ?>><?php _e( 'PM', 'happyforms' ); ?></option>
89
- </select>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  </div>
91
  </div>
92
  <?php endif; ?>
19
  }
20
  ?>
21
  <?php $year_value = ( 'current' === $part['default_datetime'] ) ? date( 'Y', $current_timestamp ) : intval( happyforms_get_part_value( $part, $form, 'year' ) ); ?>
22
+ <div class="happyforms-part-date__date-input">
23
+ <div class="happyforms-custom-select" data-searchable="true">
24
+ <div class="happyforms-part__select-wrap">
 
25
  <?php
26
+ $default_value = $year_value;
27
+ $placeholder_value = '';
28
+ $has_value = false;
29
 
30
+ if ( ! empty( $default_value ) || 0 !== $default_value ) {
31
+ $has_value = true;
 
 
 
32
  }
33
+
34
+ if ( ! $has_value ) {
35
+ $placeholder_value = __( 'Year', 'happyforms' );
36
+ }
37
+ ?>
38
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
39
+
40
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
41
+ <li data-value=""><?php _e( 'Year', 'happyforms' ); ?></li>
42
+ <?php
43
+ $order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
44
+ $min_year = $part['min_year'];
45
+ $max_year = ( $part['max_year'] > $min_year ) ? $part['max_year'] : date('Y');
46
+
47
+ $li_template = '<li data-value="%d" data-label="%d" class="happyforms-custom-select-dropdown__item %s" tabindex="0">%d</li>';
48
+
49
+ if ( 'desc' === $order ) {
50
+ for ( $i = $max_year; $i >= $min_year; $i-- ) {
51
+ printf( $li_template, $i, $i, ( $year_value === $i ) ? ' current' : '', $i );
52
+ }
53
+ } else {
54
+ for ( $i = $min_year; $i <= $max_year; $i++ ) {
55
+ printf( $li_template, $i, $i, ( $year_value === $i ) ? ' current' : '', $i );
56
+ }
57
+ }
58
+ ?>
59
+ </ul>
60
+
61
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[year]">
62
+ <option value=""><?php _e( 'Year', 'happyforms' ); ?></option>
63
+ <?php
64
+ $option_template = '<option value="%d" %s>%d</option>';
65
+
66
+ if ( 'desc' === $order ) {
67
+ for ( $i = $max_year; $i >= $min_year; $i-- ) {
68
+ printf( $option_template, $i, selected( $year_value, $i ), $i );
69
+ }
70
+ } else {
71
+ for ( $i = $min_year; $i <= $max_year; $i++ ) {
72
+ printf( $option_template, $i, selected( $year_value, $i ), $i );
73
+ }
74
  }
75
+ ?>
76
+ </select>
77
+ </div>
78
  </div>
79
  </div>
80
  <?php endif; ?>
114
  <?php
115
  $happyforms_period_value = ( happyforms_get_part_value( $part, $form, 'period' ) ) ? happyforms_get_part_value( $part, $form, 'period' ) : 'AM';
116
  $period_value = ( 'current' === $part['default_datetime'] ) ? date( 'A', $current_timestamp ) : $happyforms_period_value; ?>
117
+ <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--period">
118
+ <div class="happyforms-custom-select" data-searchable="false">
119
+ <div class="happyforms-part__select-wrap">
120
+ <?php
121
+ $default_value = $period_value;
122
+ $placeholder_value = '';
123
+ $has_value = false;
124
+
125
+ if ( ! empty( $default_value ) || 0 !== $default_value ) {
126
+ $has_value = true;
127
+ }
128
+
129
+ if ( ! $has_value ) {
130
+ $placeholder_value = __( 'Period', 'happyforms' );
131
+ }
132
+ ?>
133
+
134
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
135
+
136
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
137
+ <li data-value="AM" data-label="AM" class="happyforms-custom-select-dropdown__item default<?php echo ( 'AM' === $default_value ) ? ' current' : ''; ?>" tabindex="0">AM</li>
138
+ <li data-value="PM" data-label="PM" class="happyforms-custom-select-dropdown__item<?php echo ( 'PM' === $default_value ) ? ' current' : ''; ?>" tabindex="0">PM</li>
139
+ </ul>
140
+
141
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[period]">
142
+ <option value="AM" <?php selected( $period_value, 'AM' ); ?>><?php _e( 'AM', 'happyforms' ); ?></option>
143
+ <option value="PM" <?php selected( $period_value, 'PM' ); ?>><?php _e( 'PM', 'happyforms' ); ?></option>
144
+ </select>
145
+ </div>
146
  </div>
147
  </div>
148
  <?php endif; ?>
inc/templates/parts/frontend-phone.php CHANGED
@@ -6,10 +6,15 @@
6
  <?php if ( 'happyforms-form--part-error-notices-above' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) : ?>
7
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
8
  <?php endif; ?>
9
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> />
10
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
11
- <?php happyforms_the_part_label( $part, $form ); ?>
12
- <?php endif; ?>
 
 
 
 
 
13
  <?php happyforms_print_part_description( $part ); ?>
14
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
15
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
@@ -20,10 +25,13 @@
20
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
21
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
22
  <?php endif; ?>
23
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" class="happyforms-confirmation-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> />
24
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
25
- <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
26
- <?php endif; ?>
 
 
 
27
  </div>
28
  <?php endif; ?>
29
  </div>
6
  <?php if ( 'happyforms-form--part-error-notices-above' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) : ?>
7
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
8
  <?php endif; ?>
9
+ <div class="happyforms-part__el">
10
+ <?php $code_value = ( ! empty( happyforms_get_part_value( $part, $form, 'code' ) ) ) ? happyforms_get_part_value( $part, $form, 'code' ) : $part['mask_phone_country']; ?>
11
+ <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[code]" value="<?php echo $code_value; ?>">
12
+ <?php happyforms_the_countries_dropdown( $this, $part, $code_value ); ?>
13
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form, 'number' ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[number]" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> />
14
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
15
+ <?php happyforms_the_part_label( $part, $form ); ?>
16
+ <?php endif; ?>
17
+ </div>
18
  <?php happyforms_print_part_description( $part ); ?>
19
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
20
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
25
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
26
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
27
  <?php endif; ?>
28
+ <div class="happyforms-part__el">
29
+ <?php happyforms_the_countries_dropdown( $this, $part, $code_value ); ?>
30
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[confirmation]" value="<?php happyforms_the_part_value( $part, $form, 'confirmation' ); ?>" class="happyforms-confirmation-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> />
31
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
32
+ <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
33
+ <?php endif; ?>
34
+ </div>
35
  </div>
36
  <?php endif; ?>
37
  </div>
inc/templates/parts/frontend-select.php CHANGED
@@ -4,12 +4,59 @@
4
  <?php if ( 'happyforms-form--part-error-notices-above' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) : ?>
5
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
6
  <?php endif; ?>
7
- <div class="happyforms-part__select-wrap">
8
- <div class="happyforms-part__select-bg">
9
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
10
- <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  <?php
12
  $options = happyforms_get_part_options( $part['options'], $part, $form );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  foreach( $options as $option ) :
14
  $selected = selected( $option['is_default'], 1, false );
15
  $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form ), $option['label'], false );
4
  <?php if ( 'happyforms-form--part-error-notices-above' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) : ?>
5
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
6
  <?php endif; ?>
7
+ <div class="happyforms-custom-select" data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>">
8
+ <div class="happyforms-part__select-wrap">
9
+ <?php
10
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
11
+
12
+ $default_value = happyforms_the_part_value( $part, $form );
13
+ $placeholder_value = '';
14
+ $has_value = false;
15
+
16
+ while( empty( $default_value ) ) {
17
+ foreach( $options as $option ) {
18
+ if ( $option['is_default'] ) {
19
+ $default_value = $option['label'];
20
+ $has_value = true;
21
+ }
22
+ }
23
+
24
+ break;
25
+ }
26
+
27
+ if ( ! $has_value ) {
28
+ $placeholder_value = __( '- Select -', 'happyforms' );
29
+ }
30
+ ?>
31
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
32
+
33
+ <ul class="happyforms-custom-select-dropdown">
34
+ <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
35
  <?php
36
  $options = happyforms_get_part_options( $part['options'], $part, $form );
37
+ foreach( $options as $option ) :
38
+ $is_default = ( 1 == $option['is_default'] ) ? true : false;
39
+ $selected = $is_default ? true : false;
40
+ $selected = $selected ? $selected : happyforms_get_part_value( $part, $form ) === $option['label'];
41
+
42
+ $li_classes = array();
43
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
44
+
45
+ if ( $selected ) {
46
+ $li_classes[] = 'current';
47
+ }
48
+
49
+ if ( $is_default ) {
50
+ $li_classes[] = 'default';
51
+ }
52
+ ?>
53
+ <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
54
+ <?php endforeach; ?>
55
+ </ul>
56
+
57
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el">
58
+ <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
59
+ <?php
60
  foreach( $options as $option ) :
61
  $selected = selected( $option['is_default'], 1, false );
62
  $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form ), $option['label'], false );
inc/templates/parts/frontend-title.php CHANGED
@@ -1,12 +1,47 @@
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
- <div class="happyforms-part__select-wrap">
5
- <div class="happyforms-part__select-bg">
6
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
7
- <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  <?php
9
  $options = happyforms_get_part_options( $part['options'], $part, $form );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  foreach( $options as $option ) : ?>
11
  <option value="<?php echo $option['label']; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $option['label'] ); ?>><?php echo $option['label']; ?></option>
12
  <?php endforeach; ?>
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
+ <div class="happyforms-custom-select">
5
+ <div class="happyforms-part__select-wrap">
6
+ <?php
7
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
8
+
9
+ $default_value = happyforms_the_part_value( $part, $form );
10
+ $placeholder_value = '';
11
+ $has_value = false;
12
+
13
+ if ( ! empty( $default_value ) ) {
14
+ $has_value = true;
15
+ }
16
+
17
+ if ( ! $has_value ) {
18
+ $placeholder_value = __( '- Select -', 'happyforms' );
19
+ }
20
+ ?>
21
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> />
22
+
23
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
24
+ <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
25
  <?php
26
  $options = happyforms_get_part_options( $part['options'], $part, $form );
27
+
28
+ foreach( $options as $option ) :
29
+ $selected = ( happyforms_get_part_value( $part, $form ) === $option['label'] ) ? true : false;
30
+
31
+ $li_classes = array();
32
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
33
+
34
+ if ( $selected ) {
35
+ $li_classes[] = 'current';
36
+ }
37
+ ?>
38
+ <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
39
+ <?php endforeach; ?>
40
+ </ul>
41
+
42
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el">
43
+ <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
44
+ <?php
45
  foreach( $options as $option ) : ?>
46
  <option value="<?php echo $option['label']; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $option['label'] ); ?>><?php echo $option['label']; ?></option>
47
  <?php endforeach; ?>
languages/happyforms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: HappyForms 1.5.4\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2018-07-25 13:22:25+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -126,8 +126,8 @@ msgstr ""
126
 
127
  #: inc/classes/class-form-controller.php:74
128
  #: inc/classes/class-form-controller.php:84
129
- #: inc/classes/class-happyforms-plugin.php:151
130
- #: inc/classes/class-happyforms-plugin.php:152
131
  msgid "All Forms"
132
  msgstr ""
133
 
@@ -303,139 +303,140 @@ msgstr ""
303
  msgid "Full width"
304
  msgstr ""
305
 
306
- #: inc/classes/class-form-styles.php:477
307
  msgid "General"
308
  msgstr ""
309
 
310
- #: inc/classes/class-form-styles.php:481
311
  msgid "Form width"
312
  msgstr ""
313
 
314
- #: inc/classes/class-form-styles.php:486
315
  msgid "Direction"
316
  msgstr ""
317
 
318
- #: inc/classes/class-form-styles.php:491 inc/classes/class-form-styles.php:665
319
  msgid "Required text"
320
  msgstr ""
321
 
322
- #: inc/classes/class-form-styles.php:496
323
  msgid "Disable submit button until form is valid"
324
  msgstr ""
325
 
326
- #: inc/classes/class-form-styles.php:501
327
  msgid "Font weight"
328
  msgstr ""
329
 
330
- #: inc/classes/class-form-styles.php:506 inc/classes/class-form-styles.php:573
331
- #: inc/classes/class-form-styles.php:646 inc/classes/class-form-styles.php:764
332
  msgid "Colors"
333
  msgstr ""
334
 
335
- #: inc/classes/class-form-styles.php:510
336
  msgid "Primary"
337
  msgstr ""
338
 
339
- #: inc/classes/class-form-styles.php:515
340
  msgid "Success"
341
  msgstr ""
342
 
343
- #: inc/classes/class-form-styles.php:520
344
  msgid "Error"
345
  msgstr ""
346
 
347
- #: inc/classes/class-form-styles.php:525 inc/classes/class-form-styles.php:529
348
  msgid "Form title"
349
  msgstr ""
350
 
351
- #: inc/classes/class-form-styles.php:534 inc/classes/class-form-styles.php:759
352
  msgid "Alignment"
353
  msgstr ""
354
 
355
- #: inc/classes/class-form-styles.php:539
356
  msgid "Font size"
357
  msgstr ""
358
 
359
- #: inc/classes/class-form-styles.php:544
360
  msgid "Part borders & spacing"
361
  msgstr ""
362
 
363
- #: inc/classes/class-form-styles.php:548 inc/classes/class-form-styles.php:577
364
- #: inc/classes/class-form-styles.php:734 inc/classes/class-form-styles.php:778
365
  msgid "Border"
366
  msgstr ""
367
 
368
- #: inc/classes/class-form-styles.php:553
369
  msgid "Border location"
370
  msgstr ""
371
 
372
- #: inc/classes/class-form-styles.php:558 inc/classes/class-form-styles.php:739
373
  msgid "Border radius"
374
  msgstr ""
375
 
376
- #: inc/classes/class-form-styles.php:563
377
  msgid "Outer padding"
378
  msgstr ""
379
 
380
- #: inc/classes/class-form-styles.php:568
381
  msgid "Inner padding"
382
  msgstr ""
383
 
384
- #: inc/classes/class-form-styles.php:582
385
  msgid "Border on focus"
386
  msgstr ""
387
 
388
- #: inc/classes/class-form-styles.php:587 inc/classes/class-form-styles.php:768
 
389
  msgid "Background"
390
  msgstr ""
391
 
392
- #: inc/classes/class-form-styles.php:592
393
  msgid "Disable transitions on part colors"
394
  msgstr ""
395
 
396
- #: inc/classes/class-form-styles.php:597
397
  msgid "Part labels & text"
398
  msgstr ""
399
 
400
- #: inc/classes/class-form-styles.php:601
401
  msgid "Part titles"
402
  msgstr ""
403
 
404
- #: inc/classes/class-form-styles.php:606
405
  msgid "Toggle placeholder on part focus"
406
  msgstr ""
407
 
408
- #: inc/classes/class-form-styles.php:611
409
  msgid "Title alignment"
410
  msgstr ""
411
 
412
- #: inc/classes/class-form-styles.php:616
413
  msgid "Title font size"
414
  msgstr ""
415
 
416
- #: inc/classes/class-form-styles.php:621
417
  msgid "Title font weight"
418
  msgstr ""
419
 
420
- #: inc/classes/class-form-styles.php:626
421
  msgid "Description alignment"
422
  msgstr ""
423
 
424
- #: inc/classes/class-form-styles.php:631
425
  msgid "Description font size"
426
  msgstr ""
427
 
428
- #: inc/classes/class-form-styles.php:636
429
  msgid "Placeholder &amp; Value alignment"
430
  msgstr ""
431
 
432
- #: inc/classes/class-form-styles.php:641
433
  msgid "Value font size"
434
  msgstr ""
435
 
436
- #: inc/classes/class-form-styles.php:650
437
  #: inc/classes/parts/class-part-title.php:8
438
- #: inc/classes/parts/class-part-title.php:26
439
  #: inc/templates/parts/customize-address.php:4
440
  #: inc/templates/parts/customize-checkbox.php:4
441
  #: inc/templates/parts/customize-date.php:4
@@ -455,11 +456,11 @@ msgstr ""
455
  msgid "Title"
456
  msgstr ""
457
 
458
- #: inc/classes/class-form-styles.php:655
459
  msgid "Value"
460
  msgstr ""
461
 
462
- #: inc/classes/class-form-styles.php:660
463
  #: inc/classes/parts/class-part-placeholder.php:8
464
  #: inc/templates/parts/customize-address.php:32
465
  #: inc/templates/parts/customize-email.php:32
@@ -471,62 +472,85 @@ msgstr ""
471
  msgid "Placeholder"
472
  msgstr ""
473
 
474
- #: inc/classes/class-form-styles.php:670
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  msgid "Checkboxes & Radios"
476
  msgstr ""
477
 
478
- #: inc/classes/class-form-styles.php:675
479
  msgid "Checkbox & Radio background"
480
  msgstr ""
481
 
482
- #: inc/classes/class-form-styles.php:680
483
  msgid "Checkbox & Radio background focused"
484
  msgstr ""
485
 
486
- #: inc/classes/class-form-styles.php:685
487
  msgid "Checkbox & Radio checkmark"
488
  msgstr ""
489
 
490
- #: inc/classes/class-form-styles.php:690
491
  #: inc/classes/parts/class-part-rating.php:9
492
  #: inc/classes/parts/class-part-rating.php:29
493
  msgid "Rating"
494
  msgstr ""
495
 
496
- #: inc/classes/class-form-styles.php:695
497
  msgid "Rating star color"
498
  msgstr ""
499
 
500
- #: inc/classes/class-form-styles.php:700
501
  msgid "Rating star color on hover"
502
  msgstr ""
503
 
504
- #: inc/classes/class-form-styles.php:705
505
  #: inc/classes/parts/class-part-table.php:8
506
  msgid "Table"
507
  msgstr ""
508
 
509
- #: inc/classes/class-form-styles.php:710
510
  msgid "Odd row primary"
511
  msgstr ""
512
 
513
- #: inc/classes/class-form-styles.php:715
514
  msgid "Odd row secondary"
515
  msgstr ""
516
 
517
- #: inc/classes/class-form-styles.php:720
518
  msgid "Even row primary"
519
  msgstr ""
520
 
521
- #: inc/classes/class-form-styles.php:725
522
  msgid "Even row secondary"
523
  msgstr ""
524
 
525
- #: inc/classes/class-form-styles.php:730
526
  msgid "Submit button"
527
  msgstr ""
528
 
529
- #: inc/classes/class-form-styles.php:744
530
  #: inc/templates/parts/customize-address.php:74
531
  #: inc/templates/parts/customize-checkbox.php:51
532
  #: inc/templates/parts/customize-date.php:97
@@ -534,12 +558,12 @@ msgstr ""
534
  #: inc/templates/parts/customize-legal.php:4
535
  #: inc/templates/parts/customize-multi-line-text.php:42
536
  #: inc/templates/parts/customize-number.php:71
537
- #: inc/templates/parts/customize-phone.php:60
538
  #: inc/templates/parts/customize-placeholder.php:26
539
  #: inc/templates/parts/customize-radio.php:51
540
  #: inc/templates/parts/customize-rating.php:36
541
  #: inc/templates/parts/customize-scale.php:83
542
- #: inc/templates/parts/customize-select.php:45
543
  #: inc/templates/parts/customize-single-line-text.php:42
544
  #: inc/templates/parts/customize-table.php:67
545
  #: inc/templates/parts/customize-title.php:36
@@ -547,34 +571,19 @@ msgstr ""
547
  msgid "Width"
548
  msgstr ""
549
 
550
- #: inc/classes/class-form-styles.php:749
551
  msgid "Font Size"
552
  msgstr ""
553
 
554
- #: inc/classes/class-form-styles.php:754
555
  msgid "Font Weight"
556
  msgstr ""
557
 
558
- #: inc/classes/class-form-styles.php:773
559
- msgid "Background focused"
560
- msgstr ""
561
-
562
- #: inc/classes/class-form-styles.php:783
563
- #: inc/classes/parts/class-part-multi-line-text.php:28
564
- #: inc/classes/parts/class-part-single-line-text.php:28
565
- #: inc/templates/parts/customize-placeholder.php:21
566
- msgid "Text"
567
- msgstr ""
568
-
569
- #: inc/classes/class-form-styles.php:788
570
- msgid "Text focused"
571
- msgstr ""
572
-
573
- #: inc/classes/class-form-styles.php:793
574
  msgid "Disable transitions on submit button"
575
  msgstr ""
576
 
577
- #: inc/classes/class-happyforms-plugin.php:140
578
  msgid "HappyForms Index"
579
  msgstr ""
580
 
@@ -582,30 +591,34 @@ msgstr ""
582
  msgid "HappyForms"
583
  msgstr ""
584
 
585
- #: inc/classes/class-happyforms-plugin.php:159
586
- #: inc/classes/class-happyforms-plugin.php:160
587
  msgid "Add New"
588
  msgstr ""
589
 
590
- #: inc/classes/class-happyforms-plugin.php:168
591
- #: inc/classes/class-happyforms-plugin.php:169
592
  msgid "Responses"
593
  msgstr ""
594
 
595
- #: inc/classes/class-happyforms-plugin.php:180
596
- #: inc/classes/class-happyforms-plugin.php:181
597
  msgid "Welcome"
598
  msgstr ""
599
 
600
- #: inc/classes/class-happyforms-plugin.php:277
601
  msgid "HappyForm"
602
  msgstr ""
603
 
604
- #: inc/classes/class-happyforms-plugin.php:281
605
  msgid "New HappyForm"
606
  msgstr ""
607
 
608
- #: inc/classes/class-happyforms-plugin.php:394
 
 
 
 
609
  msgid "Add HappyForms"
610
  msgstr ""
611
 
@@ -895,15 +908,15 @@ msgstr ""
895
  #: inc/classes/parts/class-part-multi-line-text.php:141
896
  #: inc/classes/parts/class-part-number.php:175
897
  #: inc/classes/parts/class-part-number.php:179
898
- #: inc/classes/parts/class-part-phone.php:398
899
- #: inc/classes/parts/class-part-phone.php:402
900
  #: inc/classes/parts/class-part-radio.php:165
901
  #: inc/classes/parts/class-part-rating.php:125
902
  #: inc/classes/parts/class-part-scale.php:163
903
- #: inc/classes/parts/class-part-select.php:159
904
  #: inc/classes/parts/class-part-single-line-text.php:124
905
  #: inc/classes/parts/class-part-table.php:198
906
- #: inc/classes/parts/class-part-title.php:154
907
  #: inc/classes/parts/class-part-website-url.php:124
908
  msgid "This field is required."
909
  msgstr ""
@@ -1015,7 +1028,7 @@ msgid "Confirm Number"
1015
  msgstr ""
1016
 
1017
  #: inc/classes/parts/class-part-number.php:183
1018
- #: inc/classes/parts/class-part-phone.php:406
1019
  msgid "Number and confirmation number are not matching."
1020
  msgstr ""
1021
 
@@ -1028,7 +1041,7 @@ msgstr ""
1028
  msgid "For phone numbers. Includes country specific formatting."
1029
  msgstr ""
1030
 
1031
- #: inc/classes/parts/class-part-phone.php:71
1032
  msgid "Confirm Phone"
1033
  msgstr ""
1034
 
@@ -1075,7 +1088,7 @@ msgstr ""
1075
  msgid "For selecting one option from a long list. Default value adjustable."
1076
  msgstr ""
1077
 
1078
- #: inc/classes/parts/class-part-select.php:167
1079
  msgid "Select values are not valid."
1080
  msgstr ""
1081
 
@@ -1095,31 +1108,31 @@ msgstr ""
1095
  msgid "For displaying personal honorifics."
1096
  msgstr ""
1097
 
1098
- #: inc/classes/parts/class-part-title.php:94
1099
  msgid "Mr."
1100
  msgstr ""
1101
 
1102
- #: inc/classes/parts/class-part-title.php:95
1103
  msgid "Mrs."
1104
  msgstr ""
1105
 
1106
- #: inc/classes/parts/class-part-title.php:96
1107
  msgid "Ms."
1108
  msgstr ""
1109
 
1110
- #: inc/classes/parts/class-part-title.php:97
1111
  msgid "Miss"
1112
  msgstr ""
1113
 
1114
- #: inc/classes/parts/class-part-title.php:98
1115
  msgid "Prof."
1116
  msgstr ""
1117
 
1118
- #: inc/classes/parts/class-part-title.php:99
1119
  msgid "Dr."
1120
  msgstr ""
1121
 
1122
- #: inc/classes/parts/class-part-title.php:161
1123
  msgid "Values is not valid."
1124
  msgstr ""
1125
 
@@ -1240,971 +1253,971 @@ msgstr ""
1240
  msgid "December"
1241
  msgstr ""
1242
 
1243
- #: inc/helpers/helper-misc.php:172
1244
  msgid "How are we doing? Please rate"
1245
  msgstr ""
1246
 
1247
- #: inc/helpers/helper-misc.php:172
1248
  msgid "on"
1249
  msgstr ""
1250
 
1251
- #: inc/helpers/helper-misc.php:172
1252
  msgid "to help us spread the word."
1253
  msgstr ""
1254
 
1255
- #: inc/helpers/helper-misc.php:226
1256
  msgid "Afghanistan"
1257
  msgstr ""
1258
 
1259
- #: inc/helpers/helper-misc.php:227
1260
  msgid "Albania"
1261
  msgstr ""
1262
 
1263
- #: inc/helpers/helper-misc.php:228
1264
  msgid "Algeria"
1265
  msgstr ""
1266
 
1267
- #: inc/helpers/helper-misc.php:229
1268
  msgid "American Samoa"
1269
  msgstr ""
1270
 
1271
- #: inc/helpers/helper-misc.php:230
1272
  msgid "Andorra"
1273
  msgstr ""
1274
 
1275
- #: inc/helpers/helper-misc.php:231
1276
  msgid "Angola"
1277
  msgstr ""
1278
 
1279
- #: inc/helpers/helper-misc.php:232
1280
  msgid "Anguilla"
1281
  msgstr ""
1282
 
1283
- #: inc/helpers/helper-misc.php:233
1284
  msgid "Antarctica"
1285
  msgstr ""
1286
 
1287
- #: inc/helpers/helper-misc.php:234
1288
  msgid "Antigua and Barbuda"
1289
  msgstr ""
1290
 
1291
- #: inc/helpers/helper-misc.php:235
1292
  msgid "Argentina"
1293
  msgstr ""
1294
 
1295
- #: inc/helpers/helper-misc.php:236
1296
  msgid "Armenia"
1297
  msgstr ""
1298
 
1299
- #: inc/helpers/helper-misc.php:237
1300
  msgid "Aruba"
1301
  msgstr ""
1302
 
1303
- #: inc/helpers/helper-misc.php:238
1304
  msgid "Australia"
1305
  msgstr ""
1306
 
1307
- #: inc/helpers/helper-misc.php:239
1308
  msgid "Austria"
1309
  msgstr ""
1310
 
1311
- #: inc/helpers/helper-misc.php:240
1312
  msgid "Azerbaijan"
1313
  msgstr ""
1314
 
1315
- #: inc/helpers/helper-misc.php:241
1316
  msgid "Bahamas"
1317
  msgstr ""
1318
 
1319
- #: inc/helpers/helper-misc.php:242
1320
  msgid "Bahrain"
1321
  msgstr ""
1322
 
1323
- #: inc/helpers/helper-misc.php:243
1324
  msgid "Bangladesh"
1325
  msgstr ""
1326
 
1327
- #: inc/helpers/helper-misc.php:244
1328
  msgid "Barbados"
1329
  msgstr ""
1330
 
1331
- #: inc/helpers/helper-misc.php:245
1332
  msgid "Belarus"
1333
  msgstr ""
1334
 
1335
- #: inc/helpers/helper-misc.php:246
1336
  msgid "Belgium"
1337
  msgstr ""
1338
 
1339
- #: inc/helpers/helper-misc.php:247
1340
  msgid "Belize"
1341
  msgstr ""
1342
 
1343
- #: inc/helpers/helper-misc.php:248
1344
  msgid "Benin"
1345
  msgstr ""
1346
 
1347
- #: inc/helpers/helper-misc.php:249
1348
  msgid "Bermuda"
1349
  msgstr ""
1350
 
1351
- #: inc/helpers/helper-misc.php:250
1352
  msgid "Bhutan"
1353
  msgstr ""
1354
 
1355
- #: inc/helpers/helper-misc.php:251
1356
  msgid "Bolivia"
1357
  msgstr ""
1358
 
1359
- #: inc/helpers/helper-misc.php:252
1360
  msgid "Bosnia and Herzegowina"
1361
  msgstr ""
1362
 
1363
- #: inc/helpers/helper-misc.php:253
1364
  msgid "Botswana"
1365
  msgstr ""
1366
 
1367
- #: inc/helpers/helper-misc.php:254
1368
  msgid "Bouvet Island"
1369
  msgstr ""
1370
 
1371
- #: inc/helpers/helper-misc.php:255
1372
  msgid "Brazil"
1373
  msgstr ""
1374
 
1375
- #: inc/helpers/helper-misc.php:256
1376
  msgid "British Indian Ocean Territory"
1377
  msgstr ""
1378
 
1379
- #: inc/helpers/helper-misc.php:257
1380
  msgid "Brunei Darussalam"
1381
  msgstr ""
1382
 
1383
- #: inc/helpers/helper-misc.php:258
1384
  msgid "Bulgaria"
1385
  msgstr ""
1386
 
1387
- #: inc/helpers/helper-misc.php:259
1388
  msgid "Burkina Faso"
1389
  msgstr ""
1390
 
1391
- #: inc/helpers/helper-misc.php:260
1392
  msgid "Burundi"
1393
  msgstr ""
1394
 
1395
- #: inc/helpers/helper-misc.php:261
1396
  msgid "Cambodia"
1397
  msgstr ""
1398
 
1399
- #: inc/helpers/helper-misc.php:262
1400
  msgid "Cameroon"
1401
  msgstr ""
1402
 
1403
- #: inc/helpers/helper-misc.php:263
1404
  msgid "Canada"
1405
  msgstr ""
1406
 
1407
- #: inc/helpers/helper-misc.php:264
1408
  msgid "Cape Verde"
1409
  msgstr ""
1410
 
1411
- #: inc/helpers/helper-misc.php:265
1412
  msgid "Cayman Islands"
1413
  msgstr ""
1414
 
1415
- #: inc/helpers/helper-misc.php:266
1416
  msgid "Central African Republic"
1417
  msgstr ""
1418
 
1419
- #: inc/helpers/helper-misc.php:267
1420
  msgid "Chad"
1421
  msgstr ""
1422
 
1423
- #: inc/helpers/helper-misc.php:268
1424
  msgid "Chile"
1425
  msgstr ""
1426
 
1427
- #: inc/helpers/helper-misc.php:269
1428
  msgid "China"
1429
  msgstr ""
1430
 
1431
- #: inc/helpers/helper-misc.php:270
1432
  msgid "Christmas Island"
1433
  msgstr ""
1434
 
1435
- #: inc/helpers/helper-misc.php:271
1436
  msgid "Cocos (Keeling) Islands"
1437
  msgstr ""
1438
 
1439
- #: inc/helpers/helper-misc.php:272
1440
  msgid "Colombia"
1441
  msgstr ""
1442
 
1443
- #: inc/helpers/helper-misc.php:273
1444
  msgid "Comoros"
1445
  msgstr ""
1446
 
1447
- #: inc/helpers/helper-misc.php:274
1448
  msgid "Congo"
1449
  msgstr ""
1450
 
1451
- #: inc/helpers/helper-misc.php:275
1452
  msgid "Congo, the Democratic Republic of the"
1453
  msgstr ""
1454
 
1455
- #: inc/helpers/helper-misc.php:276
1456
  msgid "Cook Islands"
1457
  msgstr ""
1458
 
1459
- #: inc/helpers/helper-misc.php:277
1460
  msgid "Costa Rica"
1461
  msgstr ""
1462
 
1463
- #: inc/helpers/helper-misc.php:278
1464
  msgid "Cote d'Ivoire"
1465
  msgstr ""
1466
 
1467
- #: inc/helpers/helper-misc.php:279
1468
  msgid "Croatia (Hrvatska)"
1469
  msgstr ""
1470
 
1471
- #: inc/helpers/helper-misc.php:280
1472
  msgid "Cuba"
1473
  msgstr ""
1474
 
1475
- #: inc/helpers/helper-misc.php:281
1476
  msgid "Cyprus"
1477
  msgstr ""
1478
 
1479
- #: inc/helpers/helper-misc.php:282
1480
  msgid "Czech Republic"
1481
  msgstr ""
1482
 
1483
- #: inc/helpers/helper-misc.php:283
1484
  msgid "Denmark"
1485
  msgstr ""
1486
 
1487
- #: inc/helpers/helper-misc.php:284
1488
  msgid "Djibouti"
1489
  msgstr ""
1490
 
1491
- #: inc/helpers/helper-misc.php:285
1492
  msgid "Dominica"
1493
  msgstr ""
1494
 
1495
- #: inc/helpers/helper-misc.php:286
1496
  msgid "Dominican Republic"
1497
  msgstr ""
1498
 
1499
- #: inc/helpers/helper-misc.php:287
1500
  msgid "East Timor"
1501
  msgstr ""
1502
 
1503
- #: inc/helpers/helper-misc.php:288
1504
  msgid "Ecuador"
1505
  msgstr ""
1506
 
1507
- #: inc/helpers/helper-misc.php:289
1508
  msgid "Egypt"
1509
  msgstr ""
1510
 
1511
- #: inc/helpers/helper-misc.php:290
1512
  msgid "El Salvador"
1513
  msgstr ""
1514
 
1515
- #: inc/helpers/helper-misc.php:291
1516
  msgid "Equatorial Guinea"
1517
  msgstr ""
1518
 
1519
- #: inc/helpers/helper-misc.php:292
1520
  msgid "Eritrea"
1521
  msgstr ""
1522
 
1523
- #: inc/helpers/helper-misc.php:293
1524
  msgid "Estonia"
1525
  msgstr ""
1526
 
1527
- #: inc/helpers/helper-misc.php:294
1528
  msgid "Ethiopia"
1529
  msgstr ""
1530
 
1531
- #: inc/helpers/helper-misc.php:295
1532
  msgid "Falkland Islands (Malvinas)"
1533
  msgstr ""
1534
 
1535
- #: inc/helpers/helper-misc.php:296
1536
  msgid "Faroe Islands"
1537
  msgstr ""
1538
 
1539
- #: inc/helpers/helper-misc.php:297
1540
  msgid "Fiji"
1541
  msgstr ""
1542
 
1543
- #: inc/helpers/helper-misc.php:298
1544
  msgid "Finland"
1545
  msgstr ""
1546
 
1547
- #: inc/helpers/helper-misc.php:299
1548
  msgid "France"
1549
  msgstr ""
1550
 
1551
- #: inc/helpers/helper-misc.php:300
1552
  msgid "France Metropolitan"
1553
  msgstr ""
1554
 
1555
- #: inc/helpers/helper-misc.php:301
1556
  msgid "French Guiana"
1557
  msgstr ""
1558
 
1559
- #: inc/helpers/helper-misc.php:302
1560
  msgid "French Polynesia"
1561
  msgstr ""
1562
 
1563
- #: inc/helpers/helper-misc.php:303
1564
  msgid "French Southern Territories"
1565
  msgstr ""
1566
 
1567
- #: inc/helpers/helper-misc.php:304
1568
  msgid "Gabon"
1569
  msgstr ""
1570
 
1571
- #: inc/helpers/helper-misc.php:305
1572
  msgid "Gambia"
1573
  msgstr ""
1574
 
1575
- #: inc/helpers/helper-misc.php:306
1576
  msgid "Georgia"
1577
  msgstr ""
1578
 
1579
- #: inc/helpers/helper-misc.php:307
1580
  msgid "Germany"
1581
  msgstr ""
1582
 
1583
- #: inc/helpers/helper-misc.php:308
1584
  msgid "Ghana"
1585
  msgstr ""
1586
 
1587
- #: inc/helpers/helper-misc.php:309
1588
  msgid "Gibraltar"
1589
  msgstr ""
1590
 
1591
- #: inc/helpers/helper-misc.php:310
1592
  msgid "Greece"
1593
  msgstr ""
1594
 
1595
- #: inc/helpers/helper-misc.php:311
1596
  msgid "Greenland"
1597
  msgstr ""
1598
 
1599
- #: inc/helpers/helper-misc.php:312
1600
  msgid "Grenada"
1601
  msgstr ""
1602
 
1603
- #: inc/helpers/helper-misc.php:313
1604
  msgid "Guadeloupe"
1605
  msgstr ""
1606
 
1607
- #: inc/helpers/helper-misc.php:314
1608
  msgid "Guam"
1609
  msgstr ""
1610
 
1611
- #: inc/helpers/helper-misc.php:315
1612
  msgid "Guatemala"
1613
  msgstr ""
1614
 
1615
- #: inc/helpers/helper-misc.php:316
1616
  msgid "Guinea"
1617
  msgstr ""
1618
 
1619
- #: inc/helpers/helper-misc.php:317
1620
  msgid "Guinea-Bissau"
1621
  msgstr ""
1622
 
1623
- #: inc/helpers/helper-misc.php:318
1624
  msgid "Guyana"
1625
  msgstr ""
1626
 
1627
- #: inc/helpers/helper-misc.php:319
1628
  msgid "Haiti"
1629
  msgstr ""
1630
 
1631
- #: inc/helpers/helper-misc.php:320
1632
  msgid "Heard and Mc Donald Islands"
1633
  msgstr ""
1634
 
1635
- #: inc/helpers/helper-misc.php:321
1636
  msgid "Holy See (Vatican City State)"
1637
  msgstr ""
1638
 
1639
- #: inc/helpers/helper-misc.php:322
1640
  msgid "Honduras"
1641
  msgstr ""
1642
 
1643
- #: inc/helpers/helper-misc.php:323
1644
  msgid "Hong Kong"
1645
  msgstr ""
1646
 
1647
- #: inc/helpers/helper-misc.php:324
1648
  msgid "Hungary"
1649
  msgstr ""
1650
 
1651
- #: inc/helpers/helper-misc.php:325
1652
  msgid "Iceland"
1653
  msgstr ""
1654
 
1655
- #: inc/helpers/helper-misc.php:326
1656
  msgid "India"
1657
  msgstr ""
1658
 
1659
- #: inc/helpers/helper-misc.php:327
1660
  msgid "Indonesia"
1661
  msgstr ""
1662
 
1663
- #: inc/helpers/helper-misc.php:328
1664
  msgid "Iran (Islamic Republic of)"
1665
  msgstr ""
1666
 
1667
- #: inc/helpers/helper-misc.php:329
1668
  msgid "Iraq"
1669
  msgstr ""
1670
 
1671
- #: inc/helpers/helper-misc.php:330
1672
  msgid "Ireland"
1673
  msgstr ""
1674
 
1675
- #: inc/helpers/helper-misc.php:331
1676
  msgid "Israel"
1677
  msgstr ""
1678
 
1679
- #: inc/helpers/helper-misc.php:332
1680
  msgid "Italy"
1681
  msgstr ""
1682
 
1683
- #: inc/helpers/helper-misc.php:333
1684
  msgid "Jamaica"
1685
  msgstr ""
1686
 
1687
- #: inc/helpers/helper-misc.php:334
1688
  msgid "Japan"
1689
  msgstr ""
1690
 
1691
- #: inc/helpers/helper-misc.php:335
1692
  msgid "Jordan"
1693
  msgstr ""
1694
 
1695
- #: inc/helpers/helper-misc.php:336
1696
  msgid "Kazakhstan"
1697
  msgstr ""
1698
 
1699
- #: inc/helpers/helper-misc.php:337
1700
  msgid "Kenya"
1701
  msgstr ""
1702
 
1703
- #: inc/helpers/helper-misc.php:338
1704
  msgid "Kiribati"
1705
  msgstr ""
1706
 
1707
- #: inc/helpers/helper-misc.php:339
1708
  msgid "Korea, Democratic People's Republic of"
1709
  msgstr ""
1710
 
1711
- #: inc/helpers/helper-misc.php:340
1712
  msgid "Korea, Republic of"
1713
  msgstr ""
1714
 
1715
- #: inc/helpers/helper-misc.php:341
1716
  msgid "Kuwait"
1717
  msgstr ""
1718
 
1719
- #: inc/helpers/helper-misc.php:342
1720
  msgid "Kyrgyzstan"
1721
  msgstr ""
1722
 
1723
- #: inc/helpers/helper-misc.php:343
1724
  msgid "Lao, People's Democratic Republic"
1725
  msgstr ""
1726
 
1727
- #: inc/helpers/helper-misc.php:344
1728
  msgid "Latvia"
1729
  msgstr ""
1730
 
1731
- #: inc/helpers/helper-misc.php:345
1732
  msgid "Lebanon"
1733
  msgstr ""
1734
 
1735
- #: inc/helpers/helper-misc.php:346
1736
  msgid "Lesotho"
1737
  msgstr ""
1738
 
1739
- #: inc/helpers/helper-misc.php:347
1740
  msgid "Liberia"
1741
  msgstr ""
1742
 
1743
- #: inc/helpers/helper-misc.php:348
1744
  msgid "Libyan Arab Jamahiriya"
1745
  msgstr ""
1746
 
1747
- #: inc/helpers/helper-misc.php:349
1748
  msgid "Liechtenstein"
1749
  msgstr ""
1750
 
1751
- #: inc/helpers/helper-misc.php:350
1752
  msgid "Lithuania"
1753
  msgstr ""
1754
 
1755
- #: inc/helpers/helper-misc.php:351
1756
  msgid "Luxembourg"
1757
  msgstr ""
1758
 
1759
- #: inc/helpers/helper-misc.php:352
1760
  msgid "Macau"
1761
  msgstr ""
1762
 
1763
- #: inc/helpers/helper-misc.php:353
1764
  msgid "Macedonia, The Former Yugoslav Republic of"
1765
  msgstr ""
1766
 
1767
- #: inc/helpers/helper-misc.php:354
1768
  msgid "Madagascar"
1769
  msgstr ""
1770
 
1771
- #: inc/helpers/helper-misc.php:355
1772
  msgid "Malawi"
1773
  msgstr ""
1774
 
1775
- #: inc/helpers/helper-misc.php:356
1776
  msgid "Malaysia"
1777
  msgstr ""
1778
 
1779
- #: inc/helpers/helper-misc.php:357
1780
  msgid "Maldives"
1781
  msgstr ""
1782
 
1783
- #: inc/helpers/helper-misc.php:358
1784
  msgid "Mali"
1785
  msgstr ""
1786
 
1787
- #: inc/helpers/helper-misc.php:359
1788
  msgid "Malta"
1789
  msgstr ""
1790
 
1791
- #: inc/helpers/helper-misc.php:360
1792
  msgid "Marshall Islands"
1793
  msgstr ""
1794
 
1795
- #: inc/helpers/helper-misc.php:361
1796
  msgid "Martinique"
1797
  msgstr ""
1798
 
1799
- #: inc/helpers/helper-misc.php:362
1800
  msgid "Mauritania"
1801
  msgstr ""
1802
 
1803
- #: inc/helpers/helper-misc.php:363
1804
  msgid "Mauritius"
1805
  msgstr ""
1806
 
1807
- #: inc/helpers/helper-misc.php:364
1808
  msgid "Mayotte"
1809
  msgstr ""
1810
 
1811
- #: inc/helpers/helper-misc.php:365
1812
  msgid "Mexico"
1813
  msgstr ""
1814
 
1815
- #: inc/helpers/helper-misc.php:366
1816
  msgid "Micronesia, Federated States of"
1817
  msgstr ""
1818
 
1819
- #: inc/helpers/helper-misc.php:367
1820
  msgid "Moldova, Republic of"
1821
  msgstr ""
1822
 
1823
- #: inc/helpers/helper-misc.php:368
1824
  msgid "Monaco"
1825
  msgstr ""
1826
 
1827
- #: inc/helpers/helper-misc.php:369
1828
  msgid "Mongolia"
1829
  msgstr ""
1830
 
1831
- #: inc/helpers/helper-misc.php:370
1832
  msgid "Montserrat"
1833
  msgstr ""
1834
 
1835
- #: inc/helpers/helper-misc.php:371
1836
  msgid "Morocco"
1837
  msgstr ""
1838
 
1839
- #: inc/helpers/helper-misc.php:372
1840
  msgid "Mozambique"
1841
  msgstr ""
1842
 
1843
- #: inc/helpers/helper-misc.php:373
1844
  msgid "Myanmar"
1845
  msgstr ""
1846
 
1847
- #: inc/helpers/helper-misc.php:374
1848
  msgid "Namibia"
1849
  msgstr ""
1850
 
1851
- #: inc/helpers/helper-misc.php:375
1852
  msgid "Nauru"
1853
  msgstr ""
1854
 
1855
- #: inc/helpers/helper-misc.php:376
1856
  msgid "Nepal"
1857
  msgstr ""
1858
 
1859
- #: inc/helpers/helper-misc.php:377
1860
  msgid "Netherlands"
1861
  msgstr ""
1862
 
1863
- #: inc/helpers/helper-misc.php:378
1864
  msgid "Netherlands Antilles"
1865
  msgstr ""
1866
 
1867
- #: inc/helpers/helper-misc.php:379
1868
  msgid "New Caledonia"
1869
  msgstr ""
1870
 
1871
- #: inc/helpers/helper-misc.php:380
1872
  msgid "New Zealand"
1873
  msgstr ""
1874
 
1875
- #: inc/helpers/helper-misc.php:381
1876
  msgid "Nicaragua"
1877
  msgstr ""
1878
 
1879
- #: inc/helpers/helper-misc.php:382
1880
  msgid "Niger"
1881
  msgstr ""
1882
 
1883
- #: inc/helpers/helper-misc.php:383
1884
  msgid "Nigeria"
1885
  msgstr ""
1886
 
1887
- #: inc/helpers/helper-misc.php:384
1888
  msgid "Niue"
1889
  msgstr ""
1890
 
1891
- #: inc/helpers/helper-misc.php:385
1892
  msgid "Norfolk Island"
1893
  msgstr ""
1894
 
1895
- #: inc/helpers/helper-misc.php:386
1896
  msgid "Northern Mariana Islands"
1897
  msgstr ""
1898
 
1899
- #: inc/helpers/helper-misc.php:387
1900
  msgid "Norway"
1901
  msgstr ""
1902
 
1903
- #: inc/helpers/helper-misc.php:388
1904
  msgid "Oman"
1905
  msgstr ""
1906
 
1907
- #: inc/helpers/helper-misc.php:389
1908
  msgid "Pakistan"
1909
  msgstr ""
1910
 
1911
- #: inc/helpers/helper-misc.php:390
1912
  msgid "Palau"
1913
  msgstr ""
1914
 
1915
- #: inc/helpers/helper-misc.php:391
1916
  msgid "Panama"
1917
  msgstr ""
1918
 
1919
- #: inc/helpers/helper-misc.php:392
1920
  msgid "Papua New Guinea"
1921
  msgstr ""
1922
 
1923
- #: inc/helpers/helper-misc.php:393
1924
  msgid "Paraguay"
1925
  msgstr ""
1926
 
1927
- #: inc/helpers/helper-misc.php:394
1928
  msgid "Peru"
1929
  msgstr ""
1930
 
1931
- #: inc/helpers/helper-misc.php:395
1932
  msgid "Philippines"
1933
  msgstr ""
1934
 
1935
- #: inc/helpers/helper-misc.php:396
1936
  msgid "Pitcairn"
1937
  msgstr ""
1938
 
1939
- #: inc/helpers/helper-misc.php:397
1940
  msgid "Poland"
1941
  msgstr ""
1942
 
1943
- #: inc/helpers/helper-misc.php:398
1944
  msgid "Portugal"
1945
  msgstr ""
1946
 
1947
- #: inc/helpers/helper-misc.php:399
1948
  msgid "Puerto Rico"
1949
  msgstr ""
1950
 
1951
- #: inc/helpers/helper-misc.php:400
1952
  msgid "Qatar"
1953
  msgstr ""
1954
 
1955
- #: inc/helpers/helper-misc.php:401
1956
  msgid "Reunion"
1957
  msgstr ""
1958
 
1959
- #: inc/helpers/helper-misc.php:402
1960
  msgid "Romania"
1961
  msgstr ""
1962
 
1963
- #: inc/helpers/helper-misc.php:403
1964
  msgid "Russian Federation"
1965
  msgstr ""
1966
 
1967
- #: inc/helpers/helper-misc.php:404
1968
  msgid "Rwanda"
1969
  msgstr ""
1970
 
1971
- #: inc/helpers/helper-misc.php:405
1972
  msgid "Saint Kitts and Nevis"
1973
  msgstr ""
1974
 
1975
- #: inc/helpers/helper-misc.php:406
1976
  msgid "Saint Lucia"
1977
  msgstr ""
1978
 
1979
- #: inc/helpers/helper-misc.php:407
1980
  msgid "Saint Vincent and the Grenadines"
1981
  msgstr ""
1982
 
1983
- #: inc/helpers/helper-misc.php:408
1984
  msgid "Samoa"
1985
  msgstr ""
1986
 
1987
- #: inc/helpers/helper-misc.php:409
1988
  msgid "San Marino"
1989
  msgstr ""
1990
 
1991
- #: inc/helpers/helper-misc.php:410
1992
  msgid "Sao Tome and Principe"
1993
  msgstr ""
1994
 
1995
- #: inc/helpers/helper-misc.php:411
1996
  msgid "Saudi Arabia"
1997
  msgstr ""
1998
 
1999
- #: inc/helpers/helper-misc.php:412
2000
  msgid "Senegal"
2001
  msgstr ""
2002
 
2003
- #: inc/helpers/helper-misc.php:413
2004
  msgid "Seychelles"
2005
  msgstr ""
2006
 
2007
- #: inc/helpers/helper-misc.php:414
2008
  msgid "Sierra Leone"
2009
  msgstr ""
2010
 
2011
- #: inc/helpers/helper-misc.php:415
2012
  msgid "Singapore"
2013
  msgstr ""
2014
 
2015
- #: inc/helpers/helper-misc.php:416
2016
  msgid "Slovakia (Slovak Republic)"
2017
  msgstr ""
2018
 
2019
- #: inc/helpers/helper-misc.php:417
2020
  msgid "Slovenia"
2021
  msgstr ""
2022
 
2023
- #: inc/helpers/helper-misc.php:418
2024
  msgid "Solomon Islands"
2025
  msgstr ""
2026
 
2027
- #: inc/helpers/helper-misc.php:419
2028
  msgid "Somalia"
2029
  msgstr ""
2030
 
2031
- #: inc/helpers/helper-misc.php:420
2032
  msgid "South Africa"
2033
  msgstr ""
2034
 
2035
- #: inc/helpers/helper-misc.php:421
2036
  msgid "South Georgia and the South Sandwich Islands"
2037
  msgstr ""
2038
 
2039
- #: inc/helpers/helper-misc.php:422
2040
  msgid "Spain"
2041
  msgstr ""
2042
 
2043
- #: inc/helpers/helper-misc.php:423
2044
  msgid "Sri Lanka"
2045
  msgstr ""
2046
 
2047
- #: inc/helpers/helper-misc.php:424
2048
  msgid "St. Helena"
2049
  msgstr ""
2050
 
2051
- #: inc/helpers/helper-misc.php:425
2052
  msgid "St. Pierre and Miquelon"
2053
  msgstr ""
2054
 
2055
- #: inc/helpers/helper-misc.php:426
2056
  msgid "Sudan"
2057
  msgstr ""
2058
 
2059
- #: inc/helpers/helper-misc.php:427
2060
  msgid "Suriname"
2061
  msgstr ""
2062
 
2063
- #: inc/helpers/helper-misc.php:428
2064
  msgid "Svalbard and Jan Mayen Islands"
2065
  msgstr ""
2066
 
2067
- #: inc/helpers/helper-misc.php:429
2068
  msgid "Swaziland"
2069
  msgstr ""
2070
 
2071
- #: inc/helpers/helper-misc.php:430
2072
  msgid "Sweden"
2073
  msgstr ""
2074
 
2075
- #: inc/helpers/helper-misc.php:431
2076
  msgid "Switzerland"
2077
  msgstr ""
2078
 
2079
- #: inc/helpers/helper-misc.php:432
2080
  msgid "Syrian Arab Republic"
2081
  msgstr ""
2082
 
2083
- #: inc/helpers/helper-misc.php:433
2084
  msgid "Taiwan, Province of China"
2085
  msgstr ""
2086
 
2087
- #: inc/helpers/helper-misc.php:434
2088
  msgid "Tajikistan"
2089
  msgstr ""
2090
 
2091
- #: inc/helpers/helper-misc.php:435
2092
  msgid "Tanzania, United Republic of"
2093
  msgstr ""
2094
 
2095
- #: inc/helpers/helper-misc.php:436
2096
  msgid "Thailand"
2097
  msgstr ""
2098
 
2099
- #: inc/helpers/helper-misc.php:437
2100
  msgid "Togo"
2101
  msgstr ""
2102
 
2103
- #: inc/helpers/helper-misc.php:438
2104
  msgid "Tokelau"
2105
  msgstr ""
2106
 
2107
- #: inc/helpers/helper-misc.php:439
2108
  msgid "Tonga"
2109
  msgstr ""
2110
 
2111
- #: inc/helpers/helper-misc.php:440
2112
  msgid "Trinidad and Tobago"
2113
  msgstr ""
2114
 
2115
- #: inc/helpers/helper-misc.php:441
2116
  msgid "Tunisia"
2117
  msgstr ""
2118
 
2119
- #: inc/helpers/helper-misc.php:442
2120
  msgid "Turkey"
2121
  msgstr ""
2122
 
2123
- #: inc/helpers/helper-misc.php:443
2124
  msgid "Turkmenistan"
2125
  msgstr ""
2126
 
2127
- #: inc/helpers/helper-misc.php:444
2128
  msgid "Turks and Caicos Islands"
2129
  msgstr ""
2130
 
2131
- #: inc/helpers/helper-misc.php:445
2132
  msgid "Tuvalu"
2133
  msgstr ""
2134
 
2135
- #: inc/helpers/helper-misc.php:446
2136
  msgid "Uganda"
2137
  msgstr ""
2138
 
2139
- #: inc/helpers/helper-misc.php:447
2140
  msgid "Ukraine"
2141
  msgstr ""
2142
 
2143
- #: inc/helpers/helper-misc.php:448
2144
  msgid "United Arab Emirates"
2145
  msgstr ""
2146
 
2147
- #: inc/helpers/helper-misc.php:449
2148
  msgid "United Kingdom"
2149
  msgstr ""
2150
 
2151
- #: inc/helpers/helper-misc.php:450
2152
  msgid "United States"
2153
  msgstr ""
2154
 
2155
- #: inc/helpers/helper-misc.php:451
2156
  msgid "United States Minor Outlying Islands"
2157
  msgstr ""
2158
 
2159
- #: inc/helpers/helper-misc.php:452
2160
  msgid "Uruguay"
2161
  msgstr ""
2162
 
2163
- #: inc/helpers/helper-misc.php:453
2164
  msgid "Uzbekistan"
2165
  msgstr ""
2166
 
2167
- #: inc/helpers/helper-misc.php:454
2168
  msgid "Vanuatu"
2169
  msgstr ""
2170
 
2171
- #: inc/helpers/helper-misc.php:455
2172
  msgid "Venezuela"
2173
  msgstr ""
2174
 
2175
- #: inc/helpers/helper-misc.php:456
2176
  msgid "Vietnam"
2177
  msgstr ""
2178
 
2179
- #: inc/helpers/helper-misc.php:457
2180
  msgid "Virgin Islands (British)"
2181
  msgstr ""
2182
 
2183
- #: inc/helpers/helper-misc.php:458
2184
  msgid "Virgin Islands (U.S.)"
2185
  msgstr ""
2186
 
2187
- #: inc/helpers/helper-misc.php:459
2188
  msgid "Wallis and Futuna Islands"
2189
  msgstr ""
2190
 
2191
- #: inc/helpers/helper-misc.php:460
2192
  msgid "Western Sahara"
2193
  msgstr ""
2194
 
2195
- #: inc/helpers/helper-misc.php:461
2196
  msgid "Yemen"
2197
  msgstr ""
2198
 
2199
- #: inc/helpers/helper-misc.php:462
2200
  msgid "Yugoslavia"
2201
  msgstr ""
2202
 
2203
- #: inc/helpers/helper-misc.php:463
2204
  msgid "Zambia"
2205
  msgstr ""
2206
 
2207
- #: inc/helpers/helper-misc.php:464
2208
  msgid "Zimbabwe"
2209
  msgstr ""
2210
 
@@ -2216,10 +2229,6 @@ msgstr ""
2216
  msgid "Insert"
2217
  msgstr ""
2218
 
2219
- #: inc/templates/admin-form-modal.php:19
2220
- msgid "Insert HappyForm"
2221
- msgstr ""
2222
-
2223
  #: inc/templates/admin-message-edit.php:25
2224
  msgid "Previous response"
2225
  msgstr ""
@@ -2305,7 +2314,7 @@ msgstr ""
2305
  #: inc/templates/customize-form-part-footer.php:3
2306
  #: inc/templates/parts/customize-checkbox.php:80
2307
  #: inc/templates/parts/customize-radio.php:84
2308
- #: inc/templates/parts/customize-select.php:74
2309
  #: inc/templates/parts/customize-table.php:96
2310
  #: inc/templates/parts/customize-table.php:107
2311
  msgid "Delete"
@@ -2555,7 +2564,7 @@ msgstr ""
2555
  #: inc/templates/parts/customize-number.php:19
2556
  #: inc/templates/parts/customize-number.php:80
2557
  #: inc/templates/parts/customize-phone.php:19
2558
- #: inc/templates/parts/customize-phone.php:69
2559
  #: inc/templates/parts/customize-placeholder.php:17
2560
  #: inc/templates/parts/customize-placeholder.php:35
2561
  #: inc/templates/parts/customize-radio.php:17
@@ -2565,7 +2574,7 @@ msgstr ""
2565
  #: inc/templates/parts/customize-scale.php:17
2566
  #: inc/templates/parts/customize-scale.php:92
2567
  #: inc/templates/parts/customize-select.php:17
2568
- #: inc/templates/parts/customize-select.php:54
2569
  #: inc/templates/parts/customize-single-line-text.php:19
2570
  #: inc/templates/parts/customize-single-line-text.php:51
2571
  #: inc/templates/parts/customize-table.php:17
@@ -2626,12 +2635,12 @@ msgstr ""
2626
  #: inc/templates/parts/customize-legal.php:6
2627
  #: inc/templates/parts/customize-multi-line-text.php:44
2628
  #: inc/templates/parts/customize-number.php:73
2629
- #: inc/templates/parts/customize-phone.php:62
2630
  #: inc/templates/parts/customize-placeholder.php:28
2631
  #: inc/templates/parts/customize-radio.php:53
2632
  #: inc/templates/parts/customize-rating.php:38
2633
  #: inc/templates/parts/customize-scale.php:85
2634
- #: inc/templates/parts/customize-select.php:47
2635
  #: inc/templates/parts/customize-single-line-text.php:44
2636
  #: inc/templates/parts/customize-table.php:69
2637
  #: inc/templates/parts/customize-title.php:38
@@ -2699,12 +2708,12 @@ msgstr ""
2699
  #: inc/templates/parts/customize-legal.php:7
2700
  #: inc/templates/parts/customize-multi-line-text.php:45
2701
  #: inc/templates/parts/customize-number.php:74
2702
- #: inc/templates/parts/customize-phone.php:63
2703
  #: inc/templates/parts/customize-placeholder.php:29
2704
  #: inc/templates/parts/customize-radio.php:54
2705
  #: inc/templates/parts/customize-rating.php:39
2706
  #: inc/templates/parts/customize-scale.php:86
2707
- #: inc/templates/parts/customize-select.php:48
2708
  #: inc/templates/parts/customize-single-line-text.php:45
2709
  #: inc/templates/parts/customize-table.php:70
2710
  #: inc/templates/parts/customize-title.php:39
@@ -2719,12 +2728,12 @@ msgstr ""
2719
  #: inc/templates/parts/customize-legal.php:8
2720
  #: inc/templates/parts/customize-multi-line-text.php:46
2721
  #: inc/templates/parts/customize-number.php:75
2722
- #: inc/templates/parts/customize-phone.php:64
2723
  #: inc/templates/parts/customize-placeholder.php:30
2724
  #: inc/templates/parts/customize-radio.php:55
2725
  #: inc/templates/parts/customize-rating.php:40
2726
  #: inc/templates/parts/customize-scale.php:87
2727
- #: inc/templates/parts/customize-select.php:49
2728
  #: inc/templates/parts/customize-single-line-text.php:46
2729
  #: inc/templates/parts/customize-table.php:71
2730
  #: inc/templates/parts/customize-title.php:40
@@ -2739,12 +2748,12 @@ msgstr ""
2739
  #: inc/templates/parts/customize-legal.php:17
2740
  #: inc/templates/parts/customize-multi-line-text.php:55
2741
  #: inc/templates/parts/customize-number.php:84
2742
- #: inc/templates/parts/customize-phone.php:73
2743
  #: inc/templates/parts/customize-placeholder.php:39
2744
  #: inc/templates/parts/customize-radio.php:64
2745
  #: inc/templates/parts/customize-rating.php:49
2746
  #: inc/templates/parts/customize-scale.php:96
2747
- #: inc/templates/parts/customize-select.php:58
2748
  #: inc/templates/parts/customize-single-line-text.php:55
2749
  #: inc/templates/parts/customize-table.php:80
2750
  #: inc/templates/parts/customize-title.php:49
@@ -2781,7 +2790,7 @@ msgstr ""
2781
 
2782
  #: inc/templates/parts/customize-checkbox.php:73
2783
  #: inc/templates/parts/customize-radio.php:73
2784
- #: inc/templates/parts/customize-select.php:67
2785
  #: inc/templates/parts/customize-table.php:89
2786
  #: inc/templates/parts/customize-table.php:103
2787
  msgid "Label"
@@ -2870,13 +2879,13 @@ msgstr ""
2870
 
2871
  #: inc/templates/parts/customize-email.php:60
2872
  #: inc/templates/parts/customize-number.php:89
2873
- #: inc/templates/parts/customize-phone.php:78
2874
  msgid "Require confirmation of the value"
2875
  msgstr ""
2876
 
2877
  #: inc/templates/parts/customize-email.php:64
2878
  #: inc/templates/parts/customize-number.php:93
2879
- #: inc/templates/parts/customize-phone.php:82
2880
  msgid "Confirmation field title"
2881
  msgstr ""
2882
 
@@ -2893,7 +2902,6 @@ msgid "Maximum accepted value"
2893
  msgstr ""
2894
 
2895
  #: inc/templates/parts/customize-number.php:53
2896
- #: inc/templates/parts/customize-phone.php:43
2897
  msgid "Mask this input"
2898
  msgstr ""
2899
 
@@ -2909,12 +2917,20 @@ msgstr ""
2909
  msgid "Prefix"
2910
  msgstr ""
2911
 
 
 
 
 
2912
  #: inc/templates/parts/customize-phone.php:48
2913
- msgid "Pre-format phone number region"
 
 
 
 
2914
  msgstr ""
2915
 
2916
  #: inc/templates/parts/customize-radio.php:81
2917
- #: inc/templates/parts/customize-select.php:71
2918
  msgid "Make this option default"
2919
  msgstr ""
2920
 
@@ -2954,6 +2970,10 @@ msgstr ""
2954
  msgid "options"
2955
  msgstr ""
2956
 
 
 
 
 
2957
  #: inc/templates/parts/customize-table.php:31
2958
  msgid "Each row is required"
2959
  msgstr ""
@@ -2997,27 +3017,33 @@ msgstr ""
2997
  msgid "City"
2998
  msgstr ""
2999
 
3000
- #: inc/templates/parts/frontend-date-day.php:5
 
 
3001
  msgid "Day"
3002
  msgstr ""
3003
 
3004
- #: inc/templates/parts/frontend-date-month.php:5
 
 
3005
  msgid "Month"
3006
  msgstr ""
3007
 
3008
- #: inc/templates/parts/frontend-date.php:25
 
 
3009
  msgid "Year"
3010
  msgstr ""
3011
 
3012
- #: inc/templates/parts/frontend-date.php:86
3013
  msgid "Period"
3014
  msgstr ""
3015
 
3016
- #: inc/templates/parts/frontend-date.php:87
3017
  msgid "AM"
3018
  msgstr ""
3019
 
3020
- #: inc/templates/parts/frontend-date.php:88
3021
  msgid "PM"
3022
  msgstr ""
3023
 
@@ -3025,8 +3051,15 @@ msgstr ""
3025
  msgid "Stars"
3026
  msgstr ""
3027
 
3028
- #: inc/templates/parts/frontend-select.php:10
3029
- #: inc/templates/parts/frontend-title.php:7
 
 
 
 
 
 
 
3030
  msgid "Select"
3031
  msgstr ""
3032
 
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.5.5\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2018-08-03 09:44:49+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
126
 
127
  #: inc/classes/class-form-controller.php:74
128
  #: inc/classes/class-form-controller.php:84
129
+ #: inc/classes/class-happyforms-plugin.php:153
130
+ #: inc/classes/class-happyforms-plugin.php:154
131
  msgid "All Forms"
132
  msgstr ""
133
 
303
  msgid "Full width"
304
  msgstr ""
305
 
306
+ #: inc/classes/class-form-styles.php:507
307
  msgid "General"
308
  msgstr ""
309
 
310
+ #: inc/classes/class-form-styles.php:511
311
  msgid "Form width"
312
  msgstr ""
313
 
314
+ #: inc/classes/class-form-styles.php:516
315
  msgid "Direction"
316
  msgstr ""
317
 
318
+ #: inc/classes/class-form-styles.php:521 inc/classes/class-form-styles.php:695
319
  msgid "Required text"
320
  msgstr ""
321
 
322
+ #: inc/classes/class-form-styles.php:526
323
  msgid "Disable submit button until form is valid"
324
  msgstr ""
325
 
326
+ #: inc/classes/class-form-styles.php:531
327
  msgid "Font weight"
328
  msgstr ""
329
 
330
+ #: inc/classes/class-form-styles.php:536 inc/classes/class-form-styles.php:603
331
+ #: inc/classes/class-form-styles.php:676 inc/classes/class-form-styles.php:828
332
  msgid "Colors"
333
  msgstr ""
334
 
335
+ #: inc/classes/class-form-styles.php:540
336
  msgid "Primary"
337
  msgstr ""
338
 
339
+ #: inc/classes/class-form-styles.php:545
340
  msgid "Success"
341
  msgstr ""
342
 
343
+ #: inc/classes/class-form-styles.php:550
344
  msgid "Error"
345
  msgstr ""
346
 
347
+ #: inc/classes/class-form-styles.php:555 inc/classes/class-form-styles.php:559
348
  msgid "Form title"
349
  msgstr ""
350
 
351
+ #: inc/classes/class-form-styles.php:564 inc/classes/class-form-styles.php:823
352
  msgid "Alignment"
353
  msgstr ""
354
 
355
+ #: inc/classes/class-form-styles.php:569
356
  msgid "Font size"
357
  msgstr ""
358
 
359
+ #: inc/classes/class-form-styles.php:574
360
  msgid "Part borders & spacing"
361
  msgstr ""
362
 
363
+ #: inc/classes/class-form-styles.php:578 inc/classes/class-form-styles.php:607
364
+ #: inc/classes/class-form-styles.php:798 inc/classes/class-form-styles.php:842
365
  msgid "Border"
366
  msgstr ""
367
 
368
+ #: inc/classes/class-form-styles.php:583
369
  msgid "Border location"
370
  msgstr ""
371
 
372
+ #: inc/classes/class-form-styles.php:588 inc/classes/class-form-styles.php:803
373
  msgid "Border radius"
374
  msgstr ""
375
 
376
+ #: inc/classes/class-form-styles.php:593
377
  msgid "Outer padding"
378
  msgstr ""
379
 
380
+ #: inc/classes/class-form-styles.php:598
381
  msgid "Inner padding"
382
  msgstr ""
383
 
384
+ #: inc/classes/class-form-styles.php:612
385
  msgid "Border on focus"
386
  msgstr ""
387
 
388
+ #: inc/classes/class-form-styles.php:617 inc/classes/class-form-styles.php:705
389
+ #: inc/classes/class-form-styles.php:714 inc/classes/class-form-styles.php:832
390
  msgid "Background"
391
  msgstr ""
392
 
393
+ #: inc/classes/class-form-styles.php:622
394
  msgid "Disable transitions on part colors"
395
  msgstr ""
396
 
397
+ #: inc/classes/class-form-styles.php:627
398
  msgid "Part labels & text"
399
  msgstr ""
400
 
401
+ #: inc/classes/class-form-styles.php:631
402
  msgid "Part titles"
403
  msgstr ""
404
 
405
+ #: inc/classes/class-form-styles.php:636
406
  msgid "Toggle placeholder on part focus"
407
  msgstr ""
408
 
409
+ #: inc/classes/class-form-styles.php:641
410
  msgid "Title alignment"
411
  msgstr ""
412
 
413
+ #: inc/classes/class-form-styles.php:646
414
  msgid "Title font size"
415
  msgstr ""
416
 
417
+ #: inc/classes/class-form-styles.php:651
418
  msgid "Title font weight"
419
  msgstr ""
420
 
421
+ #: inc/classes/class-form-styles.php:656
422
  msgid "Description alignment"
423
  msgstr ""
424
 
425
+ #: inc/classes/class-form-styles.php:661
426
  msgid "Description font size"
427
  msgstr ""
428
 
429
+ #: inc/classes/class-form-styles.php:666
430
  msgid "Placeholder &amp; Value alignment"
431
  msgstr ""
432
 
433
+ #: inc/classes/class-form-styles.php:671
434
  msgid "Value font size"
435
  msgstr ""
436
 
437
+ #: inc/classes/class-form-styles.php:680
438
  #: inc/classes/parts/class-part-title.php:8
439
+ #: inc/classes/parts/class-part-title.php:28
440
  #: inc/templates/parts/customize-address.php:4
441
  #: inc/templates/parts/customize-checkbox.php:4
442
  #: inc/templates/parts/customize-date.php:4
456
  msgid "Title"
457
  msgstr ""
458
 
459
+ #: inc/classes/class-form-styles.php:685
460
  msgid "Value"
461
  msgstr ""
462
 
463
+ #: inc/classes/class-form-styles.php:690
464
  #: inc/classes/parts/class-part-placeholder.php:8
465
  #: inc/templates/parts/customize-address.php:32
466
  #: inc/templates/parts/customize-email.php:32
472
  msgid "Placeholder"
473
  msgstr ""
474
 
475
+ #: inc/classes/class-form-styles.php:700
476
+ msgid "Dropdowns"
477
+ msgstr ""
478
+
479
+ #: inc/classes/class-form-styles.php:710
480
+ msgid "Items"
481
+ msgstr ""
482
+
483
+ #: inc/classes/class-form-styles.php:719 inc/classes/class-form-styles.php:847
484
+ #: inc/classes/parts/class-part-multi-line-text.php:28
485
+ #: inc/classes/parts/class-part-single-line-text.php:28
486
+ #: inc/templates/parts/customize-placeholder.php:21
487
+ msgid "Text"
488
+ msgstr ""
489
+
490
+ #: inc/classes/class-form-styles.php:724 inc/classes/class-form-styles.php:837
491
+ msgid "Background focused"
492
+ msgstr ""
493
+
494
+ #: inc/classes/class-form-styles.php:729 inc/classes/class-form-styles.php:852
495
+ msgid "Text focused"
496
+ msgstr ""
497
+
498
+ #: inc/classes/class-form-styles.php:734
499
  msgid "Checkboxes & Radios"
500
  msgstr ""
501
 
502
+ #: inc/classes/class-form-styles.php:739
503
  msgid "Checkbox & Radio background"
504
  msgstr ""
505
 
506
+ #: inc/classes/class-form-styles.php:744
507
  msgid "Checkbox & Radio background focused"
508
  msgstr ""
509
 
510
+ #: inc/classes/class-form-styles.php:749
511
  msgid "Checkbox & Radio checkmark"
512
  msgstr ""
513
 
514
+ #: inc/classes/class-form-styles.php:754
515
  #: inc/classes/parts/class-part-rating.php:9
516
  #: inc/classes/parts/class-part-rating.php:29
517
  msgid "Rating"
518
  msgstr ""
519
 
520
+ #: inc/classes/class-form-styles.php:759
521
  msgid "Rating star color"
522
  msgstr ""
523
 
524
+ #: inc/classes/class-form-styles.php:764
525
  msgid "Rating star color on hover"
526
  msgstr ""
527
 
528
+ #: inc/classes/class-form-styles.php:769
529
  #: inc/classes/parts/class-part-table.php:8
530
  msgid "Table"
531
  msgstr ""
532
 
533
+ #: inc/classes/class-form-styles.php:774
534
  msgid "Odd row primary"
535
  msgstr ""
536
 
537
+ #: inc/classes/class-form-styles.php:779
538
  msgid "Odd row secondary"
539
  msgstr ""
540
 
541
+ #: inc/classes/class-form-styles.php:784
542
  msgid "Even row primary"
543
  msgstr ""
544
 
545
+ #: inc/classes/class-form-styles.php:789
546
  msgid "Even row secondary"
547
  msgstr ""
548
 
549
+ #: inc/classes/class-form-styles.php:794
550
  msgid "Submit button"
551
  msgstr ""
552
 
553
+ #: inc/classes/class-form-styles.php:808
554
  #: inc/templates/parts/customize-address.php:74
555
  #: inc/templates/parts/customize-checkbox.php:51
556
  #: inc/templates/parts/customize-date.php:97
558
  #: inc/templates/parts/customize-legal.php:4
559
  #: inc/templates/parts/customize-multi-line-text.php:42
560
  #: inc/templates/parts/customize-number.php:71
561
+ #: inc/templates/parts/customize-phone.php:65
562
  #: inc/templates/parts/customize-placeholder.php:26
563
  #: inc/templates/parts/customize-radio.php:51
564
  #: inc/templates/parts/customize-rating.php:36
565
  #: inc/templates/parts/customize-scale.php:83
566
+ #: inc/templates/parts/customize-select.php:50
567
  #: inc/templates/parts/customize-single-line-text.php:42
568
  #: inc/templates/parts/customize-table.php:67
569
  #: inc/templates/parts/customize-title.php:36
571
  msgid "Width"
572
  msgstr ""
573
 
574
+ #: inc/classes/class-form-styles.php:813
575
  msgid "Font Size"
576
  msgstr ""
577
 
578
+ #: inc/classes/class-form-styles.php:818
579
  msgid "Font Weight"
580
  msgstr ""
581
 
582
+ #: inc/classes/class-form-styles.php:857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
583
  msgid "Disable transitions on submit button"
584
  msgstr ""
585
 
586
+ #: inc/classes/class-happyforms-plugin.php:142
587
  msgid "HappyForms Index"
588
  msgstr ""
589
 
591
  msgid "HappyForms"
592
  msgstr ""
593
 
594
+ #: inc/classes/class-happyforms-plugin.php:161
595
+ #: inc/classes/class-happyforms-plugin.php:162
596
  msgid "Add New"
597
  msgstr ""
598
 
599
+ #: inc/classes/class-happyforms-plugin.php:170
600
+ #: inc/classes/class-happyforms-plugin.php:171
601
  msgid "Responses"
602
  msgstr ""
603
 
604
+ #: inc/classes/class-happyforms-plugin.php:182
605
+ #: inc/classes/class-happyforms-plugin.php:183
606
  msgid "Welcome"
607
  msgstr ""
608
 
609
+ #: inc/classes/class-happyforms-plugin.php:279
610
  msgid "HappyForm"
611
  msgstr ""
612
 
613
+ #: inc/classes/class-happyforms-plugin.php:283
614
  msgid "New HappyForm"
615
  msgstr ""
616
 
617
+ #: inc/classes/class-happyforms-plugin.php:416
618
+ msgid "Insert HappyForm"
619
+ msgstr ""
620
+
621
+ #: inc/classes/class-happyforms-plugin.php:416
622
  msgid "Add HappyForms"
623
  msgstr ""
624
 
908
  #: inc/classes/parts/class-part-multi-line-text.php:141
909
  #: inc/classes/parts/class-part-number.php:175
910
  #: inc/classes/parts/class-part-number.php:179
911
+ #: inc/classes/parts/class-part-phone.php:391
912
+ #: inc/classes/parts/class-part-phone.php:395
913
  #: inc/classes/parts/class-part-radio.php:165
914
  #: inc/classes/parts/class-part-rating.php:125
915
  #: inc/classes/parts/class-part-scale.php:163
916
+ #: inc/classes/parts/class-part-select.php:163
917
  #: inc/classes/parts/class-part-single-line-text.php:124
918
  #: inc/classes/parts/class-part-table.php:198
919
+ #: inc/classes/parts/class-part-title.php:156
920
  #: inc/classes/parts/class-part-website-url.php:124
921
  msgid "This field is required."
922
  msgstr ""
1028
  msgstr ""
1029
 
1030
  #: inc/classes/parts/class-part-number.php:183
1031
+ #: inc/classes/parts/class-part-phone.php:399
1032
  msgid "Number and confirmation number are not matching."
1033
  msgstr ""
1034
 
1041
  msgid "For phone numbers. Includes country specific formatting."
1042
  msgstr ""
1043
 
1044
+ #: inc/classes/parts/class-part-phone.php:75
1045
  msgid "Confirm Phone"
1046
  msgstr ""
1047
 
1088
  msgid "For selecting one option from a long list. Default value adjustable."
1089
  msgstr ""
1090
 
1091
+ #: inc/classes/parts/class-part-select.php:171
1092
  msgid "Select values are not valid."
1093
  msgstr ""
1094
 
1108
  msgid "For displaying personal honorifics."
1109
  msgstr ""
1110
 
1111
+ #: inc/classes/parts/class-part-title.php:96
1112
  msgid "Mr."
1113
  msgstr ""
1114
 
1115
+ #: inc/classes/parts/class-part-title.php:97
1116
  msgid "Mrs."
1117
  msgstr ""
1118
 
1119
+ #: inc/classes/parts/class-part-title.php:98
1120
  msgid "Ms."
1121
  msgstr ""
1122
 
1123
+ #: inc/classes/parts/class-part-title.php:99
1124
  msgid "Miss"
1125
  msgstr ""
1126
 
1127
+ #: inc/classes/parts/class-part-title.php:100
1128
  msgid "Prof."
1129
  msgstr ""
1130
 
1131
+ #: inc/classes/parts/class-part-title.php:101
1132
  msgid "Dr."
1133
  msgstr ""
1134
 
1135
+ #: inc/classes/parts/class-part-title.php:163
1136
  msgid "Values is not valid."
1137
  msgstr ""
1138
 
1253
  msgid "December"
1254
  msgstr ""
1255
 
1256
+ #: inc/helpers/helper-misc.php:173
1257
  msgid "How are we doing? Please rate"
1258
  msgstr ""
1259
 
1260
+ #: inc/helpers/helper-misc.php:173
1261
  msgid "on"
1262
  msgstr ""
1263
 
1264
+ #: inc/helpers/helper-misc.php:173
1265
  msgid "to help us spread the word."
1266
  msgstr ""
1267
 
1268
+ #: inc/helpers/helper-misc.php:227
1269
  msgid "Afghanistan"
1270
  msgstr ""
1271
 
1272
+ #: inc/helpers/helper-misc.php:228
1273
  msgid "Albania"
1274
  msgstr ""
1275
 
1276
+ #: inc/helpers/helper-misc.php:229
1277
  msgid "Algeria"
1278
  msgstr ""
1279
 
1280
+ #: inc/helpers/helper-misc.php:230
1281
  msgid "American Samoa"
1282
  msgstr ""
1283
 
1284
+ #: inc/helpers/helper-misc.php:231
1285
  msgid "Andorra"
1286
  msgstr ""
1287
 
1288
+ #: inc/helpers/helper-misc.php:232
1289
  msgid "Angola"
1290
  msgstr ""
1291
 
1292
+ #: inc/helpers/helper-misc.php:233
1293
  msgid "Anguilla"
1294
  msgstr ""
1295
 
1296
+ #: inc/helpers/helper-misc.php:234
1297
  msgid "Antarctica"
1298
  msgstr ""
1299
 
1300
+ #: inc/helpers/helper-misc.php:235
1301
  msgid "Antigua and Barbuda"
1302
  msgstr ""
1303
 
1304
+ #: inc/helpers/helper-misc.php:236
1305
  msgid "Argentina"
1306
  msgstr ""
1307
 
1308
+ #: inc/helpers/helper-misc.php:237
1309
  msgid "Armenia"
1310
  msgstr ""
1311
 
1312
+ #: inc/helpers/helper-misc.php:238
1313
  msgid "Aruba"
1314
  msgstr ""
1315
 
1316
+ #: inc/helpers/helper-misc.php:239
1317
  msgid "Australia"
1318
  msgstr ""
1319
 
1320
+ #: inc/helpers/helper-misc.php:240
1321
  msgid "Austria"
1322
  msgstr ""
1323
 
1324
+ #: inc/helpers/helper-misc.php:241
1325
  msgid "Azerbaijan"
1326
  msgstr ""
1327
 
1328
+ #: inc/helpers/helper-misc.php:242
1329
  msgid "Bahamas"
1330
  msgstr ""
1331
 
1332
+ #: inc/helpers/helper-misc.php:243
1333
  msgid "Bahrain"
1334
  msgstr ""
1335
 
1336
+ #: inc/helpers/helper-misc.php:244
1337
  msgid "Bangladesh"
1338
  msgstr ""
1339
 
1340
+ #: inc/helpers/helper-misc.php:245
1341
  msgid "Barbados"
1342
  msgstr ""
1343
 
1344
+ #: inc/helpers/helper-misc.php:246
1345
  msgid "Belarus"
1346
  msgstr ""
1347
 
1348
+ #: inc/helpers/helper-misc.php:247
1349
  msgid "Belgium"
1350
  msgstr ""
1351
 
1352
+ #: inc/helpers/helper-misc.php:248
1353
  msgid "Belize"
1354
  msgstr ""
1355
 
1356
+ #: inc/helpers/helper-misc.php:249
1357
  msgid "Benin"
1358
  msgstr ""
1359
 
1360
+ #: inc/helpers/helper-misc.php:250
1361
  msgid "Bermuda"
1362
  msgstr ""
1363
 
1364
+ #: inc/helpers/helper-misc.php:251
1365
  msgid "Bhutan"
1366
  msgstr ""
1367
 
1368
+ #: inc/helpers/helper-misc.php:252
1369
  msgid "Bolivia"
1370
  msgstr ""
1371
 
1372
+ #: inc/helpers/helper-misc.php:253
1373
  msgid "Bosnia and Herzegowina"
1374
  msgstr ""
1375
 
1376
+ #: inc/helpers/helper-misc.php:254
1377
  msgid "Botswana"
1378
  msgstr ""
1379
 
1380
+ #: inc/helpers/helper-misc.php:255
1381
  msgid "Bouvet Island"
1382
  msgstr ""
1383
 
1384
+ #: inc/helpers/helper-misc.php:256
1385
  msgid "Brazil"
1386
  msgstr ""
1387
 
1388
+ #: inc/helpers/helper-misc.php:257
1389
  msgid "British Indian Ocean Territory"
1390
  msgstr ""
1391
 
1392
+ #: inc/helpers/helper-misc.php:258
1393
  msgid "Brunei Darussalam"
1394
  msgstr ""
1395
 
1396
+ #: inc/helpers/helper-misc.php:259
1397
  msgid "Bulgaria"
1398
  msgstr ""
1399
 
1400
+ #: inc/helpers/helper-misc.php:260
1401
  msgid "Burkina Faso"
1402
  msgstr ""
1403
 
1404
+ #: inc/helpers/helper-misc.php:261
1405
  msgid "Burundi"
1406
  msgstr ""
1407
 
1408
+ #: inc/helpers/helper-misc.php:262
1409
  msgid "Cambodia"
1410
  msgstr ""
1411
 
1412
+ #: inc/helpers/helper-misc.php:263
1413
  msgid "Cameroon"
1414
  msgstr ""
1415
 
1416
+ #: inc/helpers/helper-misc.php:264
1417
  msgid "Canada"
1418
  msgstr ""
1419
 
1420
+ #: inc/helpers/helper-misc.php:265
1421
  msgid "Cape Verde"
1422
  msgstr ""
1423
 
1424
+ #: inc/helpers/helper-misc.php:266
1425
  msgid "Cayman Islands"
1426
  msgstr ""
1427
 
1428
+ #: inc/helpers/helper-misc.php:267
1429
  msgid "Central African Republic"
1430
  msgstr ""
1431
 
1432
+ #: inc/helpers/helper-misc.php:268
1433
  msgid "Chad"
1434
  msgstr ""
1435
 
1436
+ #: inc/helpers/helper-misc.php:269
1437
  msgid "Chile"
1438
  msgstr ""
1439
 
1440
+ #: inc/helpers/helper-misc.php:270
1441
  msgid "China"
1442
  msgstr ""
1443
 
1444
+ #: inc/helpers/helper-misc.php:271
1445
  msgid "Christmas Island"
1446
  msgstr ""
1447
 
1448
+ #: inc/helpers/helper-misc.php:272
1449
  msgid "Cocos (Keeling) Islands"
1450
  msgstr ""
1451
 
1452
+ #: inc/helpers/helper-misc.php:273
1453
  msgid "Colombia"
1454
  msgstr ""
1455
 
1456
+ #: inc/helpers/helper-misc.php:274
1457
  msgid "Comoros"
1458
  msgstr ""
1459
 
1460
+ #: inc/helpers/helper-misc.php:275
1461
  msgid "Congo"
1462
  msgstr ""
1463
 
1464
+ #: inc/helpers/helper-misc.php:276
1465
  msgid "Congo, the Democratic Republic of the"
1466
  msgstr ""
1467
 
1468
+ #: inc/helpers/helper-misc.php:277
1469
  msgid "Cook Islands"
1470
  msgstr ""
1471
 
1472
+ #: inc/helpers/helper-misc.php:278
1473
  msgid "Costa Rica"
1474
  msgstr ""
1475
 
1476
+ #: inc/helpers/helper-misc.php:279
1477
  msgid "Cote d'Ivoire"
1478
  msgstr ""
1479
 
1480
+ #: inc/helpers/helper-misc.php:280
1481
  msgid "Croatia (Hrvatska)"
1482
  msgstr ""
1483
 
1484
+ #: inc/helpers/helper-misc.php:281
1485
  msgid "Cuba"
1486
  msgstr ""
1487
 
1488
+ #: inc/helpers/helper-misc.php:282
1489
  msgid "Cyprus"
1490
  msgstr ""
1491
 
1492
+ #: inc/helpers/helper-misc.php:283
1493
  msgid "Czech Republic"
1494
  msgstr ""
1495
 
1496
+ #: inc/helpers/helper-misc.php:284
1497
  msgid "Denmark"
1498
  msgstr ""
1499
 
1500
+ #: inc/helpers/helper-misc.php:285
1501
  msgid "Djibouti"
1502
  msgstr ""
1503
 
1504
+ #: inc/helpers/helper-misc.php:286
1505
  msgid "Dominica"
1506
  msgstr ""
1507
 
1508
+ #: inc/helpers/helper-misc.php:287
1509
  msgid "Dominican Republic"
1510
  msgstr ""
1511
 
1512
+ #: inc/helpers/helper-misc.php:288
1513
  msgid "East Timor"
1514
  msgstr ""
1515
 
1516
+ #: inc/helpers/helper-misc.php:289
1517
  msgid "Ecuador"
1518
  msgstr ""
1519
 
1520
+ #: inc/helpers/helper-misc.php:290
1521
  msgid "Egypt"
1522
  msgstr ""
1523
 
1524
+ #: inc/helpers/helper-misc.php:291
1525
  msgid "El Salvador"
1526
  msgstr ""
1527
 
1528
+ #: inc/helpers/helper-misc.php:292
1529
  msgid "Equatorial Guinea"
1530
  msgstr ""
1531
 
1532
+ #: inc/helpers/helper-misc.php:293
1533
  msgid "Eritrea"
1534
  msgstr ""
1535
 
1536
+ #: inc/helpers/helper-misc.php:294
1537
  msgid "Estonia"
1538
  msgstr ""
1539
 
1540
+ #: inc/helpers/helper-misc.php:295
1541
  msgid "Ethiopia"
1542
  msgstr ""
1543
 
1544
+ #: inc/helpers/helper-misc.php:296
1545
  msgid "Falkland Islands (Malvinas)"
1546
  msgstr ""
1547
 
1548
+ #: inc/helpers/helper-misc.php:297
1549
  msgid "Faroe Islands"
1550
  msgstr ""
1551
 
1552
+ #: inc/helpers/helper-misc.php:298
1553
  msgid "Fiji"
1554
  msgstr ""
1555
 
1556
+ #: inc/helpers/helper-misc.php:299
1557
  msgid "Finland"
1558
  msgstr ""
1559
 
1560
+ #: inc/helpers/helper-misc.php:300
1561
  msgid "France"
1562
  msgstr ""
1563
 
1564
+ #: inc/helpers/helper-misc.php:301
1565
  msgid "France Metropolitan"
1566
  msgstr ""
1567
 
1568
+ #: inc/helpers/helper-misc.php:302
1569
  msgid "French Guiana"
1570
  msgstr ""
1571
 
1572
+ #: inc/helpers/helper-misc.php:303
1573
  msgid "French Polynesia"
1574
  msgstr ""
1575
 
1576
+ #: inc/helpers/helper-misc.php:304
1577
  msgid "French Southern Territories"
1578
  msgstr ""
1579
 
1580
+ #: inc/helpers/helper-misc.php:305
1581
  msgid "Gabon"
1582
  msgstr ""
1583
 
1584
+ #: inc/helpers/helper-misc.php:306
1585
  msgid "Gambia"
1586
  msgstr ""
1587
 
1588
+ #: inc/helpers/helper-misc.php:307
1589
  msgid "Georgia"
1590
  msgstr ""
1591
 
1592
+ #: inc/helpers/helper-misc.php:308
1593
  msgid "Germany"
1594
  msgstr ""
1595
 
1596
+ #: inc/helpers/helper-misc.php:309
1597
  msgid "Ghana"
1598
  msgstr ""
1599
 
1600
+ #: inc/helpers/helper-misc.php:310
1601
  msgid "Gibraltar"
1602
  msgstr ""
1603
 
1604
+ #: inc/helpers/helper-misc.php:311
1605
  msgid "Greece"
1606
  msgstr ""
1607
 
1608
+ #: inc/helpers/helper-misc.php:312
1609
  msgid "Greenland"
1610
  msgstr ""
1611
 
1612
+ #: inc/helpers/helper-misc.php:313
1613
  msgid "Grenada"
1614
  msgstr ""
1615
 
1616
+ #: inc/helpers/helper-misc.php:314
1617
  msgid "Guadeloupe"
1618
  msgstr ""
1619
 
1620
+ #: inc/helpers/helper-misc.php:315
1621
  msgid "Guam"
1622
  msgstr ""
1623
 
1624
+ #: inc/helpers/helper-misc.php:316
1625
  msgid "Guatemala"
1626
  msgstr ""
1627
 
1628
+ #: inc/helpers/helper-misc.php:317
1629
  msgid "Guinea"
1630
  msgstr ""
1631
 
1632
+ #: inc/helpers/helper-misc.php:318
1633
  msgid "Guinea-Bissau"
1634
  msgstr ""
1635
 
1636
+ #: inc/helpers/helper-misc.php:319
1637
  msgid "Guyana"
1638
  msgstr ""
1639
 
1640
+ #: inc/helpers/helper-misc.php:320
1641
  msgid "Haiti"
1642
  msgstr ""
1643
 
1644
+ #: inc/helpers/helper-misc.php:321
1645
  msgid "Heard and Mc Donald Islands"
1646
  msgstr ""
1647
 
1648
+ #: inc/helpers/helper-misc.php:322
1649
  msgid "Holy See (Vatican City State)"
1650
  msgstr ""
1651
 
1652
+ #: inc/helpers/helper-misc.php:323
1653
  msgid "Honduras"
1654
  msgstr ""
1655
 
1656
+ #: inc/helpers/helper-misc.php:324
1657
  msgid "Hong Kong"
1658
  msgstr ""
1659
 
1660
+ #: inc/helpers/helper-misc.php:325
1661
  msgid "Hungary"
1662
  msgstr ""
1663
 
1664
+ #: inc/helpers/helper-misc.php:326
1665
  msgid "Iceland"
1666
  msgstr ""
1667
 
1668
+ #: inc/helpers/helper-misc.php:327
1669
  msgid "India"
1670
  msgstr ""
1671
 
1672
+ #: inc/helpers/helper-misc.php:328
1673
  msgid "Indonesia"
1674
  msgstr ""
1675
 
1676
+ #: inc/helpers/helper-misc.php:329
1677
  msgid "Iran (Islamic Republic of)"
1678
  msgstr ""
1679
 
1680
+ #: inc/helpers/helper-misc.php:330
1681
  msgid "Iraq"
1682
  msgstr ""
1683
 
1684
+ #: inc/helpers/helper-misc.php:331
1685
  msgid "Ireland"
1686
  msgstr ""
1687
 
1688
+ #: inc/helpers/helper-misc.php:332
1689
  msgid "Israel"
1690
  msgstr ""
1691
 
1692
+ #: inc/helpers/helper-misc.php:333
1693
  msgid "Italy"
1694
  msgstr ""
1695
 
1696
+ #: inc/helpers/helper-misc.php:334
1697
  msgid "Jamaica"
1698
  msgstr ""
1699
 
1700
+ #: inc/helpers/helper-misc.php:335
1701
  msgid "Japan"
1702
  msgstr ""
1703
 
1704
+ #: inc/helpers/helper-misc.php:336
1705
  msgid "Jordan"
1706
  msgstr ""
1707
 
1708
+ #: inc/helpers/helper-misc.php:337
1709
  msgid "Kazakhstan"
1710
  msgstr ""
1711
 
1712
+ #: inc/helpers/helper-misc.php:338
1713
  msgid "Kenya"
1714
  msgstr ""
1715
 
1716
+ #: inc/helpers/helper-misc.php:339
1717
  msgid "Kiribati"
1718
  msgstr ""
1719
 
1720
+ #: inc/helpers/helper-misc.php:340
1721
  msgid "Korea, Democratic People's Republic of"
1722
  msgstr ""
1723
 
1724
+ #: inc/helpers/helper-misc.php:341
1725
  msgid "Korea, Republic of"
1726
  msgstr ""
1727
 
1728
+ #: inc/helpers/helper-misc.php:342
1729
  msgid "Kuwait"
1730
  msgstr ""
1731
 
1732
+ #: inc/helpers/helper-misc.php:343
1733
  msgid "Kyrgyzstan"
1734
  msgstr ""
1735
 
1736
+ #: inc/helpers/helper-misc.php:344
1737
  msgid "Lao, People's Democratic Republic"
1738
  msgstr ""
1739
 
1740
+ #: inc/helpers/helper-misc.php:345
1741
  msgid "Latvia"
1742
  msgstr ""
1743
 
1744
+ #: inc/helpers/helper-misc.php:346
1745
  msgid "Lebanon"
1746
  msgstr ""
1747
 
1748
+ #: inc/helpers/helper-misc.php:347
1749
  msgid "Lesotho"
1750
  msgstr ""
1751
 
1752
+ #: inc/helpers/helper-misc.php:348
1753
  msgid "Liberia"
1754
  msgstr ""
1755
 
1756
+ #: inc/helpers/helper-misc.php:349
1757
  msgid "Libyan Arab Jamahiriya"
1758
  msgstr ""
1759
 
1760
+ #: inc/helpers/helper-misc.php:350
1761
  msgid "Liechtenstein"
1762
  msgstr ""
1763
 
1764
+ #: inc/helpers/helper-misc.php:351
1765
  msgid "Lithuania"
1766
  msgstr ""
1767
 
1768
+ #: inc/helpers/helper-misc.php:352
1769
  msgid "Luxembourg"
1770
  msgstr ""
1771
 
1772
+ #: inc/helpers/helper-misc.php:353
1773
  msgid "Macau"
1774
  msgstr ""
1775
 
1776
+ #: inc/helpers/helper-misc.php:354
1777
  msgid "Macedonia, The Former Yugoslav Republic of"
1778
  msgstr ""
1779
 
1780
+ #: inc/helpers/helper-misc.php:355
1781
  msgid "Madagascar"
1782
  msgstr ""
1783
 
1784
+ #: inc/helpers/helper-misc.php:356
1785
  msgid "Malawi"
1786
  msgstr ""
1787
 
1788
+ #: inc/helpers/helper-misc.php:357
1789
  msgid "Malaysia"
1790
  msgstr ""
1791
 
1792
+ #: inc/helpers/helper-misc.php:358
1793
  msgid "Maldives"
1794
  msgstr ""
1795
 
1796
+ #: inc/helpers/helper-misc.php:359
1797
  msgid "Mali"
1798
  msgstr ""
1799
 
1800
+ #: inc/helpers/helper-misc.php:360
1801
  msgid "Malta"
1802
  msgstr ""
1803
 
1804
+ #: inc/helpers/helper-misc.php:361
1805
  msgid "Marshall Islands"
1806
  msgstr ""
1807
 
1808
+ #: inc/helpers/helper-misc.php:362
1809
  msgid "Martinique"
1810
  msgstr ""
1811
 
1812
+ #: inc/helpers/helper-misc.php:363
1813
  msgid "Mauritania"
1814
  msgstr ""
1815
 
1816
+ #: inc/helpers/helper-misc.php:364
1817
  msgid "Mauritius"
1818
  msgstr ""
1819
 
1820
+ #: inc/helpers/helper-misc.php:365
1821
  msgid "Mayotte"
1822
  msgstr ""
1823
 
1824
+ #: inc/helpers/helper-misc.php:366
1825
  msgid "Mexico"
1826
  msgstr ""
1827
 
1828
+ #: inc/helpers/helper-misc.php:367
1829
  msgid "Micronesia, Federated States of"
1830
  msgstr ""
1831
 
1832
+ #: inc/helpers/helper-misc.php:368
1833
  msgid "Moldova, Republic of"
1834
  msgstr ""
1835
 
1836
+ #: inc/helpers/helper-misc.php:369
1837
  msgid "Monaco"
1838
  msgstr ""
1839
 
1840
+ #: inc/helpers/helper-misc.php:370
1841
  msgid "Mongolia"
1842
  msgstr ""
1843
 
1844
+ #: inc/helpers/helper-misc.php:371
1845
  msgid "Montserrat"
1846
  msgstr ""
1847
 
1848
+ #: inc/helpers/helper-misc.php:372
1849
  msgid "Morocco"
1850
  msgstr ""
1851
 
1852
+ #: inc/helpers/helper-misc.php:373
1853
  msgid "Mozambique"
1854
  msgstr ""
1855
 
1856
+ #: inc/helpers/helper-misc.php:374
1857
  msgid "Myanmar"
1858
  msgstr ""
1859
 
1860
+ #: inc/helpers/helper-misc.php:375
1861
  msgid "Namibia"
1862
  msgstr ""
1863
 
1864
+ #: inc/helpers/helper-misc.php:376
1865
  msgid "Nauru"
1866
  msgstr ""
1867
 
1868
+ #: inc/helpers/helper-misc.php:377
1869
  msgid "Nepal"
1870
  msgstr ""
1871
 
1872
+ #: inc/helpers/helper-misc.php:378
1873
  msgid "Netherlands"
1874
  msgstr ""
1875
 
1876
+ #: inc/helpers/helper-misc.php:379
1877
  msgid "Netherlands Antilles"
1878
  msgstr ""
1879
 
1880
+ #: inc/helpers/helper-misc.php:380
1881
  msgid "New Caledonia"
1882
  msgstr ""
1883
 
1884
+ #: inc/helpers/helper-misc.php:381
1885
  msgid "New Zealand"
1886
  msgstr ""
1887
 
1888
+ #: inc/helpers/helper-misc.php:382
1889
  msgid "Nicaragua"
1890
  msgstr ""
1891
 
1892
+ #: inc/helpers/helper-misc.php:383
1893
  msgid "Niger"
1894
  msgstr ""
1895
 
1896
+ #: inc/helpers/helper-misc.php:384
1897
  msgid "Nigeria"
1898
  msgstr ""
1899
 
1900
+ #: inc/helpers/helper-misc.php:385
1901
  msgid "Niue"
1902
  msgstr ""
1903
 
1904
+ #: inc/helpers/helper-misc.php:386
1905
  msgid "Norfolk Island"
1906
  msgstr ""
1907
 
1908
+ #: inc/helpers/helper-misc.php:387
1909
  msgid "Northern Mariana Islands"
1910
  msgstr ""
1911
 
1912
+ #: inc/helpers/helper-misc.php:388
1913
  msgid "Norway"
1914
  msgstr ""
1915
 
1916
+ #: inc/helpers/helper-misc.php:389
1917
  msgid "Oman"
1918
  msgstr ""
1919
 
1920
+ #: inc/helpers/helper-misc.php:390
1921
  msgid "Pakistan"
1922
  msgstr ""
1923
 
1924
+ #: inc/helpers/helper-misc.php:391
1925
  msgid "Palau"
1926
  msgstr ""
1927
 
1928
+ #: inc/helpers/helper-misc.php:392
1929
  msgid "Panama"
1930
  msgstr ""
1931
 
1932
+ #: inc/helpers/helper-misc.php:393
1933
  msgid "Papua New Guinea"
1934
  msgstr ""
1935
 
1936
+ #: inc/helpers/helper-misc.php:394
1937
  msgid "Paraguay"
1938
  msgstr ""
1939
 
1940
+ #: inc/helpers/helper-misc.php:395
1941
  msgid "Peru"
1942
  msgstr ""
1943
 
1944
+ #: inc/helpers/helper-misc.php:396
1945
  msgid "Philippines"
1946
  msgstr ""
1947
 
1948
+ #: inc/helpers/helper-misc.php:397
1949
  msgid "Pitcairn"
1950
  msgstr ""
1951
 
1952
+ #: inc/helpers/helper-misc.php:398
1953
  msgid "Poland"
1954
  msgstr ""
1955
 
1956
+ #: inc/helpers/helper-misc.php:399
1957
  msgid "Portugal"
1958
  msgstr ""
1959
 
1960
+ #: inc/helpers/helper-misc.php:400
1961
  msgid "Puerto Rico"
1962
  msgstr ""
1963
 
1964
+ #: inc/helpers/helper-misc.php:401
1965
  msgid "Qatar"
1966
  msgstr ""
1967
 
1968
+ #: inc/helpers/helper-misc.php:402
1969
  msgid "Reunion"
1970
  msgstr ""
1971
 
1972
+ #: inc/helpers/helper-misc.php:403
1973
  msgid "Romania"
1974
  msgstr ""
1975
 
1976
+ #: inc/helpers/helper-misc.php:404
1977
  msgid "Russian Federation"
1978
  msgstr ""
1979
 
1980
+ #: inc/helpers/helper-misc.php:405
1981
  msgid "Rwanda"
1982
  msgstr ""
1983
 
1984
+ #: inc/helpers/helper-misc.php:406
1985
  msgid "Saint Kitts and Nevis"
1986
  msgstr ""
1987
 
1988
+ #: inc/helpers/helper-misc.php:407
1989
  msgid "Saint Lucia"
1990
  msgstr ""
1991
 
1992
+ #: inc/helpers/helper-misc.php:408
1993
  msgid "Saint Vincent and the Grenadines"
1994
  msgstr ""
1995
 
1996
+ #: inc/helpers/helper-misc.php:409
1997
  msgid "Samoa"
1998
  msgstr ""
1999
 
2000
+ #: inc/helpers/helper-misc.php:410
2001
  msgid "San Marino"
2002
  msgstr ""
2003
 
2004
+ #: inc/helpers/helper-misc.php:411
2005
  msgid "Sao Tome and Principe"
2006
  msgstr ""
2007
 
2008
+ #: inc/helpers/helper-misc.php:412
2009
  msgid "Saudi Arabia"
2010
  msgstr ""
2011
 
2012
+ #: inc/helpers/helper-misc.php:413
2013
  msgid "Senegal"
2014
  msgstr ""
2015
 
2016
+ #: inc/helpers/helper-misc.php:414
2017
  msgid "Seychelles"
2018
  msgstr ""
2019
 
2020
+ #: inc/helpers/helper-misc.php:415
2021
  msgid "Sierra Leone"
2022
  msgstr ""
2023
 
2024
+ #: inc/helpers/helper-misc.php:416
2025
  msgid "Singapore"
2026
  msgstr ""
2027
 
2028
+ #: inc/helpers/helper-misc.php:417
2029
  msgid "Slovakia (Slovak Republic)"
2030
  msgstr ""
2031
 
2032
+ #: inc/helpers/helper-misc.php:418
2033
  msgid "Slovenia"
2034
  msgstr ""
2035
 
2036
+ #: inc/helpers/helper-misc.php:419
2037
  msgid "Solomon Islands"
2038
  msgstr ""
2039
 
2040
+ #: inc/helpers/helper-misc.php:420
2041
  msgid "Somalia"
2042
  msgstr ""
2043
 
2044
+ #: inc/helpers/helper-misc.php:421
2045
  msgid "South Africa"
2046
  msgstr ""
2047
 
2048
+ #: inc/helpers/helper-misc.php:422
2049
  msgid "South Georgia and the South Sandwich Islands"
2050
  msgstr ""
2051
 
2052
+ #: inc/helpers/helper-misc.php:423
2053
  msgid "Spain"
2054
  msgstr ""
2055
 
2056
+ #: inc/helpers/helper-misc.php:424
2057
  msgid "Sri Lanka"
2058
  msgstr ""
2059
 
2060
+ #: inc/helpers/helper-misc.php:425
2061
  msgid "St. Helena"
2062
  msgstr ""
2063
 
2064
+ #: inc/helpers/helper-misc.php:426
2065
  msgid "St. Pierre and Miquelon"
2066
  msgstr ""
2067
 
2068
+ #: inc/helpers/helper-misc.php:427
2069
  msgid "Sudan"
2070
  msgstr ""
2071
 
2072
+ #: inc/helpers/helper-misc.php:428
2073
  msgid "Suriname"
2074
  msgstr ""
2075
 
2076
+ #: inc/helpers/helper-misc.php:429
2077
  msgid "Svalbard and Jan Mayen Islands"
2078
  msgstr ""
2079
 
2080
+ #: inc/helpers/helper-misc.php:430
2081
  msgid "Swaziland"
2082
  msgstr ""
2083
 
2084
+ #: inc/helpers/helper-misc.php:431
2085
  msgid "Sweden"
2086
  msgstr ""
2087
 
2088
+ #: inc/helpers/helper-misc.php:432
2089
  msgid "Switzerland"
2090
  msgstr ""
2091
 
2092
+ #: inc/helpers/helper-misc.php:433
2093
  msgid "Syrian Arab Republic"
2094
  msgstr ""
2095
 
2096
+ #: inc/helpers/helper-misc.php:434
2097
  msgid "Taiwan, Province of China"
2098
  msgstr ""
2099
 
2100
+ #: inc/helpers/helper-misc.php:435
2101
  msgid "Tajikistan"
2102
  msgstr ""
2103
 
2104
+ #: inc/helpers/helper-misc.php:436
2105
  msgid "Tanzania, United Republic of"
2106
  msgstr ""
2107
 
2108
+ #: inc/helpers/helper-misc.php:437
2109
  msgid "Thailand"
2110
  msgstr ""
2111
 
2112
+ #: inc/helpers/helper-misc.php:438
2113
  msgid "Togo"
2114
  msgstr ""
2115
 
2116
+ #: inc/helpers/helper-misc.php:439
2117
  msgid "Tokelau"
2118
  msgstr ""
2119
 
2120
+ #: inc/helpers/helper-misc.php:440
2121
  msgid "Tonga"
2122
  msgstr ""
2123
 
2124
+ #: inc/helpers/helper-misc.php:441
2125
  msgid "Trinidad and Tobago"
2126
  msgstr ""
2127
 
2128
+ #: inc/helpers/helper-misc.php:442
2129
  msgid "Tunisia"
2130
  msgstr ""
2131
 
2132
+ #: inc/helpers/helper-misc.php:443
2133
  msgid "Turkey"
2134
  msgstr ""
2135
 
2136
+ #: inc/helpers/helper-misc.php:444
2137
  msgid "Turkmenistan"
2138
  msgstr ""
2139
 
2140
+ #: inc/helpers/helper-misc.php:445
2141
  msgid "Turks and Caicos Islands"
2142
  msgstr ""
2143
 
2144
+ #: inc/helpers/helper-misc.php:446
2145
  msgid "Tuvalu"
2146
  msgstr ""
2147
 
2148
+ #: inc/helpers/helper-misc.php:447
2149
  msgid "Uganda"
2150
  msgstr ""
2151
 
2152
+ #: inc/helpers/helper-misc.php:448
2153
  msgid "Ukraine"
2154
  msgstr ""
2155
 
2156
+ #: inc/helpers/helper-misc.php:449
2157
  msgid "United Arab Emirates"
2158
  msgstr ""
2159
 
2160
+ #: inc/helpers/helper-misc.php:450
2161
  msgid "United Kingdom"
2162
  msgstr ""
2163
 
2164
+ #: inc/helpers/helper-misc.php:451
2165
  msgid "United States"
2166
  msgstr ""
2167
 
2168
+ #: inc/helpers/helper-misc.php:452
2169
  msgid "United States Minor Outlying Islands"
2170
  msgstr ""
2171
 
2172
+ #: inc/helpers/helper-misc.php:453
2173
  msgid "Uruguay"
2174
  msgstr ""
2175
 
2176
+ #: inc/helpers/helper-misc.php:454
2177
  msgid "Uzbekistan"
2178
  msgstr ""
2179
 
2180
+ #: inc/helpers/helper-misc.php:455
2181
  msgid "Vanuatu"
2182
  msgstr ""
2183
 
2184
+ #: inc/helpers/helper-misc.php:456
2185
  msgid "Venezuela"
2186
  msgstr ""
2187
 
2188
+ #: inc/helpers/helper-misc.php:457
2189
  msgid "Vietnam"
2190
  msgstr ""
2191
 
2192
+ #: inc/helpers/helper-misc.php:458
2193
  msgid "Virgin Islands (British)"
2194
  msgstr ""
2195
 
2196
+ #: inc/helpers/helper-misc.php:459
2197
  msgid "Virgin Islands (U.S.)"
2198
  msgstr ""
2199
 
2200
+ #: inc/helpers/helper-misc.php:460
2201
  msgid "Wallis and Futuna Islands"
2202
  msgstr ""
2203
 
2204
+ #: inc/helpers/helper-misc.php:461
2205
  msgid "Western Sahara"
2206
  msgstr ""
2207
 
2208
+ #: inc/helpers/helper-misc.php:462
2209
  msgid "Yemen"
2210
  msgstr ""
2211
 
2212
+ #: inc/helpers/helper-misc.php:463
2213
  msgid "Yugoslavia"
2214
  msgstr ""
2215
 
2216
+ #: inc/helpers/helper-misc.php:464
2217
  msgid "Zambia"
2218
  msgstr ""
2219
 
2220
+ #: inc/helpers/helper-misc.php:465
2221
  msgid "Zimbabwe"
2222
  msgstr ""
2223
 
2229
  msgid "Insert"
2230
  msgstr ""
2231
 
 
 
 
 
2232
  #: inc/templates/admin-message-edit.php:25
2233
  msgid "Previous response"
2234
  msgstr ""
2314
  #: inc/templates/customize-form-part-footer.php:3
2315
  #: inc/templates/parts/customize-checkbox.php:80
2316
  #: inc/templates/parts/customize-radio.php:84
2317
+ #: inc/templates/parts/customize-select.php:79
2318
  #: inc/templates/parts/customize-table.php:96
2319
  #: inc/templates/parts/customize-table.php:107
2320
  msgid "Delete"
2564
  #: inc/templates/parts/customize-number.php:19
2565
  #: inc/templates/parts/customize-number.php:80
2566
  #: inc/templates/parts/customize-phone.php:19
2567
+ #: inc/templates/parts/customize-phone.php:74
2568
  #: inc/templates/parts/customize-placeholder.php:17
2569
  #: inc/templates/parts/customize-placeholder.php:35
2570
  #: inc/templates/parts/customize-radio.php:17
2574
  #: inc/templates/parts/customize-scale.php:17
2575
  #: inc/templates/parts/customize-scale.php:92
2576
  #: inc/templates/parts/customize-select.php:17
2577
+ #: inc/templates/parts/customize-select.php:59
2578
  #: inc/templates/parts/customize-single-line-text.php:19
2579
  #: inc/templates/parts/customize-single-line-text.php:51
2580
  #: inc/templates/parts/customize-table.php:17
2635
  #: inc/templates/parts/customize-legal.php:6
2636
  #: inc/templates/parts/customize-multi-line-text.php:44
2637
  #: inc/templates/parts/customize-number.php:73
2638
+ #: inc/templates/parts/customize-phone.php:67
2639
  #: inc/templates/parts/customize-placeholder.php:28
2640
  #: inc/templates/parts/customize-radio.php:53
2641
  #: inc/templates/parts/customize-rating.php:38
2642
  #: inc/templates/parts/customize-scale.php:85
2643
+ #: inc/templates/parts/customize-select.php:52
2644
  #: inc/templates/parts/customize-single-line-text.php:44
2645
  #: inc/templates/parts/customize-table.php:69
2646
  #: inc/templates/parts/customize-title.php:38
2708
  #: inc/templates/parts/customize-legal.php:7
2709
  #: inc/templates/parts/customize-multi-line-text.php:45
2710
  #: inc/templates/parts/customize-number.php:74
2711
+ #: inc/templates/parts/customize-phone.php:68
2712
  #: inc/templates/parts/customize-placeholder.php:29
2713
  #: inc/templates/parts/customize-radio.php:54
2714
  #: inc/templates/parts/customize-rating.php:39
2715
  #: inc/templates/parts/customize-scale.php:86
2716
+ #: inc/templates/parts/customize-select.php:53
2717
  #: inc/templates/parts/customize-single-line-text.php:45
2718
  #: inc/templates/parts/customize-table.php:70
2719
  #: inc/templates/parts/customize-title.php:39
2728
  #: inc/templates/parts/customize-legal.php:8
2729
  #: inc/templates/parts/customize-multi-line-text.php:46
2730
  #: inc/templates/parts/customize-number.php:75
2731
+ #: inc/templates/parts/customize-phone.php:69
2732
  #: inc/templates/parts/customize-placeholder.php:30
2733
  #: inc/templates/parts/customize-radio.php:55
2734
  #: inc/templates/parts/customize-rating.php:40
2735
  #: inc/templates/parts/customize-scale.php:87
2736
+ #: inc/templates/parts/customize-select.php:54
2737
  #: inc/templates/parts/customize-single-line-text.php:46
2738
  #: inc/templates/parts/customize-table.php:71
2739
  #: inc/templates/parts/customize-title.php:40
2748
  #: inc/templates/parts/customize-legal.php:17
2749
  #: inc/templates/parts/customize-multi-line-text.php:55
2750
  #: inc/templates/parts/customize-number.php:84
2751
+ #: inc/templates/parts/customize-phone.php:78
2752
  #: inc/templates/parts/customize-placeholder.php:39
2753
  #: inc/templates/parts/customize-radio.php:64
2754
  #: inc/templates/parts/customize-rating.php:49
2755
  #: inc/templates/parts/customize-scale.php:96
2756
+ #: inc/templates/parts/customize-select.php:63
2757
  #: inc/templates/parts/customize-single-line-text.php:55
2758
  #: inc/templates/parts/customize-table.php:80
2759
  #: inc/templates/parts/customize-title.php:49
2790
 
2791
  #: inc/templates/parts/customize-checkbox.php:73
2792
  #: inc/templates/parts/customize-radio.php:73
2793
+ #: inc/templates/parts/customize-select.php:72
2794
  #: inc/templates/parts/customize-table.php:89
2795
  #: inc/templates/parts/customize-table.php:103
2796
  msgid "Label"
2879
 
2880
  #: inc/templates/parts/customize-email.php:60
2881
  #: inc/templates/parts/customize-number.php:89
2882
+ #: inc/templates/parts/customize-phone.php:83
2883
  msgid "Require confirmation of the value"
2884
  msgstr ""
2885
 
2886
  #: inc/templates/parts/customize-email.php:64
2887
  #: inc/templates/parts/customize-number.php:93
2888
+ #: inc/templates/parts/customize-phone.php:87
2889
  msgid "Confirmation field title"
2890
  msgstr ""
2891
 
2902
  msgstr ""
2903
 
2904
  #: inc/templates/parts/customize-number.php:53
 
2905
  msgid "Mask this input"
2906
  msgstr ""
2907
 
2917
  msgid "Prefix"
2918
  msgstr ""
2919
 
2920
+ #: inc/templates/parts/customize-phone.php:43
2921
+ msgid "International format"
2922
+ msgstr ""
2923
+
2924
  #: inc/templates/parts/customize-phone.php:48
2925
+ msgid "Default phone number region"
2926
+ msgstr ""
2927
+
2928
+ #: inc/templates/parts/customize-phone.php:60
2929
+ msgid "Allow other regions to be selected"
2930
  msgstr ""
2931
 
2932
  #: inc/templates/parts/customize-radio.php:81
2933
+ #: inc/templates/parts/customize-select.php:76
2934
  msgid "Make this option default"
2935
  msgstr ""
2936
 
2970
  msgid "options"
2971
  msgstr ""
2972
 
2973
+ #: inc/templates/parts/customize-select.php:46
2974
+ msgid "Make searchable"
2975
+ msgstr ""
2976
+
2977
  #: inc/templates/parts/customize-table.php:31
2978
  msgid "Each row is required"
2979
  msgstr ""
3017
  msgid "City"
3018
  msgstr ""
3019
 
3020
+ #: inc/templates/parts/frontend-date-day.php:17
3021
+ #: inc/templates/parts/frontend-date-day.php:23
3022
+ #: inc/templates/parts/frontend-date-day.php:40
3023
  msgid "Day"
3024
  msgstr ""
3025
 
3026
+ #: inc/templates/parts/frontend-date-month.php:19
3027
+ #: inc/templates/parts/frontend-date-month.php:25
3028
+ #: inc/templates/parts/frontend-date-month.php:42
3029
  msgid "Month"
3030
  msgstr ""
3031
 
3032
+ #: inc/templates/parts/frontend-date.php:35
3033
+ #: inc/templates/parts/frontend-date.php:41
3034
+ #: inc/templates/parts/frontend-date.php:62
3035
  msgid "Year"
3036
  msgstr ""
3037
 
3038
+ #: inc/templates/parts/frontend-date.php:130
3039
  msgid "Period"
3040
  msgstr ""
3041
 
3042
+ #: inc/templates/parts/frontend-date.php:142
3043
  msgid "AM"
3044
  msgstr ""
3045
 
3046
+ #: inc/templates/parts/frontend-date.php:143
3047
  msgid "PM"
3048
  msgstr ""
3049
 
3051
  msgid "Stars"
3052
  msgstr ""
3053
 
3054
+ #: inc/templates/parts/frontend-select.php:28
3055
+ #: inc/templates/parts/frontend-select.php:34
3056
+ #: inc/templates/parts/frontend-title.php:18
3057
+ #: inc/templates/parts/frontend-title.php:24
3058
+ msgid "- Select -"
3059
+ msgstr ""
3060
+
3061
+ #: inc/templates/parts/frontend-select.php:58
3062
+ #: inc/templates/parts/frontend-title.php:43
3063
  msgid "Select"
3064
  msgstr ""
3065
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: contact, contact form, email, feedback form, form, form builder, custom fo
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
- Stable tag: 1.5.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -75,6 +75,12 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
75
 
76
  == Changelog ==
77
 
 
 
 
 
 
 
78
  = 1.5.4 =
79
  * Improvement: Form assets now get loaded only on pages containing forms.
80
  * Improvement: Forms now work when displayed inside the Dashboard.
@@ -194,6 +200,9 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
194
 
195
  == Upgrade Notice ==
196
 
 
 
 
197
  = 1.5.4 =
198
  * Support for forms inside admin screens.
199
 
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
+ Stable tag: 1.5.5
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
75
 
76
  == Changelog ==
77
 
78
+ = 1.5.5 =
79
+ * New feature: Redesigned dropdowns and a new setting to make Dropdown part searchable.
80
+ * New feature: Redesigned Phone part now with country flags and a new searchable country dropdown.
81
+ * Improvement: New shortcode view allows to directly edit a form from the editor.
82
+ * Bug fix: Date & Time part set to show current date and time didn't consider timezone and showed incorrect date in some cases.
83
+
84
  = 1.5.4 =
85
  * Improvement: Form assets now get loaded only on pages containing forms.
86
  * Improvement: Forms now work when displayed inside the Dashboard.
200
 
201
  == Upgrade Notice ==
202
 
203
+ = 1.5.5 =
204
+ * Redesigned dropdowns, new look of Phone part, enhanced shortcode, and bug fixes.
205
+
206
  = 1.5.4 =
207
  * Support for forms inside admin screens.
208