fomantic-ui 2.10.0-beta.1 → 2.10.0-beta.10

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 (287) hide show
  1. package/.all-contributorsrc +9 -0
  2. package/.eslintrc.js +0 -10
  3. package/CONTRIBUTING.md +4 -1
  4. package/CONTRIBUTORS.md +1 -0
  5. package/FAQ.md +7 -2
  6. package/README.md +5 -9
  7. package/ROADMAP.md +4 -4
  8. package/SECURITY.md +8 -7
  9. package/changelog-setup.js +64 -70
  10. package/dist/components/accordion.css +1 -1
  11. package/dist/components/accordion.js +103 -142
  12. package/dist/components/accordion.min.css +1 -1
  13. package/dist/components/accordion.min.js +2 -2
  14. package/dist/components/ad.css +1 -1
  15. package/dist/components/ad.min.css +1 -1
  16. package/dist/components/api.js +157 -210
  17. package/dist/components/api.min.js +2 -2
  18. package/dist/components/breadcrumb.css +1 -1
  19. package/dist/components/breadcrumb.min.css +1 -1
  20. package/dist/components/button.css +1 -2
  21. package/dist/components/button.min.css +2 -2
  22. package/dist/components/calendar.css +1 -2
  23. package/dist/components/calendar.js +314 -352
  24. package/dist/components/calendar.min.css +2 -2
  25. package/dist/components/calendar.min.js +2 -2
  26. package/dist/components/card.css +1 -1
  27. package/dist/components/card.min.css +1 -1
  28. package/dist/components/checkbox.css +1 -2
  29. package/dist/components/checkbox.js +85 -135
  30. package/dist/components/checkbox.min.css +2 -2
  31. package/dist/components/checkbox.min.js +2 -2
  32. package/dist/components/comment.css +1 -1
  33. package/dist/components/comment.min.css +1 -1
  34. package/dist/components/container.css +2 -4
  35. package/dist/components/container.min.css +2 -2
  36. package/dist/components/dimmer.css +1 -11
  37. package/dist/components/dimmer.js +61 -94
  38. package/dist/components/dimmer.min.css +2 -2
  39. package/dist/components/dimmer.min.js +2 -2
  40. package/dist/components/divider.css +1 -2
  41. package/dist/components/divider.min.css +2 -2
  42. package/dist/components/dropdown.css +30 -51
  43. package/dist/components/dropdown.js +736 -1055
  44. package/dist/components/dropdown.min.css +2 -2
  45. package/dist/components/dropdown.min.js +2 -2
  46. package/dist/components/embed.css +1 -1
  47. package/dist/components/embed.js +85 -114
  48. package/dist/components/embed.min.css +1 -1
  49. package/dist/components/embed.min.js +2 -2
  50. package/dist/components/emoji.css +3809 -7617
  51. package/dist/components/emoji.min.css +2 -2
  52. package/dist/components/feed.css +1 -1
  53. package/dist/components/feed.min.css +1 -1
  54. package/dist/components/flag.css +1 -1
  55. package/dist/components/flag.min.css +1 -1
  56. package/dist/components/flyout.css +2 -3
  57. package/dist/components/flyout.js +226 -355
  58. package/dist/components/flyout.min.css +2 -2
  59. package/dist/components/flyout.min.js +2 -2
  60. package/dist/components/form.css +5 -95
  61. package/dist/components/form.js +335 -444
  62. package/dist/components/form.min.css +2 -2
  63. package/dist/components/form.min.js +2 -2
  64. package/dist/components/grid.css +2 -58
  65. package/dist/components/grid.min.css +2 -2
  66. package/dist/components/header.css +1 -1
  67. package/dist/components/header.min.css +1 -1
  68. package/dist/components/icon.css +4 -4
  69. package/dist/components/icon.min.css +2 -2
  70. package/dist/components/image.css +1 -1
  71. package/dist/components/image.min.css +1 -1
  72. package/dist/components/input.css +1 -536
  73. package/dist/components/input.min.css +2 -2
  74. package/dist/components/item.css +1 -1
  75. package/dist/components/item.min.css +1 -1
  76. package/dist/components/label.css +1 -1
  77. package/dist/components/label.min.css +1 -1
  78. package/dist/components/list.css +1 -3
  79. package/dist/components/list.min.css +2 -2
  80. package/dist/components/loader.css +1 -1
  81. package/dist/components/loader.min.css +1 -1
  82. package/dist/components/menu.css +1 -9
  83. package/dist/components/menu.min.css +2 -2
  84. package/dist/components/message.css +1 -1
  85. package/dist/components/message.min.css +1 -1
  86. package/dist/components/modal.css +5 -9
  87. package/dist/components/modal.js +261 -384
  88. package/dist/components/modal.min.css +2 -2
  89. package/dist/components/modal.min.js +2 -2
  90. package/dist/components/nag.css +1 -1
  91. package/dist/components/nag.js +68 -98
  92. package/dist/components/nag.min.css +1 -1
  93. package/dist/components/nag.min.js +2 -2
  94. package/dist/components/placeholder.css +1 -1
  95. package/dist/components/placeholder.min.css +1 -1
  96. package/dist/components/popup.css +1 -2
  97. package/dist/components/popup.js +198 -271
  98. package/dist/components/popup.min.css +2 -2
  99. package/dist/components/popup.min.js +2 -2
  100. package/dist/components/progress.css +1 -1
  101. package/dist/components/progress.js +109 -144
  102. package/dist/components/progress.min.css +1 -1
  103. package/dist/components/progress.min.js +2 -2
  104. package/dist/components/rail.css +1 -1
  105. package/dist/components/rail.min.css +1 -1
  106. package/dist/components/rating.css +1 -1
  107. package/dist/components/rating.js +91 -123
  108. package/dist/components/rating.min.css +1 -1
  109. package/dist/components/rating.min.js +2 -2
  110. package/dist/components/reset.css +1 -1
  111. package/dist/components/reset.min.css +1 -1
  112. package/dist/components/reveal.css +1 -1
  113. package/dist/components/reveal.min.css +1 -1
  114. package/dist/components/search.css +2 -9
  115. package/dist/components/search.js +277 -379
  116. package/dist/components/search.min.css +2 -2
  117. package/dist/components/search.min.js +2 -2
  118. package/dist/components/segment.css +2 -7
  119. package/dist/components/segment.min.css +2 -2
  120. package/dist/components/shape.css +1 -2
  121. package/dist/components/shape.js +158 -224
  122. package/dist/components/shape.min.css +2 -2
  123. package/dist/components/shape.min.js +2 -2
  124. package/dist/components/sidebar.css +2 -3
  125. package/dist/components/sidebar.js +124 -206
  126. package/dist/components/sidebar.min.css +2 -2
  127. package/dist/components/sidebar.min.js +2 -2
  128. package/dist/components/site.css +9 -25
  129. package/dist/components/site.js +38 -57
  130. package/dist/components/site.min.css +2 -2
  131. package/dist/components/site.min.js +2 -2
  132. package/dist/components/slider.css +1 -1
  133. package/dist/components/slider.js +246 -329
  134. package/dist/components/slider.min.css +1 -1
  135. package/dist/components/slider.min.js +2 -2
  136. package/dist/components/state.js +70 -100
  137. package/dist/components/state.min.js +2 -2
  138. package/dist/components/statistic.css +1 -1
  139. package/dist/components/statistic.min.css +1 -1
  140. package/dist/components/step.css +1 -1
  141. package/dist/components/step.min.css +1 -1
  142. package/dist/components/sticky.css +1 -1
  143. package/dist/components/sticky.js +135 -180
  144. package/dist/components/sticky.min.css +1 -1
  145. package/dist/components/sticky.min.js +2 -2
  146. package/dist/components/tab.css +1 -1
  147. package/dist/components/tab.js +176 -244
  148. package/dist/components/tab.min.css +1 -1
  149. package/dist/components/tab.min.js +2 -2
  150. package/dist/components/table.css +3 -37
  151. package/dist/components/table.min.css +2 -2
  152. package/dist/components/text.css +1 -1
  153. package/dist/components/text.min.css +1 -1
  154. package/dist/components/toast.css +1 -3
  155. package/dist/components/toast.js +109 -147
  156. package/dist/components/toast.min.css +1 -1
  157. package/dist/components/toast.min.js +2 -2
  158. package/dist/components/transition.css +1 -1
  159. package/dist/components/transition.js +91 -146
  160. package/dist/components/transition.min.css +1 -1
  161. package/dist/components/transition.min.js +2 -2
  162. package/dist/components/visibility.js +146 -224
  163. package/dist/components/visibility.min.js +2 -2
  164. package/dist/semantic.css +3906 -8720
  165. package/dist/semantic.js +4397 -6155
  166. package/dist/semantic.min.css +2 -2
  167. package/dist/semantic.min.js +2 -2
  168. package/examples/assets/show-examples.js +2 -4
  169. package/gulpfile.js +5 -7
  170. package/package.json +3 -5
  171. package/scripts/nightly-version.js +7 -10
  172. package/src/README.md +3 -3
  173. package/src/definitions/behaviors/api.js +156 -209
  174. package/src/definitions/behaviors/form.js +334 -443
  175. package/src/definitions/behaviors/state.js +69 -99
  176. package/src/definitions/behaviors/visibility.js +145 -223
  177. package/src/definitions/collections/form.less +1 -13
  178. package/src/definitions/collections/grid.less +1 -61
  179. package/src/definitions/collections/menu.less +0 -11
  180. package/src/definitions/collections/table.less +1 -35
  181. package/src/definitions/elements/input.less +1 -61
  182. package/src/definitions/elements/segment.less +0 -6
  183. package/src/definitions/globals/site.js +37 -56
  184. package/src/definitions/globals/site.less +2 -18
  185. package/src/definitions/modules/accordion.js +102 -141
  186. package/src/definitions/modules/calendar.js +313 -351
  187. package/src/definitions/modules/checkbox.js +84 -134
  188. package/src/definitions/modules/dimmer.js +60 -93
  189. package/src/definitions/modules/dimmer.less +0 -9
  190. package/src/definitions/modules/dropdown.js +735 -1054
  191. package/src/definitions/modules/dropdown.less +31 -47
  192. package/src/definitions/modules/embed.js +84 -113
  193. package/src/definitions/modules/flyout.js +225 -354
  194. package/src/definitions/modules/modal.js +260 -383
  195. package/src/definitions/modules/modal.less +1 -1
  196. package/src/definitions/modules/nag.js +67 -97
  197. package/src/definitions/modules/popup.js +197 -270
  198. package/src/definitions/modules/progress.js +108 -143
  199. package/src/definitions/modules/rating.js +90 -122
  200. package/src/definitions/modules/search.js +276 -378
  201. package/src/definitions/modules/search.less +0 -3
  202. package/src/definitions/modules/shape.js +157 -223
  203. package/src/definitions/modules/sidebar.js +123 -205
  204. package/src/definitions/modules/slider.js +245 -328
  205. package/src/definitions/modules/slider.less +1 -1
  206. package/src/definitions/modules/sticky.js +134 -179
  207. package/src/definitions/modules/tab.js +175 -243
  208. package/src/definitions/modules/toast.js +108 -146
  209. package/src/definitions/modules/toast.less +1 -1
  210. package/src/definitions/modules/transition.js +90 -145
  211. package/src/theme.less +0 -13
  212. package/src/themes/basic/elements/icon.variables +1 -1
  213. package/src/themes/default/collections/grid.variables +0 -30
  214. package/src/themes/default/collections/table.variables +1 -5
  215. package/src/themes/default/elements/icon.variables +3 -3
  216. package/src/themes/default/globals/site.variables +8 -15
  217. package/src/themes/default/globals/variation.variables +1 -2
  218. package/src/themes/default/modules/dropdown.variables +1 -0
  219. package/src/themes/default/modules/slider.variables +1 -1
  220. package/src/themes/github/elements/icon.variables +1 -1
  221. package/src/themes/material/elements/icon.variables +1 -1
  222. package/tasks/README.md +1 -1
  223. package/tasks/admin/components/create.js +89 -122
  224. package/tasks/admin/components/init.js +34 -65
  225. package/tasks/admin/components/update.js +50 -61
  226. package/tasks/admin/distributions/create.js +71 -111
  227. package/tasks/admin/distributions/init.js +32 -63
  228. package/tasks/admin/distributions/update.js +49 -57
  229. package/tasks/admin/publish.js +1 -1
  230. package/tasks/admin/register.js +14 -19
  231. package/tasks/admin/release.js +2 -2
  232. package/tasks/build/assets.js +14 -18
  233. package/tasks/build/css.js +59 -68
  234. package/tasks/build/javascript.js +48 -56
  235. package/tasks/build.js +4 -6
  236. package/tasks/check-install.js +5 -8
  237. package/tasks/clean.js +5 -7
  238. package/tasks/collections/admin.js +14 -16
  239. package/tasks/collections/build.js +6 -8
  240. package/tasks/collections/docs.js +4 -6
  241. package/tasks/collections/install.js +2 -4
  242. package/tasks/collections/rtl.js +2 -4
  243. package/tasks/collections/various.js +2 -4
  244. package/tasks/config/admin/github.js +9 -19
  245. package/tasks/config/admin/templates/README.md +2 -2
  246. package/tasks/config/admin/templates/bower.json +2 -4
  247. package/tasks/config/admin/templates/composer.json +1 -1
  248. package/tasks/config/admin/templates/css-package.js +1 -4
  249. package/tasks/config/admin/templates/less-package.js +1 -3
  250. package/tasks/config/defaults.js +0 -1
  251. package/tasks/config/npm/gulpfile.js +4 -6
  252. package/tasks/config/project/config.js +27 -35
  253. package/tasks/config/project/install.js +64 -82
  254. package/tasks/config/project/release.js +7 -9
  255. package/tasks/config/tasks.js +10 -21
  256. package/tasks/config/user.js +14 -20
  257. package/tasks/docs/build.js +26 -31
  258. package/tasks/docs/metadata.js +30 -39
  259. package/tasks/docs/serve.js +23 -27
  260. package/tasks/install.js +94 -128
  261. package/tasks/rtl/build.js +2 -4
  262. package/tasks/rtl/watch.js +3 -5
  263. package/tasks/watch.js +13 -13
  264. package/test/meteor/fonts.js +1 -2
  265. package/test/modules/module.spec.js +16 -18
  266. package/types/fomantic-ui-calendar.d.ts +1 -1
  267. package/types/fomantic-ui-dropdown.d.ts +45 -1
  268. package/types/fomantic-ui-embed.d.ts +1 -1
  269. package/types/fomantic-ui-flyout.d.ts +1 -1
  270. package/types/fomantic-ui-form.d.ts +0 -7
  271. package/types/fomantic-ui-modal.d.ts +1 -1
  272. package/types/fomantic-ui-search.d.ts +12 -6
  273. package/types/fomantic-ui-toast.d.ts +1 -1
  274. package/src/themes/basic/assets/fonts/icons.woff +0 -0
  275. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  276. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  277. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  278. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  279. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  280. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  281. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  282. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  283. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  284. package/src/themes/default/assets/fonts/icons.woff +0 -0
  285. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  286. package/src/themes/github/assets/fonts/octicons.woff +0 -0
  287. package/src/themes/material/assets/fonts/icons.woff +0 -0
