fomantic-ui 2.10.0-beta.4 → 2.10.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/components/accordion.css +1 -1
  2. package/dist/components/accordion.js +1 -1
  3. package/dist/components/accordion.min.css +1 -1
  4. package/dist/components/accordion.min.js +1 -1
  5. package/dist/components/ad.css +1 -1
  6. package/dist/components/ad.min.css +1 -1
  7. package/dist/components/api.js +1 -1
  8. package/dist/components/api.min.js +1 -1
  9. package/dist/components/breadcrumb.css +1 -1
  10. package/dist/components/breadcrumb.min.css +1 -1
  11. package/dist/components/button.css +1 -1
  12. package/dist/components/button.min.css +1 -1
  13. package/dist/components/calendar.css +1 -1
  14. package/dist/components/calendar.js +1 -1
  15. package/dist/components/calendar.min.css +1 -1
  16. package/dist/components/calendar.min.js +1 -1
  17. package/dist/components/card.css +1 -1
  18. package/dist/components/card.min.css +1 -1
  19. package/dist/components/checkbox.css +1 -1
  20. package/dist/components/checkbox.js +1 -1
  21. package/dist/components/checkbox.min.css +1 -1
  22. package/dist/components/checkbox.min.js +1 -1
  23. package/dist/components/comment.css +1 -1
  24. package/dist/components/comment.min.css +1 -1
  25. package/dist/components/container.css +1 -1
  26. package/dist/components/container.min.css +1 -1
  27. package/dist/components/dimmer.css +1 -1
  28. package/dist/components/dimmer.js +1 -1
  29. package/dist/components/dimmer.min.css +1 -1
  30. package/dist/components/dimmer.min.js +1 -1
  31. package/dist/components/divider.css +1 -1
  32. package/dist/components/divider.min.css +1 -1
  33. package/dist/components/dropdown.css +1 -1
  34. package/dist/components/dropdown.js +30 -26
  35. package/dist/components/dropdown.min.css +1 -1
  36. package/dist/components/dropdown.min.js +2 -2
  37. package/dist/components/embed.css +1 -1
  38. package/dist/components/embed.js +1 -1
  39. package/dist/components/embed.min.css +1 -1
  40. package/dist/components/embed.min.js +1 -1
  41. package/dist/components/emoji.css +1 -1
  42. package/dist/components/emoji.min.css +1 -1
  43. package/dist/components/feed.css +1 -1
  44. package/dist/components/feed.min.css +1 -1
  45. package/dist/components/flag.css +1 -1
  46. package/dist/components/flag.min.css +1 -1
  47. package/dist/components/flyout.css +1 -1
  48. package/dist/components/flyout.js +6 -6
  49. package/dist/components/flyout.min.css +1 -1
  50. package/dist/components/flyout.min.js +2 -2
  51. package/dist/components/form.css +1 -1
  52. package/dist/components/form.js +1 -1
  53. package/dist/components/form.min.css +1 -1
  54. package/dist/components/form.min.js +1 -1
  55. package/dist/components/grid.css +1 -1
  56. package/dist/components/grid.min.css +1 -1
  57. package/dist/components/header.css +1 -1
  58. package/dist/components/header.min.css +1 -1
  59. package/dist/components/icon.css +1 -1
  60. package/dist/components/icon.min.css +1 -1
  61. package/dist/components/image.css +1 -1
  62. package/dist/components/image.min.css +1 -1
  63. package/dist/components/input.css +1 -1
  64. package/dist/components/input.min.css +1 -1
  65. package/dist/components/item.css +1 -1
  66. package/dist/components/item.min.css +1 -1
  67. package/dist/components/label.css +1 -1
  68. package/dist/components/label.min.css +1 -1
  69. package/dist/components/list.css +1 -1
  70. package/dist/components/list.min.css +1 -1
  71. package/dist/components/loader.css +1 -1
  72. package/dist/components/loader.min.css +1 -1
  73. package/dist/components/menu.css +1 -1
  74. package/dist/components/menu.min.css +1 -1
  75. package/dist/components/message.css +1 -1
  76. package/dist/components/message.min.css +1 -1
  77. package/dist/components/modal.css +1 -1
  78. package/dist/components/modal.js +6 -6
  79. package/dist/components/modal.min.css +1 -1
  80. package/dist/components/modal.min.js +2 -2
  81. package/dist/components/nag.css +1 -1
  82. package/dist/components/nag.js +1 -1
  83. package/dist/components/nag.min.css +1 -1
  84. package/dist/components/nag.min.js +1 -1
  85. package/dist/components/placeholder.css +1 -1
  86. package/dist/components/placeholder.min.css +1 -1
  87. package/dist/components/popup.css +1 -1
  88. package/dist/components/popup.js +1 -1
  89. package/dist/components/popup.min.css +1 -1
  90. package/dist/components/popup.min.js +1 -1
  91. package/dist/components/progress.css +1 -1
  92. package/dist/components/progress.js +1 -1
  93. package/dist/components/progress.min.css +1 -1
  94. package/dist/components/progress.min.js +1 -1
  95. package/dist/components/rail.css +1 -1
  96. package/dist/components/rail.min.css +1 -1
  97. package/dist/components/rating.css +1 -1
  98. package/dist/components/rating.js +1 -1
  99. package/dist/components/rating.min.css +1 -1
  100. package/dist/components/rating.min.js +1 -1
  101. package/dist/components/reset.css +1 -1
  102. package/dist/components/reset.min.css +1 -1
  103. package/dist/components/reveal.css +1 -1
  104. package/dist/components/reveal.min.css +1 -1
  105. package/dist/components/search.css +1 -1
  106. package/dist/components/search.js +21 -19
  107. package/dist/components/search.min.css +1 -1
  108. package/dist/components/search.min.js +2 -2
  109. package/dist/components/segment.css +1 -1
  110. package/dist/components/segment.min.css +1 -1
  111. package/dist/components/shape.css +1 -1
  112. package/dist/components/shape.js +1 -1
  113. package/dist/components/shape.min.css +1 -1
  114. package/dist/components/shape.min.js +1 -1
  115. package/dist/components/sidebar.css +1 -1
  116. package/dist/components/sidebar.js +1 -1
  117. package/dist/components/sidebar.min.css +1 -1
  118. package/dist/components/sidebar.min.js +1 -1
  119. package/dist/components/site.css +1 -1
  120. package/dist/components/site.js +1 -1
  121. package/dist/components/site.min.css +1 -1
  122. package/dist/components/site.min.js +1 -1
  123. package/dist/components/slider.css +1 -1
  124. package/dist/components/slider.js +1 -1
  125. package/dist/components/slider.min.css +1 -1
  126. package/dist/components/slider.min.js +1 -1
  127. package/dist/components/state.js +1 -1
  128. package/dist/components/state.min.js +1 -1
  129. package/dist/components/statistic.css +1 -1
  130. package/dist/components/statistic.min.css +1 -1
  131. package/dist/components/step.css +1 -1
  132. package/dist/components/step.min.css +1 -1
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +1 -1
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +1 -1
  137. package/dist/components/tab.css +1 -1
  138. package/dist/components/tab.js +1 -1
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +1 -1
  141. package/dist/components/table.css +1 -1
  142. package/dist/components/table.min.css +1 -1
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +1 -1
  146. package/dist/components/toast.js +8 -8
  147. package/dist/components/toast.min.css +1 -1
  148. package/dist/components/toast.min.js +2 -2
  149. package/dist/components/transition.css +1 -1
  150. package/dist/components/transition.js +1 -1
  151. package/dist/components/transition.min.css +1 -1
  152. package/dist/components/transition.min.js +1 -1
  153. package/dist/components/visibility.js +1 -1
  154. package/dist/components/visibility.min.js +1 -1
  155. package/dist/semantic.css +53 -53
  156. package/dist/semantic.js +92 -86
  157. package/dist/semantic.min.css +1 -1
  158. package/dist/semantic.min.js +2 -2
  159. package/package.json +1 -1
  160. package/src/definitions/modules/dropdown.js +29 -25
  161. package/src/definitions/modules/flyout.js +5 -5
  162. package/src/definitions/modules/modal.js +5 -5
  163. package/src/definitions/modules/search.js +20 -18
  164. package/src/definitions/modules/toast.js +7 -7
  165. package/types/fomantic-ui-dropdown.d.ts +49 -0
  166. package/types/fomantic-ui-search.d.ts +6 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fomantic-ui",