@@ -20,74 +20,70 @@
20
20
  : globalThis;
21
21
 
22
22
  $.fn.popup = function (parameters) {
23
- var
24
- $allModules = $(this),
25
- $document = $(document),
26
- $window = $(window),
27
- $body = $('body'),
28
-
29
- clickEvent = 'ontouchstart' in document.documentElement
30
- ? 'touchstart'
31
- : 'click',
32
-
33
- time = Date.now(),
34
- performance = [],
35
-
36
- query = arguments[0],
37
- methodInvoked = typeof query === 'string',
38
- queryArguments = [].slice.call(arguments, 1),
39
- contextCheck = function (context, win) {
40
- var $context;
41
- if ([window, document].indexOf(context) >= 0) {
42
- $context = $(context);
43
- } else {
44
- $context = $(win.document).find(context);
45
- if ($context.length === 0) {
46
- $context = win.frameElement ? contextCheck(context, win.parent) : $body;
47
- }
23
+ let $allModules = $(this);
24
+ let $document = $(document);
25
+ let $window = $(window);
26
+ let $body = $('body');
27
+
28
+ let clickEvent = 'ontouchstart' in document.documentElement
29
+ ? 'touchstart'
30
+ : 'click';
31
+
32
+ let time = Date.now();
33
+ let performance = [];
34
+
35
+ let query = arguments[0];
36
+ let methodInvoked = typeof query === 'string';
37
+ let queryArguments = [].slice.call(arguments, 1);
38
+ let contextCheck = function (context, win) {
39
+ let $context;
40
+ if ([window, document].indexOf(context) >= 0) {
41
+ $context = $(context);
42
+ } else {
43
+ $context = $(win.document).find(context);
44
+ if ($context.length === 0) {
45
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
48
46
  }
47
+ }
49
48
 
50
- return $context;
51
- },
49
+ return $context;
50
+ };
52
51
 
53
- returnedValue
54
- ;
52
+ let returnedValue;
55
53
  $allModules.each(function () {
56
- var
57
- settings = $.isPlainObject(parameters)
58
- ? $.extend(true, {}, $.fn.popup.settings, parameters)
59
- : $.extend({}, $.fn.popup.settings),
60
-
61
- selector = settings.selector,
62
- className = settings.className,
63
- error = settings.error,
64
- metadata = settings.metadata,
65
- namespace = settings.namespace,
66
-
67
- eventNamespace = '.' + settings.namespace,
68
- moduleNamespace = 'module-' + namespace,
69
-
70
- $module = $(this),
71
- $context = contextCheck(settings.context, window),
72
- $scrollContext = contextCheck(settings.scrollContext, window),
73
- $boundary = contextCheck(settings.boundary, window),
74
- $target = settings.target ? contextCheck(settings.target, window) : $module,
75
-
76
- $popup,
77
- $offsetParent,
78
-
79
- searchDepth = 0,
80
- triedPositions = false,
81
- openedWithTouch = false,
82
-
83
- element = this,
84
- instance = $module.data(moduleNamespace),
85
-
86
- documentObserver,
87
- elementNamespace,
88
- id,
89
- module
90
- ;
54
+ let settings = $.isPlainObject(parameters)
55
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
56
+ : $.extend({}, $.fn.popup.settings);
57
+
58
+ let selector = settings.selector;
59
+ let className = settings.className;
60
+ let error = settings.error;
61
+ let metadata = settings.metadata;
62
+ let namespace = settings.namespace;
63
+
64
+ let eventNamespace = '.' + settings.namespace;
65
+ let moduleNamespace = 'module-' + namespace;
66
+
67
+ let $module = $(this);
68
+ let $context = contextCheck(settings.context, window);
69
+ let $scrollContext = contextCheck(settings.scrollContext, window);
70
+ let $boundary = contextCheck(settings.boundary, window);
71
+ let $target = settings.target ? contextCheck(settings.target, window) : $module;
72
+
73
+ let $popup;
74
+ let $offsetParent;
75
+
76
+ let searchDepth = 0;
77
+ let triedPositions = false;
78
+ let openedWithTouch = false;
79
+
80
+ let element = this;
81
+ let instance = $module.data(moduleNamespace);
82
+
83
+ let documentObserver;
84
+ let elementNamespace;
85
+ let id;
86
+ let module;
91
87
 
92
88
  module = {
93
89
 
@@ -109,19 +105,16 @@
109
105
  module.verbose('Storing instance', module);
110
106
  instance = module;
111
107
  $module
112
- .data(moduleNamespace, instance)
113
- ;
108
+ .data(moduleNamespace, instance);
114
109
  },
115
110
 
116
111
  observeChanges: function () {
117
- if ('MutationObserver' in window) {
118
- documentObserver = new MutationObserver(module.event.documentChanged);
119
- documentObserver.observe(document, {
120
- childList: true,
121
- subtree: true,
122
- });
123
- module.debug('Setting up mutation observer', documentObserver);
124
- }
112
+ documentObserver = new MutationObserver(module.event.documentChanged);
113
+ documentObserver.observe(document, {
114
+ childList: true,
115
+ subtree: true,
116
+ });
117
+ module.debug('Setting up mutation observer', documentObserver);
125
118
  },
126
119
 
127
120
  refresh: function () {
@@ -141,8 +134,7 @@
141
134
  module.debug('Moving popup to the same offset parent as target');
142
135
  $popup
143
136
  .detach()
144
- .appendTo($offsetParent)
145
- ;
137
+ .appendTo($offsetParent);
146
138
  }
147
139
  } else {
148
140
  $offsetParent = settings.inline
@@ -170,7 +162,7 @@
170
162
  if (documentObserver) {
171
163
  documentObserver.disconnect();
172
164
  }
173
- // remove element only if was created dynamically
165
+ // remove the element only if was created dynamically
174
166
  if ($popup && !settings.preserve) {
175
167
  module.removePopup();
176
168
  }
@@ -181,17 +173,14 @@
181
173
  module.unbind.close();
182
174
  module.unbind.events();
183
175
  $module
184
- .removeData(moduleNamespace)
185
- ;
176
+ .removeData(moduleNamespace);
186
177
  },
187
178
 
188
179
  event: {
189
180
  start: function (event) {
190
- var
191
- delay = $.isPlainObject(settings.delay)
192
- ? settings.delay.show
193
- : settings.delay
194
- ;
181
+ let delay = $.isPlainObject(settings.delay)
182
+ ? settings.delay.show
183
+ : settings.delay;
195
184
  clearTimeout(module.hideTimer);
196
185
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
197
186
  module.showTimer = setTimeout(function () {
@@ -200,11 +189,9 @@
200
189
  }
201
190
  },
202
191
  end: function () {
203
- var
204
- delay = $.isPlainObject(settings.delay)
205
- ? settings.delay.hide
206
- : settings.delay
207
- ;
192
+ let delay = $.isPlainObject(settings.delay)
193
+ ? settings.delay.hide
194
+ : settings.delay;
208
195
  clearTimeout(module.showTimer);
209
196
  module.hideTimer = setTimeout(function () {
210
197
  module.hide();
@@ -234,11 +221,9 @@
234
221
  });
235
222
  },
236
223
  hideGracefully: function (event) {
237
- var
238
- $target = $(event.target),
239
- isInDOM = $.contains(document.documentElement, event.target),
240
- inPopup = $target.closest(selector.popup).length > 0
241
- ;
224
+ let $target = $(event.target);
225
+ let isInDOM = $.contains(document.documentElement, event.target);
226
+ let inPopup = $target.closest(selector.popup).length > 0;
242
227
  // don't close on clicks inside popup
243
228
  if (event && !inPopup && isInDOM) {
244
229
  module.debug('Click occurred outside popup hiding popup');
@@ -251,13 +236,11 @@
251
236
 
252
237
  // generates popup html from metadata
253
238
  create: function () {
254
- var
255
- targetSibling = $target.next(selector.popup),
256
- contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false,
257
- html = module.get.html(),
258
- title = module.get.title(),
259
- content = module.get.content(contentFallback)
260
- ;
239
+ let targetSibling = $target.next(selector.popup);
240
+ let contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false;
241
+ let html = module.get.html();
242
+ let title = module.get.title();
243
+ let content = module.get.content(contentFallback);
261
244
 
262
245
  if (html || content || title) {
263
246
  module.debug('Creating pop-up html');
@@ -270,18 +253,15 @@
270
253
  $popup = $('<div/>')
271
254
  .addClass(className.popup)
272
255
  .data(metadata.activator, $module)
273
- .html(html)
274
- ;
256
+ .html(html);
275
257
  if (settings.inline) {
276
258
  module.verbose('Inserting popup element inline', $popup);
277
259
  $popup
278
- .insertAfter($module)
279
- ;
260
+ .insertAfter($module);
280
261
  } else {
281
262
  module.verbose('Appending popup element to body', $popup);
282
263
  $popup
283
- .appendTo($context)
284
- ;
264
+ .appendTo($context);
285
265
  }
286
266
  module.refresh();
287
267
  module.set.variation();
@@ -375,10 +355,8 @@
375
355
  .each(function () {
376
356
  $(this)
377
357
  .data(metadata.activator)
378
- .popup('hide')
379
- ;
380
- })
381
- ;
358
+ .popup('hide');
359
+ });
382
360
  },
383
361
  exists: function () {
384
362
  if (!$popup) {
@@ -444,8 +422,7 @@
444
422
  callback.call($popup, element);
445
423
  settings.onVisible.call($popup, element);
446
424
  },
447
- })
448
- ;
425
+ });
449
426
  }
450
427
  },
451
428
  hide: function (callback) {
@@ -465,8 +442,7 @@
465
442
  callback.call($popup, element);
466
443
  settings.onHidden.call($popup, element);
467
444
  },
468
- })
469
- ;
445
+ });
470
446
  } else {
471
447
  module.error(error.noTransition);
472
448
  }
@@ -507,23 +483,21 @@
507
483
  return $popup.offset();
508
484
  },
509
485
  calculations: function () {
510
- var
511
- $popupOffsetParent = module.get.offsetParent($popup),
512
- targetElement = $target[0],
513
- isWindowEl = $boundary[0] === window,
514
- targetOffset = $target.offset(),
515
- parentOffset = settings.inline || (settings.popup && settings.movePopup)
516
- ? $target.offsetParent().offset()
517
- : { top: 0, left: 0 },
518
- screenPosition = isWindowEl
519
- ? { top: 0, left: 0 }
520
- : $boundary.offset(),
521
- calculations = {},
522
- scroll = isWindowEl
523
- ? { top: $window.scrollTop(), left: $window.scrollLeft() }
524
- : { top: 0, left: 0 },
525
- screen
526
- ;
486
+ let $popupOffsetParent = module.get.offsetParent($popup);
487
+ let targetElement = $target[0];
488
+ let isWindowEl = $boundary[0] === window;
489
+ let targetOffset = $target.offset();
490
+ let parentOffset = settings.inline || (settings.popup && settings.movePopup)
491
+ ? $target.offsetParent().offset()
492
+ : { top: 0, left: 0 };
493
+ let screenPosition = isWindowEl
494
+ ? { top: 0, left: 0 }
495
+ : $boundary.offset();
496
+ let calculations = {};
497
+ let scroll = isWindowEl
498
+ ? { top: $window.scrollTop(), left: $window.scrollLeft() }
499
+ : { top: 0, left: 0 };
500
+ let screen;
527
501
  calculations = {
528
502
  // element which is launching popup
529
503
  target: {
@@ -557,11 +531,9 @@
557
531
  },
558
532
  };
559
533
 
560
- // if popup offset context is not same as target, then adjust calculations
534
+ // if popup offset context is different from target, then adjust calculations
561
535
  if ($popupOffsetParent[0] !== $offsetParent[0]) {
562
- var
563
- popupOffset = $popupOffsetParent.offset()
564
- ;
536
+ let popupOffset = $popupOffsetParent.offset();
565
537
  calculations.target.top -= popupOffset.top;
566
538
  calculations.target.left -= popupOffset.left;
567
539
  calculations.parent.width = $popupOffsetParent.outerWidth();
@@ -623,11 +595,9 @@
623
595
  return false;
624
596
  },
625
597
  distanceFromBoundary: function (offset, calculations) {
626
- var
627
- distanceFromBoundary = {},
628
- popup,
629
- boundary
630
- ;
598
+ let distanceFromBoundary = {};
599
+ let popup;
600
+ let boundary;
631
601
  calculations = calculations || module.get.calculations();
632
602
 
633
603
  // shorthand
@@ -647,19 +617,15 @@
647
617
  return distanceFromBoundary;
648
618
  },
649
619
  offsetParent: function ($element) {
650
- var
651
- element = $element !== undefined
652
- ? $element[0]
653
- : $target[0],
654
- parentNode = element.parentNode,
655
- $node = $(parentNode)
656
- ;
620
+ let element = $element !== undefined
621
+ ? $element[0]
622
+ : $target[0];
623
+ let parentNode = element.parentNode;
624
+ let $node = $(parentNode);
657
625
  if (parentNode) {
658
- var
659
- is2D = $node.css('transform') === 'none',
660
- isStatic = $node.css('position') === 'static',
661
- isBody = $node.is('body')
662
- ;
626
+ let is2D = $node.css('transform') === 'none';
627
+ let isStatic = $node.css('position') === 'static';
628
+ let isBody = $node.is('body');
663
629
  while (parentNode && !isBody && isStatic && is2D) {
664
630
  parentNode = parentNode.parentNode;
665
631
  $node = $(parentNode);
@@ -686,36 +652,34 @@
686
652
  };
687
653
  },
688
654
  nextPosition: function (position) {
689
- var
690
- positions = position.split(' '),
691
- verticalPosition = positions[0],
692
- horizontalPosition = positions[1],
693
- opposite = {
694
- top: 'bottom',
695
- bottom: 'top',
696
- left: 'right',
697
- right: 'left',
698
- },
699
- adjacent = {
700
- left: 'center',
701
- center: 'right',
702
- right: 'left',
703
- },
704
- backup = {
705
- 'top left': 'top center',
706
- 'top center': 'top right',
707
- 'top right': 'right center',
708
- 'right center': 'bottom right',
709
- 'bottom right': 'bottom center',
710
- 'bottom center': 'bottom left',
711
- 'bottom left': 'left center',
712
- 'left center': 'top left',
713
- },
714
- adjacentsAvailable = verticalPosition === 'top' || verticalPosition === 'bottom',
715
- oppositeTried = false,
716
- adjacentTried = false,
717
- nextPosition = false
718
- ;
655
+ let positions = position.split(' ');
656
+ let verticalPosition = positions[0];
657
+ let horizontalPosition = positions[1];
658
+ let opposite = {
659
+ top: 'bottom',
660
+ bottom: 'top',
661
+ left: 'right',
662
+ right: 'left',
663
+ };
664
+ let adjacent = {
665
+ left: 'center',
666
+ center: 'right',
667
+ right: 'left',
668
+ };
669
+ let backup = {
670
+ 'top left': 'top center',
671
+ 'top center': 'top right',
672
+ 'top right': 'right center',
673
+ 'right center': 'bottom right',
674
+ 'bottom right': 'bottom center',
675
+ 'bottom center': 'bottom left',
676
+ 'bottom left': 'left center',
677
+ 'left center': 'top left',
678
+ };
679
+ let adjacentsAvailable = verticalPosition === 'top' || verticalPosition === 'bottom';
680
+ let oppositeTried = false;
681
+ let adjacentTried = false;
682
+ let nextPosition = false;
719
683
  if (!triedPositions) {
720
684
  module.verbose('All available positions available');
721
685
  triedPositions = module.get.positions();
@@ -753,16 +717,14 @@
753
717
 
754
718
  return;
755
719
  }
756
- var
757
- offset,
758
- distanceAway,
759
- target,
760
- popup,
761
- parent,
762
- positioning,
763
- popupOffset,
764
- distanceFromBoundary
765
- ;
720
+ let offset;
721
+ let distanceAway;
722
+ let target;
723
+ let popup;
724
+ let parent;
725
+ let positioning;
726
+ let popupOffset;
727
+ let distanceFromBoundary;
766
728
 
767
729
  calculations = calculations || module.get.calculations();
768
730
  position = position || $module.data(metadata.position) || settings.position;
@@ -818,7 +780,7 @@
818
780
  module.debug('RTL: Popup position updated', position);
819
781
  }
820
782
 
821
- // if last attempt use specified last resort position
783
+ // if last attempt, use specified last resort position
822
784
  if (searchDepth === settings.maxSearchDepth && typeof settings.lastResort === 'string') {
823
785
  position = settings.lastResort;
824
786
  }
@@ -915,8 +877,7 @@
915
877
  $popup
916
878
  .css(positioning)
917
879
  .removeClass(className.position)
918
- .addClass(position)
919
- ;
880
+ .addClass(position);
920
881
  module.set.invisible();
921
882
 
922
883
  popupOffset = module.get.popupOffset();
@@ -1014,19 +975,16 @@
1014
975
  module.debug('Binding popup events to module');
1015
976
  if (settings.on === 'click') {
1016
977
  $module
1017
- .on(clickEvent + eventNamespace, module.toggle)
1018
- ;
978
+ .on(clickEvent + eventNamespace, module.toggle);
1019
979
  }
1020
980
  if (settings.on === 'hover') {
1021
981
  $module
1022
- .on('touchstart' + eventNamespace, module.event.touchstart)
1023
- ;
982
+ .on('touchstart' + eventNamespace, module.event.touchstart);
1024
983
  }
1025
984
  if (module.get.startEvent()) {
1026
985
  $module
1027
986
  .on(module.get.startEvent() + eventNamespace, module.event.start)
1028
- .on(module.get.endEvent() + eventNamespace, module.event.end)
1029
- ;
987
+ .on(module.get.endEvent() + eventNamespace, module.event.end);
1030
988
  }
1031
989
  if (settings.target) {
1032
990
  module.debug('Target set to element', $target);
@@ -1038,8 +996,7 @@
1038
996
  if ($popup && module.has.popup()) {
1039
997
  $popup
1040
998
  .on('mouseenter' + eventNamespace, module.event.start)
1041
- .on('mouseleave' + eventNamespace, module.event.end)
1042
- ;
999
+ .on('mouseleave' + eventNamespace, module.event.end);
1043
1000
  }
1044
1001
  },
1045
1002
  close: function () {
@@ -1055,8 +1012,7 @@
1055
1012
  closeOnScroll: function () {
1056
1013
  module.verbose('Binding scroll close event to document');
1057
1014
  $scrollContext
1058
- .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully)
1059
- ;
1015
+ .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully);
1060
1016
  },
1061
1017
  touchClose: function () {
1062
1018
  module.verbose('Binding popup touchclose event to document');
@@ -1064,8 +1020,7 @@
1064
1020
  .on('touchstart' + elementNamespace, function (event) {
1065
1021
  module.verbose('Touched away from popup');
1066
1022
  module.event.hideGracefully.call(element, event);
1067
- })
1068
- ;
1023
+ });
1069
1024
  },