3
- "version": "2.10.0-beta.4+fcf090f",
3
+ "version": "2.10.0-beta.5+789e0d0",
4
4
  "description": "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
5
5
  "keywords": [
6
6
  "fomantic-ui",
@@ -416,7 +416,7 @@
416
416
  .attr('class', $input.attr('class'))
417
417
  .addClass(className.selection)
418
418
  .addClass(className.dropdown)
419
- .html(templates.dropdown(selectValues, fields, settings.preserveHTML, settings.className))
419
+ .html(templates.dropdown(selectValues, settings))
420
420
  .insertBefore($input)
421
421
  ;
422
422
  if ($input.hasClass(className.multiple) && $input.prop('multiple') === false) {
@@ -446,7 +446,7 @@
446
446
  module.refresh();
447
447
  },
448
448
  menu: function (values) {
449
- $menu.html(templates.menu(values, fields, settings.preserveHTML, settings.className));
449
+ $menu.html(templates.menu(values, settings));
450
450
  $item = $menu.find(selector.item);
451
451
  $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $();
452
452
  },
@@ -1113,7 +1113,7 @@
1113
1113
  value = settings.templates.deQuote(item[fields.value]),
1114
1114
  name = settings.templates.escape(
1115
1115
  item[fields.name] || '',
1116
- settings.preserveHTML
1116
+ settings
1117
1117
  )
1118
1118
  ;
1119
1119
  $input.append('<option value="' + value + '"' + (item.selected === true ? ' selected' : '') + '>' + name + '</option>');
@@ -2902,7 +2902,7 @@
2902
2902
  $label = $('<a />')
2903
2903
  .addClass(className.label)
2904
2904
  .attr('data-' + metadata.value, escapedValue)
2905
- .html(templates.label(escapedValue, text, settings.preserveHTML, settings.className))
2905
+ .html(templates.label(escapedValue, text, settings))
2906
2906
  ;
2907
2907
  $label = settings.onLabelCreate.call($label, escapedValue, text);
2908
2908
 
@@ -4269,8 +4269,8 @@
4269
4269
  deQuote: function (string, encode) {
4270
4270
  return String(string).replace(/"/g, encode ? '&quot;' : '');
4271
4271
  },
4272
- escape: function (string, preserveHTML) {
4273
- if (preserveHTML) {
4272
+ escape: function (string, settings) {
4273
+ if (settings.preserveHTML) {
4274
4274
  return string;
4275
4275
  }
4276
4276
  var
@@ -4295,31 +4295,34 @@
4295
4295
  return string;
4296
4296
  },
4297
4297
  // generates dropdown from select values
4298
- dropdown: function (select, fields, preserveHTML, className) {
4298
+ dropdown: function (select, settings) {
4299
4299
  var
4300
4300
  placeholder = select.placeholder || false,
4301
- html = '',
4302
- escape = $.fn.dropdown.settings.templates.escape,
4303
- deQuote = $.fn.dropdown.settings.templates.deQuote
4301
+ html = '',
4302
+ className = settings.className,
4303
+ escape = settings.templates.escape,
4304
+ deQuote = settings.templates.deQuote
4304
4305
  ;
4305
4306
  html += '<i class="dropdown icon"></i>';
4306
4307
  html += placeholder
4307
- ? '<div class="default text">' + escape(placeholder, preserveHTML) + '</div>'
4308
+ ? '<div class="default text">' + escape(placeholder, settings) + '</div>'
4308
4309
  : '<div class="text"></div>';
4309
4310
  html += '<div class="' + deQuote(className.menu) + '">';
4310
- html += $.fn.dropdown.settings.templates.menu(select, fields, preserveHTML, className);
4311
+ html += settings.templates.menu(select, settings);
4311
4312
  html += '</div>';
4312
4313
 
4313
4314
  return html;
4314
4315
  },
4315
4316
 
4316
4317
  // generates just menu from select
4317
- menu: function (response, fields, preserveHTML, className) {
4318
+ menu: function (response, settings) {
4318
4319
  var
4320
+ fields = settings.fields,
4319
4321
  values = response[fields.values] || [],
4320
- html = '',
4321
- escape = $.fn.dropdown.settings.templates.escape,
4322
- deQuote = $.fn.dropdown.settings.templates.deQuote
4322
+ html = '',
4323
+ className = settings.className,
4324
+ escape = settings.templates.escape,
4325
+ deQuote = settings.templates.deQuote
4323
4326
  ;
4324
4327
  $.each(values, function (index, option) {
4325
4328
  var
@@ -4353,7 +4356,7 @@
4353
4356
  maybeDescriptionVertical = option[fields.descriptionVertical]
4354
4357
  ? className.descriptionVertical + ' '
4355
4358
  : '',
4356
- hasDescription = escape(option[fields.description] || '', preserveHTML) !== ''
4359
+ hasDescription = escape(option[fields.description] || '', settings) !== ''
4357
4360
  ;
4358
4361
  html += '<div class="' + deQuote(maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] || className.item)) + '" data-value="' + deQuote(option[fields.value], true) + '"' + maybeText + maybeData + '>';
4359
4362
  if (isMenu) {
@@ -4366,17 +4369,17 @@
4366
4369
  html += '<i class="' + deQuote(option[fields.icon] + ' ' + (option[fields.iconClass] || className.icon)) + '"></i>';
4367
4370
  }
4368
4371
  if (hasDescription) {
4369
- html += '<span class="' + deQuote(className.description) + '">' + escape(option[fields.description] || '', preserveHTML) + '</span>';
4372
+ html += '<span class="' + deQuote(className.description) + '">' + escape(option[fields.description] || '', settings) + '</span>';
4370
4373
  html += !isMenu ? '<span class="' + deQuote(className.text) + '">' : '';
4371
4374
  }
4372
4375
  if (isMenu) {
4373
4376
  html += '<span class="' + deQuote(className.text) + '">';
4374
4377
  }
4375
- html += escape(option[fields.name] || '', preserveHTML);
4378
+ html += escape(option[fields.name] || '', settings);
4376
4379
  if (isMenu) {
4377
4380
  html += '</span>';
4378
4381
  html += '<div class="' + deQuote(itemType) + '">';
4379
- html += $.fn.dropdown.settings.templates.menu(option, fields, preserveHTML, className);
4382
+ html += settings.templates.menu(option, settings);
4380
4383
  html += '</div>';
4381
4384
  } else if (hasDescription) {
4382
4385
  html += '</span>';
@@ -4384,7 +4387,7 @@
4384
4387
  html += '</div>';
4385
4388
  } else if (itemType === 'header') {
4386
4389
  var
4387
- groupName = escape(option[fields.name] || '', preserveHTML),
4390
+ groupName = escape(option[fields.name] || '', settings),
4388
4391
  groupIcon = deQuote(option[fields.icon] || className.groupIcon)
4389
4392
  ;
4390
4393
  if (groupName !== '' || groupIcon !== '') {
@@ -4405,13 +4408,14 @@
4405
4408
  },
4406
4409
 
4407
4410
  // generates label for multiselect
4408
- label: function (value, text, preserveHTML, className) {
4411
+ label: function (value, text, settings) {
4409
4412
  var
4410
- escape = $.fn.dropdown.settings.templates.escape,
4411
- deQuote = $.fn.dropdown.settings.templates.deQuote
4413
+ className = settings.className,
4414
+ escape = settings.templates.escape,
4415
+ deQuote = settings.templates.deQuote
4412
4416
  ;
4413
4417
 
4414
- return escape(text, preserveHTML) + '<i class="' + deQuote(className.delete) + ' icon"></i>';
4418
+ return escape(text, settings) + '<i class="' + deQuote(className.delete) + ' icon"></i>';
4415
4419
  },
4416
4420
 
4417
4421
  // generates messages like "No results"
@@ -117,10 +117,10 @@
117
117
  }
118
118
  $module.addClass(settings.class);
119
119
  if (settings.title !== '') {
120
- $module.find(selector.header).html(module.helpers.escape(settings.title, settings.preserveHTML)).addClass(settings.classTitle);
120
+ $module.find(selector.header).html(module.helpers.escape(settings.title)).addClass(settings.classTitle);
121
121
  }
122
122
  if (settings.content !== '') {
123
- $module.find(selector.content).html(module.helpers.escape(settings.content, settings.preserveHTML)).addClass(settings.classContent);
123
+ $module.find(selector.content).html(module.helpers.escape(settings.content)).addClass(settings.classContent);
124
124
  }
125
125
  if (module.has.configActions()) {
126
126
  var $actions = $module.find(selector.actions).addClass(settings.classActions);
@@ -134,7 +134,7 @@
134
134
  icon = el[fields.icon]
135
135
  ? '<i ' + (el[fields.text] ? 'aria-hidden="true"' : '') + ' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>'
136
136
  : '',
137
- text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
137
+ text = module.helpers.escape(el[fields.text] || ''),
138
138
  cls = module.helpers.deQuote(el[fields.class] || ''),
139
139
  click = el[fields.click] && isFunction(el[fields.click])
140
140
  ? el[fields.click]
@@ -1082,8 +1082,8 @@
1082
1082
  deQuote: function (string) {
1083
1083
  return String(string).replace(/"/g, '');
1084
1084
  },
1085
- escape: function (string, preserveHTML) {
1086
- if (preserveHTML) {
1085
+ escape: function (string) {
1086
+ if (settings.preserveHTML) {
1087
1087
  return string;
1088
1088
  }
1089
1089
  var
@@ -111,10 +111,10 @@
111
111
  }
112
112
  $module.addClass(settings.class);
113
113
  if (settings.title !== '') {
114
- $module.find(selector.title).html(module.helpers.escape(settings.title, settings.preserveHTML)).addClass(settings.classTitle);
114
+ $module.find(selector.title).html(module.helpers.escape(settings.title)).addClass(settings.classTitle);
115
115
  }
116
116
  if (settings.content !== '') {
117
- $module.find(selector.content).html(module.helpers.escape(settings.content, settings.preserveHTML)).addClass(settings.classContent);
117
+ $module.find(selector.content).html(module.helpers.escape(settings.content)).addClass(settings.classContent);
118
118
  }
119
119
  if (module.has.configActions()) {
120
120
  var $actions = $module.find(selector.actions).addClass(settings.classActions);
@@ -128,7 +128,7 @@
128
128
  icon = el[fields.icon]
129
129
  ? '<i ' + (el[fields.text] ? 'aria-hidden="true"' : '') + ' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>'
130
130
  : '',
131
- text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
131
+ text = module.helpers.escape(el[fields.text] || ''),
132
132
  cls = module.helpers.deQuote(el[fields.class] || ''),
133
133
  click = el[fields.click] && isFunction(el[fields.click])
134
134
  ? el[fields.click]
@@ -930,8 +930,8 @@
930
930
  deQuote: function (string) {
931
931
  return String(string).replace(/"/g, '');
932
932
  },
933
- escape: function (string, preserveHTML) {
934
- if (preserveHTML) {
933
+ escape: function (string) {
934
+ if (settings.preserveHTML) {
935
935
  return string;
936
936
  }
937
937
  var
@@ -1140,7 +1140,7 @@
1140
1140
  });
1141
1141
  }
1142
1142
  if (isFunction(template)) {
1143
- html = template(response, fields, settings.preserveHTML);
1143
+ html = template(response, settings);
1144
1144
  } else {
1145
1145
  module.error(error.noTemplate, false);
1146
1146
  }
@@ -1476,8 +1476,8 @@
1476
1476
  },
1477
1477
 
1478
1478
  templates: {
1479
- escape: function (string, preserveHTML) {
1480
- if (preserveHTML) {
1479
+ escape: function (string, settings) {
1480
+ if (settings.preserveHTML) {
1481
1481
  return string;
1482
1482
  }
1483
1483
  var
@@ -1519,10 +1519,11 @@
1519
1519
 
1520
1520
  return html;
1521
1521
  },
1522
- category: function (response, fields, preserveHTML) {
1522
+ category: function (response, settings) {
1523
1523
  var
1524
1524
  html = '',
1525
- escape = $.fn.search.settings.templates.escape
1525
+ fields = settings.fields,
1526
+ escape = settings.templates.escape
1526
1527
  ;
1527
1528
  if (response[fields.categoryResults] !== undefined) {
1528
1529
  // each category
@@ -1531,7 +1532,7 @@
1531
1532
  html += '<div class="category">';
1532
1533
 
1533
1534
  if (category[fields.categoryName] !== undefined) {
1534
- html += '<div class="name">' + escape(category[fields.categoryName], preserveHTML) + '</div>';
1535
+ html += '<div class="name">' + escape(category[fields.categoryName], settings) + '</div>';
1535
1536
  }
1536
1537
 
1537
1538
  // each item inside category
@@ -1548,13 +1549,13 @@
1548
1549
  }
1549
1550
  html += '<div class="content">';
1550
1551
  if (result[fields.price] !== undefined) {
1551
- html += '<div class="price">' + escape(result[fields.price], preserveHTML) + '</div>';
1552
+ html += '<div class="price">' + escape(result[fields.price], settings) + '</div>';
1552
1553
  }
1553
1554
  if (result[fields.title] !== undefined) {
1554
- html += '<div class="title">' + escape(result[fields.title], preserveHTML) + '</div>';
1555
+ html += '<div class="title">' + escape(result[fields.title], settings) + '</div>';
1555
1556
  }
1556
1557
  if (result[fields.description] !== undefined) {
1557
- html += '<div class="description">' + escape(result[fields.description], preserveHTML) + '</div>';
1558
+ html += '<div class="description">' + escape(result[fields.description], settings) + '</div>';
1558
1559
  }
1559
1560
  html += ''
1560
1561
  + '</div>';
@@ -1569,11 +1570,11 @@
1569
1570
  html += fields.actionURL === false
1570
1571
  ? ''
1571
1572
  + '<div class="action">'
1572
- + escape(response[fields.action][fields.actionText], preserveHTML)
1573
+ + escape(response[fields.action][fields.actionText], settings)
1573
1574
  + '</div>'
1574
1575
  : ''
1575
1576
  + '<a href="' + response[fields.action][fields.actionURL].replace(/"/g, '') + '" class="action">'
1576
- + escape(response[fields.action][fields.actionText], preserveHTML)
1577
+ + escape(response[fields.action][fields.actionText], settings)
1577
1578
  + '</a>';
1578
1579
  }
1579
1580
 
@@ -1582,10 +1583,11 @@
1582
1583
 
1583
1584
  return false;
1584
1585
  },
1585
- standard: function (response, fields, preserveHTML) {
1586
+ standard: function (response, settings) {
1586
1587
  var
1587
1588
  html = '',
1588
- escape = $.fn.search.settings.templates.escape
1589
+ fields = settings.fields,
1590
+ escape = settings.templates.escape
1589
1591
  ;
1590
1592
  if (response[fields.results] !== undefined) {
1591
1593
  // each result
@@ -1601,13 +1603,13 @@
1601
1603
  }
1602
1604
  html += '<div class="content">';
1603
1605
  if (result[fields.price] !== undefined) {
1604
- html += '<div class="price">' + escape(result[fields.price], preserveHTML) + '</div>';
1606
+ html += '<div class="price">' + escape(result[fields.price], settings) + '</div>';
1605
1607
  }
1606
1608
  if (result[fields.title] !== undefined) {
1607
- html += '<div class="title">' + escape(result[fields.title], preserveHTML) + '</div>';
1609
+ html += '<div class="title">' + escape(result[fields.title], settings) + '</div>';
1608
1610
  }
1609
1611
  if (result[fields.description] !== undefined) {
1610
- html += '<div class="description">' + escape(result[fields.description], preserveHTML) + '</div>';
1612
+ html += '<div class="description">' + escape(result[fields.description], settings) + '</div>';
1611
1613
  }
1612
1614
  html += ''
1613
1615
  + '</div>';
@@ -1617,11 +1619,11 @@
1617
1619
  html += fields.actionURL === false
1618
1620
  ? ''
1619
1621
  + '<div class="action">'
1620
- + escape(response[fields.action][fields.actionText], preserveHTML)
1622
+ + escape(response[fields.action][fields.actionText], settings)
1621
1623
  + '</div>'
1622
1624
  : ''
1623
1625
  + '<a href="' + response[fields.action][fields.actionURL].replace(/"/g, '') + '" class="action">'
1624
- + escape(response[fields.action][fields.actionText], preserveHTML)
1626
+ + escape(response[fields.action][fields.actionText], settings)
1625
1627
  + '</a>';
1626
1628
  }
1627
1629
 
@@ -192,7 +192,7 @@
192
192
  $content.append($('<div/>', {
193
193
  class: className.title,
194
194
  id: titleId,
195
- html: module.helpers.escape(settings.title, settings.preserveHTML),
195
+ html: module.helpers.escape(settings.title),
196
196
  }));
197
197
  }
198
198
  var descId = '_' + module.get.id() + 'desc';
@@ -200,7 +200,7 @@
200
200
  $content.append($('<div/>', {
201
201
  class: className.message,
202
202
  id: descId,
203
- html: module.helpers.escape(settings.message, settings.preserveHTML),
203
+ html: module.helpers.escape(settings.message),
204
204
  }));
205
205
 
206
206
  $toast
@@ -232,10 +232,10 @@
232
232
  $toast.find(selector.image).attr('src', settings.showImage).attr('alt', settings.alt || '');
233
233
  }
234
234
  if (settings.title !== '') {
235
- $toast.find(selector.title).html(module.helpers.escape(settings.title, settings.preserveHTML));
235
+ $toast.find(selector.title).html(module.helpers.escape(settings.title));
236
236
  }
237
237
  if (settings.message !== '') {
238
- $toast.find(selector.message).html(module.helpers.escape(settings.message, settings.preserveHTML));
238
+ $toast.find(selector.message).html(module.helpers.escape(settings.message));
239
239
  }
240
240
  }
241
241
  if ($toast.hasClass(className.compact)) {
@@ -262,7 +262,7 @@
262
262
  ? '<i ' + (el[fields.text] ? 'aria-hidden="true"' : '')
263
263
  + ' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>'
264
264
  : '',
265
- text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
265
+ text = module.helpers.escape(el[fields.text] || ''),
266
266
  cls = module.helpers.deQuote(el[fields.class] || ''),
267
267
  click = el[fields.click] && isFunction(el[fields.click])
268
268
  ? el[fields.click]
@@ -595,8 +595,8 @@
595
595
  deQuote: function (string) {
596
596
  return String(string).replace(/"/g, '');
597
597
  },
598
- escape: function (string, preserveHTML) {
599
- if (preserveHTML) {
598
+ escape: function (string) {
599
+ if (settings.preserveHTML) {
600
600
  return string;
601
601
  }
602
602
  var
@@ -500,6 +500,12 @@ declare namespace FomanticUI {
500
500
 
501
501
  // endregion
502
502
 
503
+ // region Template Settings
504
+
505
+ templates: Dropdown.TemplateSettings;
506
+
507
+ // endregion
508
+
503
509
  // region Callbacks
504
510
 
505
511
  /**
@@ -647,6 +653,7 @@ declare namespace FomanticUI {
647
653
  }
648
654
 
649
655
  namespace Dropdown {
656
+ type TemplateSettings = Partial<Pick<Settings.Templates, keyof Settings.Templates>>;
650
657
  type TransitionSettings = Partial<Pick<Settings.Transition, keyof Settings.Transition>>;
651
658
  type SelectorSettings = Partial<Pick<Settings.Selectors, keyof Settings.Selectors>>;
652
659
  type ClassNameSettings = Partial<Pick<Settings.ClassNames, keyof Settings.ClassNames>>;
@@ -658,6 +665,48 @@ declare namespace FomanticUI {
658
665
  type ErrorSettings = Partial<Pick<Settings.Errors, keyof Settings.Errors>>;
659
666
 
660
667
  namespace Settings {
668
+ interface Templates {
669
+ /**
670
+ * @default function(string, encode)
671
+ */
672
+ deQuote: (string: string, encode?: boolean) => string;
673
+
674
+ /**
675
+ * @default function(string, settings)
676
+ */
677
+ escape: (string: string, settings: DropdownSettings) => string;
678
+
679
+ /**
680
+ * generates dropdown from select values
681
+ * @default function(message, type, header)
682
+ */
683
+ dropdown: (select: {placeholder?: string, values: {[key: string]: string}}, settings: DropdownSettings) => string;
684
+
685
+ /**
686
+ * generates just menu from select
687
+ * @default function(response, settings)
688
+ */
689
+ menu: (values: {[key: string]: string}, settings: DropdownSettings) => string;
690
+
691
+ /**
692
+ * generates label for multiselect
693
+ * @default function(response, settings)
694
+ */
695
+ label: (value: string, text: string, settings: DropdownSettings) => string;
696
+
697
+ /**
698
+ * generates messages like "No results"
699
+ * @default function(response, settings)
700
+ */
701
+ message: (message: string) => string;
702
+
703
+ /**
704
+ * generates user addition to the selection menu
705
+ * @default function(response, settings)
706
+ */
707
+ addition: (choice: string) => string;
708
+ }
709
+
661
710
  interface Transition {
662
711
 
663
712
  /**
@@ -394,9 +394,9 @@ declare namespace FomanticUI {
394
394
  namespace Settings {
395
395
  interface Templates {
396
396
  /**
397
- * @default function(string, preserveHTML)
397
+ * @default function(string, settings)
398
398
  */
399
- escape: (string: string, preserveHTML?: boolean) => string;
399
+ escape: (string: string, settings: SearchSettings) => string;
400
400
 
401
401
  /**
402
402
  * @default function(message, type, header)
@@ -404,14 +404,14 @@ declare namespace FomanticUI {
404
404
  message: (message: string, type?: string, header?: string) => string;
405
405
 
406
406
  /**
407
- * @default function(response, fields, preserveHTML)
407
+ * @default function(response, settings)
408
408
  */
409
- category: (response: unknown, fields: {[key: string]: string}, preserveHTML?: boolean) => string;
409
+ category: (response: unknown, settings: SearchSettings) => string;
410
410
 
411
411
  /**
412
- * @default function(response, fields, preserveHTML)
412
+ * @default function(response, settings)
413
413
  */
414
- standard: (response: unknown, fields: {[key: string]: string}, preserveHTML?: boolean) => string;
414
+ standard: (response: unknown, settings: SearchSettings) => string;
415
415
  }
416
416
 
417
417
  interface Selectors {