1070
1025
  clickaway: function () {
1071
1026
  module.verbose('Binding popup close event to document');
@@ -1073,27 +1028,22 @@
1073
1028
  .on(clickEvent + elementNamespace, function (event) {
1074
1029
  module.verbose('Clicked away from popup');
1075
1030
  module.event.hideGracefully.call(element, event);
1076
- })
1077
- ;
1031
+ });
1078
1032
  },
1079
1033
  },
1080
1034
 
1081
1035
  unbind: {
1082
1036
  events: function () {
1083
1037
  $window
1084
- .off(elementNamespace)
1085
- ;
1038
+ .off(elementNamespace);
1086
1039
  $module
1087
- .off(eventNamespace)
1088
- ;
1040
+ .off(eventNamespace);
1089
1041
  },
1090
1042
  close: function () {
1091
1043
  $document
1092
- .off(elementNamespace)
1093
- ;
1044
+ .off(elementNamespace);
1094
1045
  $scrollContext
1095
- .off(elementNamespace)
1096
- ;
1046
+ .off(elementNamespace);
1097
1047
  },
1098
1048
  },
1099
1049
 
@@ -1129,9 +1079,7 @@
1129
1079
  return settings.closable;
1130
1080
  },
1131
1081
  offstage: function (distanceFromBoundary, position) {
1132
- var
1133
- offstage = []
1134
- ;
1082
+ let offstage = [];
1135
1083
  // return boundaries that have been surpassed
1136
1084
  $.each(distanceFromBoundary, function (direction, distance) {
1137
1085
  if (distance < -settings.jitter) {
@@ -1176,8 +1124,7 @@
1176
1124
  if (settings.preserve) {
1177
1125
  if ($.fn.transition !== undefined) {
1178
1126
  $popup
1179
- .transition('remove transition')
1180
- ;
1127
+ .transition('remove transition');
1181
1128
  }
1182
1129
  } else {
1183
1130
  module.removePopup();
@@ -1230,11 +1177,9 @@
1230
1177
  },
1231
1178
  performance: {
1232
1179
  log: function (message) {
1233
- var
1234
- currentTime,
1235
- executionTime,
1236
- previousTime
1237
- ;
1180
+ let currentTime;
1181
+ let executionTime;
1182
+ let previousTime;
1238
1183
  if (settings.performance) {
1239
1184
  currentTime = Date.now();
1240
1185
  previousTime = time || currentTime;
@@ -1253,10 +1198,8 @@
1253
1198
  }, 500);
1254
1199
  },
1255
1200
  display: function () {
1256
- var
1257
- title = settings.name + ':',
1258
- totalTime = 0
1259
- ;
1201
+ let title = settings.name + ':';
1202
+ let totalTime = 0;
1260
1203
  time = false;
1261
1204
  clearTimeout(module.performance.timer);
1262
1205
  $.each(performance, function (index, data) {
@@ -1278,22 +1221,19 @@
1278
1221
  },
1279
1222
  },
1280
1223
  invoke: function (query, passedArguments, context) {
1281
- var
1282
- object = instance,
1283
- maxDepth,
1284
- found,
1285
- response
1286
- ;
1224
+ let object = instance;
1225
+ let maxDepth;
1226
+ let found;
1227
+ let response;
1287
1228
  passedArguments = passedArguments || queryArguments;
1288
1229
  context = context || element;
1289
1230
  if (typeof query === 'string' && object !== undefined) {
1290
1231
  query = query.split(/[ .]/);
1291
1232
  maxDepth = query.length - 1;
1292
1233
  $.each(query, function (depth, value) {
1293
- var camelCaseValue = depth !== maxDepth
1234
+ let camelCaseValue = depth !== maxDepth
1294
1235
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
1295
- : query
1296
- ;
1236
+ : query;
1297
1237
  if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
1298
1238
  object = object[camelCaseValue];
1299
1239
  } else if (object[camelCaseValue] !== undefined) {
@@ -1362,7 +1302,7 @@
1362
1302
  // whether it should use dom mutation observers
1363
1303
  observeChanges: true,
1364
1304
 
1365
- // callback only when element added to dom
1305
+ // callback only when the element was added to dom
1366
1306
  onCreate: function () {},
1367
1307
 
1368
1308
  // callback before element removed from dom
@@ -1407,7 +1347,7 @@
1407
1347
  // element which popup should be relative to
1408
1348
  target: false,
1409
1349
 
1410
- // jq selector or element that should be used as popup
1350
+ // jQuery selector or element that should be used as a popup
1411
1351
  popup: false,
1412
1352
 
1413
1353
  // popup should remain inline next to activator
@@ -1422,7 +1362,7 @@
1422
1362
  // explicitly set content
1423
1363
  content: false,
1424
1364
 
1425
- // explicitly set html
1365
+ // explicitly set HTML
1426
1366
  html: false,
1427
1367
 
1428
1368
  // explicitly set title
@@ -1465,7 +1405,7 @@
1465
1405
  duration: 200,
1466
1406
  transition: 'scale',
1467
1407
 
1468
- // distance away from activating element in px
1408
+ // distance away from the activating element in px
1469
1409
  distanceAway: 0,
1470
1410
 
1471
1411
  // number of pixels an element is allowed to be "offstage" for a position to be chosen (allows for rounding)
@@ -1515,33 +1455,20 @@
1515
1455
 
1516
1456
  templates: {
1517
1457
  escape: function (string) {
1518
- var
1519
- badChars = /["'<>`]/g,
1520
- shouldEscape = /["&'<>`]/,
1521
- escape = {
1522
- '<': '&lt;',
1523
- '>': '&gt;',
1524
- '"': '&quot;',
1525
- "'": '&#x27;',
1526
- '`': '&#x60;',
1527
- },
1528
- escapedChar = function (chr) {
1529
- return escape[chr];
1530
- }
1531
- ;
1532
- if (shouldEscape.test(string)) {
1533
- string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
1534
-
1535
- return string.replace(badChars, escapedChar);
1536
- }
1537
-
1538
- return string;
1458
+ const badChars = /["'<>]|&(?![\d#A-Za-z]{1,12};)/g;
1459
+ const escape = {
1460
+ '"': '&quot;',
1461
+ '&': '&amp;',
1462
+ "'": '&apos;',
1463
+ '<': '&lt;',
1464
+ '>': '&gt;',
1465
+ };
1466
+
1467
+ return String(string).replace(badChars, (chr) => escape[chr]);
1539
1468
  },
1540
1469
  popup: function (text) {
1541
- var
1542
- html = '',
1543
- escape = $.fn.popup.settings.templates.escape
1544
- ;
1470
+ let html = '';
1471
+ let escape = $.fn.popup.settings.templates.escape;
1545
1472
  if (text !== undefined) {
1546
1473
  if (text.title) {
1547
1474
  text.title = escape(text.title);