fomantic-ui 2.9.1-beta.2 → 2.9.1-beta.20

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 (339) hide show
  1. package/.eslintrc.js +110 -0
  2. package/.github/workflows/ci.yml +14 -4
  3. package/.stylelintrc.js +46 -0
  4. package/dist/components/accordion.css +19 -26
  5. package/dist/components/accordion.js +568 -595
  6. package/dist/components/accordion.min.css +1 -1
  7. package/dist/components/accordion.min.js +2 -2
  8. package/dist/components/ad.css +31 -41
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +1161 -1179
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +71 -106
  15. package/dist/components/button.min.css +1 -1
  16. package/dist/components/calendar.css +18 -16
  17. package/dist/components/calendar.js +1895 -1809
  18. package/dist/components/calendar.min.css +2 -2
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +83 -115
  21. package/dist/components/card.min.css +1 -1
  22. package/dist/components/checkbox.css +47 -64
  23. package/dist/components/checkbox.js +842 -841
  24. package/dist/components/checkbox.min.css +1 -1
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +37 -51
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +6 -5
  29. package/dist/components/container.min.css +2 -2
  30. package/dist/components/dimmer.css +31 -41
  31. package/dist/components/dimmer.js +708 -737
  32. package/dist/components/dimmer.min.css +1 -1
  33. package/dist/components/dimmer.min.js +2 -2
  34. package/dist/components/divider.css +32 -44
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +129 -166
  37. package/dist/components/dropdown.js +4161 -4234
  38. package/dist/components/dropdown.min.css +2 -2
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +13 -19
  41. package/dist/components/embed.js +651 -675
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/emoji.css +7 -6
  45. package/dist/components/feed.css +24 -32
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +5 -3
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +44 -58
  50. package/dist/components/flyout.js +1464 -1465
  51. package/dist/components/flyout.min.css +2 -2
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +85 -111
  54. package/dist/components/form.js +1979 -2004
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +70 -96
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +47 -65
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +45 -66
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +32 -42
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +182 -65
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +55 -77
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +68 -91
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +44 -59
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +16 -22
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +126 -186
  76. package/dist/components/message.css +25 -35
  77. package/dist/components/message.min.css +1 -1
  78. package/dist/components/modal.css +39 -40
  79. package/dist/components/modal.js +1491 -1485
  80. package/dist/components/modal.min.css +2 -2
  81. package/dist/components/modal.min.js +2 -2
  82. package/dist/components/nag.css +21 -28
  83. package/dist/components/nag.js +518 -526
  84. package/dist/components/nag.min.css +2 -2
  85. package/dist/components/nag.min.js +2 -2
  86. package/dist/components/placeholder.css +10 -12
  87. package/dist/components/placeholder.min.css +1 -1
  88. package/dist/components/popup.css +352 -59
  89. package/dist/components/popup.js +1437 -1456
  90. package/dist/components/popup.min.css +2 -2
  91. package/dist/components/popup.min.js +2 -2
  92. package/dist/components/progress.css +29 -39
  93. package/dist/components/progress.js +969 -997
  94. package/dist/components/progress.min.css +1 -1
  95. package/dist/components/progress.min.js +2 -2
  96. package/dist/components/rail.css +15 -20
  97. package/dist/components/rail.min.css +1 -1
  98. package/dist/components/rating.css +9 -13
  99. package/dist/components/rating.js +505 -523
  100. package/dist/components/rating.min.css +1 -1
  101. package/dist/components/rating.min.js +2 -2
  102. package/dist/components/reset.css +1 -1
  103. package/dist/components/reset.min.css +1 -1
  104. package/dist/components/reveal.css +19 -26
  105. package/dist/components/reveal.min.css +1 -1
  106. package/dist/components/search.css +43 -58
  107. package/dist/components/search.js +1498 -1534
  108. package/dist/components/search.min.css +2 -2
  109. package/dist/components/search.min.js +2 -2
  110. package/dist/components/segment.css +64 -83
  111. package/dist/components/segment.min.css +2 -2
  112. package/dist/components/shape.css +10 -14
  113. package/dist/components/shape.js +792 -809
  114. package/dist/components/shape.min.css +1 -1
  115. package/dist/components/shape.min.js +2 -2
  116. package/dist/components/sidebar.css +43 -58
  117. package/dist/components/sidebar.js +1071 -1098
  118. package/dist/components/sidebar.min.css +2 -2
  119. package/dist/components/sidebar.min.js +2 -2
  120. package/dist/components/site.css +5 -5
  121. package/dist/components/site.js +462 -476
  122. package/dist/components/site.min.css +1 -1
  123. package/dist/components/site.min.js +2 -2
  124. package/dist/components/slider.css +27 -37
  125. package/dist/components/slider.js +1287 -1306
  126. package/dist/components/slider.min.js +2 -2
  127. package/dist/components/state.js +639 -657
  128. package/dist/components/state.min.js +2 -2
  129. package/dist/components/statistic.css +32 -41
  130. package/dist/components/statistic.min.css +2 -2
  131. package/dist/components/step.css +26 -35
  132. package/dist/components/step.min.css +1 -1
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +857 -902
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +2 -2
  137. package/dist/components/tab.css +6 -8
  138. package/dist/components/tab.js +922 -963
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +2 -2
  141. package/dist/components/table.css +93 -119
  142. package/dist/components/table.min.css +2 -2
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +4 -6
  146. package/dist/components/toast.js +886 -887
  147. package/dist/components/toast.min.css +1 -1
  148. package/dist/components/toast.min.js +2 -2
  149. package/dist/components/transition.css +150 -3
  150. package/dist/components/transition.js +1041 -1077
  151. package/dist/components/transition.min.css +2 -2
  152. package/dist/components/transition.min.js +2 -2
  153. package/dist/components/visibility.js +1220 -1244
  154. package/dist/components/visibility.min.js +2 -2
  155. package/dist/semantic.css +2529 -1778
  156. package/dist/semantic.js +28928 -29383
  157. package/dist/semantic.min.css +2 -2
  158. package/dist/semantic.min.js +2 -2
  159. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  160. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  161. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  162. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  163. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  164. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  165. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  168. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  172. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  175. package/examples/assets/show-examples.js +13 -13
  176. package/gulpfile.js +9 -10
  177. package/package.json +13 -8
  178. package/scripts/nightly-version.js +81 -75
  179. package/src/definitions/behaviors/api.js +1162 -1180
  180. package/src/definitions/behaviors/form.js +1978 -2003
  181. package/src/definitions/behaviors/state.js +645 -663
  182. package/src/definitions/behaviors/visibility.js +1219 -1243
  183. package/src/definitions/collections/breadcrumb.less +41 -44
  184. package/src/definitions/collections/form.less +869 -879
  185. package/src/definitions/collections/grid.less +1690 -1695
  186. package/src/definitions/collections/menu.less +1493 -1503
  187. package/src/definitions/collections/message.less +292 -295
  188. package/src/definitions/collections/table.less +1616 -1620
  189. package/src/definitions/elements/button.less +1721 -1743
  190. package/src/definitions/elements/container.less +209 -209
  191. package/src/definitions/elements/divider.less +205 -206
  192. package/src/definitions/elements/emoji.less +38 -44
  193. package/src/definitions/elements/flag.less +44 -46
  194. package/src/definitions/elements/header.less +337 -345
  195. package/src/definitions/elements/icon.less +516 -443
  196. package/src/definitions/elements/image.less +221 -225
  197. package/src/definitions/elements/input.less +663 -659
  198. package/src/definitions/elements/label.less +803 -793
  199. package/src/definitions/elements/list.less +809 -809
  200. package/src/definitions/elements/loader.less +272 -266
  201. package/src/definitions/elements/placeholder.less +171 -168
  202. package/src/definitions/elements/rail.less +91 -91
  203. package/src/definitions/elements/reveal.less +192 -196
  204. package/src/definitions/elements/segment.less +743 -746
  205. package/src/definitions/elements/step.less +425 -433
  206. package/src/definitions/elements/text.less +32 -34
  207. package/src/definitions/globals/reset.less +9 -6
  208. package/src/definitions/globals/site.js +461 -475
  209. package/src/definitions/globals/site.less +106 -108
  210. package/src/definitions/modules/accordion.js +567 -594
  211. package/src/definitions/modules/accordion.less +242 -246
  212. package/src/definitions/modules/calendar.js +1894 -1808
  213. package/src/definitions/modules/calendar.less +98 -95
  214. package/src/definitions/modules/checkbox.js +841 -840
  215. package/src/definitions/modules/checkbox.less +536 -542
  216. package/src/definitions/modules/dimmer.js +707 -736
  217. package/src/definitions/modules/dimmer.less +300 -297
  218. package/src/definitions/modules/dropdown.js +4160 -4233
  219. package/src/definitions/modules/dropdown.less +1577 -1589
  220. package/src/definitions/modules/embed.js +650 -674
  221. package/src/definitions/modules/embed.less +81 -82
  222. package/src/definitions/modules/flyout.js +1463 -1464
  223. package/src/definitions/modules/flyout.less +445 -451
  224. package/src/definitions/modules/modal.js +1490 -1484
  225. package/src/definitions/modules/modal.less +459 -459
  226. package/src/definitions/modules/nag.js +517 -525
  227. package/src/definitions/modules/nag.less +134 -138
  228. package/src/definitions/modules/popup.js +1436 -1455
  229. package/src/definitions/modules/popup.less +742 -687
  230. package/src/definitions/modules/progress.js +968 -996
  231. package/src/definitions/modules/progress.less +521 -494
  232. package/src/definitions/modules/rating.js +504 -522
  233. package/src/definitions/modules/rating.less +94 -101
  234. package/src/definitions/modules/search.js +1497 -1533
  235. package/src/definitions/modules/search.less +375 -382
  236. package/src/definitions/modules/shape.js +791 -808
  237. package/src/definitions/modules/shape.less +71 -76
  238. package/src/definitions/modules/sidebar.js +1070 -1097
  239. package/src/definitions/modules/sidebar.less +463 -472
  240. package/src/definitions/modules/slider.js +1286 -1305
  241. package/src/definitions/modules/slider.less +307 -308
  242. package/src/definitions/modules/sticky.js +873 -918
  243. package/src/definitions/modules/sticky.less +21 -23
  244. package/src/definitions/modules/tab.js +921 -962
  245. package/src/definitions/modules/tab.less +51 -52
  246. package/src/definitions/modules/toast.js +885 -886
  247. package/src/definitions/modules/toast.less +584 -586
  248. package/src/definitions/modules/transition.js +1040 -1076
  249. package/src/definitions/modules/transition.less +62 -28
  250. package/src/definitions/views/ad.less +206 -206
  251. package/src/definitions/views/card.less +968 -970
  252. package/src/definitions/views/comment.less +190 -198
  253. package/src/definitions/views/feed.less +220 -224
  254. package/src/definitions/views/item.less +436 -446
  255. package/src/definitions/views/statistic.less +271 -277
  256. package/src/theme.less +29 -32
  257. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  258. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  259. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  260. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  261. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  262. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  263. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  264. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  265. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  266. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  267. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  268. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  269. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  270. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  271. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  272. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  273. package/src/themes/default/elements/container.variables +0 -7
  274. package/src/themes/default/elements/icon.variables +18 -0
  275. package/src/themes/default/elements/segment.variables +0 -7
  276. package/src/themes/default/globals/colors.less +589 -589
  277. package/src/themes/default/globals/site.variables +8 -0
  278. package/src/themes/default/globals/variation.variables +13 -1
  279. package/src/themes/default/modules/calendar.variables +2 -0
  280. package/src/themes/default/modules/nag.variables +1 -1
  281. package/src/themes/default/modules/popup.variables +2 -0
  282. package/src/themes/default/modules/transition.variables +8 -1
  283. package/tasks/admin/components/create.js +274 -276
  284. package/tasks/admin/components/init.js +123 -130
  285. package/tasks/admin/components/update.js +149 -157
  286. package/tasks/admin/distributions/create.js +184 -187
  287. package/tasks/admin/distributions/init.js +123 -130
  288. package/tasks/admin/distributions/update.js +145 -152
  289. package/tasks/admin/publish.js +5 -7
  290. package/tasks/admin/register.js +36 -38
  291. package/tasks/admin/release.js +8 -10
  292. package/tasks/build/assets.js +42 -39
  293. package/tasks/build/css.js +225 -216
  294. package/tasks/build/javascript.js +118 -113
  295. package/tasks/build.js +10 -10
  296. package/tasks/check-install.js +14 -16
  297. package/tasks/clean.js +5 -5
  298. package/tasks/collections/admin.js +34 -36
  299. package/tasks/collections/build.js +18 -20
  300. package/tasks/collections/docs.js +9 -11
  301. package/tasks/collections/install.js +9 -11
  302. package/tasks/collections/rtl.js +9 -11
  303. package/tasks/collections/various.js +8 -10
  304. package/tasks/config/admin/github.js +17 -17
  305. package/tasks/config/admin/oauth.example.js +4 -4
  306. package/tasks/config/admin/release.js +98 -98
  307. package/tasks/config/admin/templates/component-package.js +9 -10
  308. package/tasks/config/admin/templates/css-package.js +18 -20
  309. package/tasks/config/admin/templates/less-package.js +11 -13
  310. package/tasks/config/defaults.js +116 -114
  311. package/tasks/config/docs.js +23 -23
  312. package/tasks/config/npm/gulpfile.js +8 -9
  313. package/tasks/config/project/config.js +127 -134
  314. package/tasks/config/project/install.js +715 -713
  315. package/tasks/config/project/release.js +32 -38
  316. package/tasks/config/tasks.js +165 -156
  317. package/tasks/config/user.js +23 -26
  318. package/tasks/docs/build.js +97 -95
  319. package/tasks/docs/metadata.js +90 -96
  320. package/tasks/docs/serve.js +80 -81
  321. package/tasks/install.js +370 -378
  322. package/tasks/rtl/build.js +2 -2
  323. package/tasks/rtl/watch.js +2 -2
  324. package/tasks/version.js +4 -4
  325. package/tasks/watch.js +28 -30
  326. package/test/meteor/assets.js +10 -13
  327. package/test/meteor/fonts.js +12 -13
  328. package/test/modules/accordion.spec.js +6 -8
  329. package/test/modules/checkbox.spec.js +5 -7
  330. package/test/modules/dropdown.spec.js +5 -7
  331. package/test/modules/modal.spec.js +6 -8
  332. package/test/modules/module.spec.js +158 -178
  333. package/test/modules/popup.spec.js +5 -7
  334. package/test/modules/search.spec.js +5 -7
  335. package/test/modules/shape.spec.js +5 -7
  336. package/test/modules/sidebar.spec.js +5 -7
  337. package/test/modules/tab.spec.js +6 -8
  338. package/test/modules/transition.spec.js +5 -7
  339. package/test/modules/video.spec.js +5 -7
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.2+f5a64f3 - Nag
2
+ * # Fomantic-UI 2.9.1-beta.20+d4987bf - Nag
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -8,551 +8,543 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
12
-
13
- 'use strict';
14
-
15
- $.isFunction = $.isFunction || function(obj) {
16
- return typeof obj === "function" && typeof obj.nodeType !== "number";
17
- };
18
-
19
- window = (typeof window != 'undefined' && window.Math == Math)
20
- ? window
21
- : (typeof self != 'undefined' && self.Math == Math)
22
- ? self
23
- : Function('return this')()
24
- ;
25
-
26
- $.fn.nag = function(parameters) {
27
- var
28
- $allModules = $(this),
29
- moduleSelector = $allModules.selector || '',
30
-
31
- time = new Date().getTime(),
32
- performance = [],
33
-
34
- query = arguments[0],
35
- methodInvoked = (typeof query == 'string'),
36
- queryArguments = [].slice.call(arguments, 1),
37
- returnedValue
38
- ;
39
- $allModules
40
- .each(function() {
41
- var
42
- settings = ( $.isPlainObject(parameters) )
43
- ? $.extend(true, {}, $.fn.nag.settings, parameters)
44
- : $.extend({}, $.fn.nag.settings),
45
-
46
- selector = settings.selector,
47
- error = settings.error,
48
- namespace = settings.namespace,
49
-
50
- eventNamespace = '.' + namespace,
51
- moduleNamespace = namespace + '-module',
52
-
53
- $module = $(this),
54
-
55
- $context = (settings.context)
56
- ? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
57
- : $('body'),
58
-
59
- element = this,
60
- instance = $module.data(moduleNamespace),
61
- storage,
62
- module
63
- ;
64
- module = {
65
-
66
- initialize: function() {
67
- module.verbose('Initializing element');
68
- storage = module.get.storage();
69
- $module
70
- .on('click' + eventNamespace, selector.close, module.dismiss)
71
- .data(moduleNamespace, module)
72
- ;
73
-
74
- if(settings.detachable && $module.parent()[0] !== $context[0]) {
75
- $module
76
- .detach()
77
- .prependTo($context)
78
- ;
79
- }
11
+ (function ($, window, document, undefined) {
12
+ 'use strict';
80
13
 
81
- if(settings.displayTime > 0) {
82
- setTimeout(module.hide, settings.displayTime);
83
- }
84
- module.show();
85
- },
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
86
17
 
87
- destroy: function() {
88
- module.verbose('Destroying instance');
89
- $module
90
- .removeData(moduleNamespace)
91
- .off(eventNamespace)
92
- ;
93
- },
18
+ window = (typeof window != 'undefined' && window.Math == Math)
19
+ ? window
20
+ : globalThis;
94
21
 
95
- show: function() {
96
- if( module.should.show() && !$module.is(':visible') ) {
97
- if(settings.onShow.call(element) === false) {
98
- module.debug('onShow callback returned false, cancelling nag animation');
99
- return false;
100
- }
101
- module.debug('Showing nag', settings.animation.show);
102
- if(settings.animation.show === 'fade') {
103
- $module
104
- .fadeIn(settings.duration, settings.easing, settings.onVisible)
105
- ;
106
- }
107
- else {
108
- $module
109
- .slideDown(settings.duration, settings.easing, settings.onVisible)
110
- ;
111
- }
112
- }
113
- },
22
+ $.fn.nag = function (parameters) {
23
+ var
24
+ $allModules = $(this),
25
+ moduleSelector = $allModules.selector || '',
114
26
 
115
- hide: function() {
116
- if(settings.onHide.call(element) === false) {
117
- module.debug('onHide callback returned false, cancelling nag animation');
118
- return false;
119
- }
120
- module.debug('Hiding nag', settings.animation.hide);
121
- if(settings.animation.hide === 'fade') {
122
- $module
123
- .fadeOut(settings.duration, settings.easing, settings.onHidden)
124
- ;
125
- }
126
- else {
127
- $module
128
- .slideUp(settings.duration, settings.easing, settings.onHidden)
27
+ time = new Date().getTime(),
28
+ performance = [],
29
+
30
+ query = arguments[0],
31
+ methodInvoked = (typeof query == 'string'),
32
+ queryArguments = [].slice.call(arguments, 1),
33
+ returnedValue
34
+ ;
35
+ $allModules.each(function () {
36
+ var
37
+ settings = ($.isPlainObject(parameters))
38
+ ? $.extend(true, {}, $.fn.nag.settings, parameters)
39
+ : $.extend({}, $.fn.nag.settings),
40
+
41
+ selector = settings.selector,
42
+ error = settings.error,
43
+ namespace = settings.namespace,
44
+
45
+ eventNamespace = '.' + namespace,
46
+ moduleNamespace = namespace + '-module',
47
+
48
+ $module = $(this),
49
+
50
+ $context = (settings.context)
51
+ ? ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
52
+ : $('body'),
53
+
54
+ element = this,
55
+ instance = $module.data(moduleNamespace),
56
+ storage,
57
+ module
129
58
  ;
130
- }
131
- },
59
+ module = {
132
60
 
133
- dismiss: function(event) {
134
- if(module.hide() !== false && settings.storageMethod) {
135
- module.debug('Dismissing nag', settings.storageMethod, settings.key, settings.value, settings.expires);
136
- module.storage.set(settings.key, settings.value);
137
- }
138
- event.stopImmediatePropagation();
139
- event.preventDefault();
140
- },
61
+ initialize: function () {
62
+ module.verbose('Initializing element');
63
+ if (typeof settings.value !== 'string') {
64
+ settings.value = JSON.stringify(settings.value);
65
+ }
66
+ storage = module.get.storage();
67
+ $module
68
+ .on('click' + eventNamespace, selector.close, module.dismiss)
69
+ .data(moduleNamespace, module)
70
+ ;
71
+
72
+ if (settings.detachable && $module.parent()[0] !== $context[0]) {
73
+ $module
74
+ .detach()
75
+ .prependTo($context)
76
+ ;
77
+ }
141
78
 
142
- should: {
143
- show: function() {
144
- if(settings.persist) {
145
- module.debug('Persistent nag is set, can show nag');
146
- return true;
147
- }
148
- if( module.storage.get(settings.key) != settings.value.toString() ) {
149
- module.debug('Stored value is not set, can show nag', module.storage.get(settings.key));
150
- return true;
151
- }
152
- module.debug('Stored value is set, cannot show nag', module.storage.get(settings.key));
153
- return false;
154
- }
155
- },
79
+ if (settings.displayTime > 0) {
80
+ setTimeout(module.hide, settings.displayTime);
81
+ }
82
+ module.show();
83
+ },
156
84
 
157
- get: {
158
- expirationDate: function(expires) {
159
- if (typeof expires === 'number') {
160
- expires = new Date(Date.now() + expires * 864e5);
161
- }
162
- if(expires instanceof Date && expires.getTime() ){
163
- return expires.toUTCString();
164
- } else {
165
- module.error(error.expiresFormat);
166
- }
167
- },
168
- storage: function(){
169
- if(settings.storageMethod === 'localstorage' && window.localStorage !== undefined) {
170
- module.debug('Using local storage');
171
- return window.localStorage;
172
- }
173
- else if(settings.storageMethod === 'sessionstorage' && window.sessionStorage !== undefined) {
174
- module.debug('Using session storage');
175
- return window.sessionStorage;
176
- }
177
- else if("cookie" in document) {
178
- module.debug('Using cookie');
179
- return {
180
- setItem: function(key, value, options) {
181
- // RFC6265 compliant encoding
182
- key = encodeURIComponent(key)
183
- .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
184
- .replace(/[()]/g, escape);
185
- value = encodeURIComponent(value)
186
- .replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);
187
-
188
- var cookieOptions = '';
189
- for (var option in options) {
190
- if (options.hasOwnProperty(option)) {
191
- cookieOptions += '; ' + option;
192
- if (typeof options[option] === 'string') {
193
- cookieOptions += '=' + options[option].split(';')[0];
194
- }
85
+ destroy: function () {
86
+ module.verbose('Destroying instance');
87
+ $module
88
+ .removeData(moduleNamespace)
89
+ .off(eventNamespace)
90
+ ;
91
+ },
92
+
93
+ show: function () {
94
+ if (module.should.show() && !$module.is(':visible')) {
95
+ if (settings.onShow.call(element) === false) {
96
+ module.debug('onShow callback returned false, cancelling nag animation');
97
+
98
+ return false;
99
+ }
100
+ module.debug('Showing nag', settings.animation.show);
101
+ if (settings.animation.show === 'fade') {
102
+ $module
103
+ .fadeIn(settings.duration, settings.easing, settings.onVisible)
104
+ ;
105
+ } else {
106
+ $module
107
+ .slideDown(settings.duration, settings.easing, settings.onVisible)
108
+ ;
109
+ }
195
110
  }
196
- }
197
- document.cookie = key + '=' + value + cookieOptions;
198
111
  },
199
- getItem: function(key) {
200
- var cookies = document.cookie.split('; ');
201
- for (var i = 0, il = cookies.length; i < il; i++) {
202
- var parts = cookies[i].split('='),
203
- foundKey = parts[0].replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
204
- if (key === foundKey) {
205
- return parts[1] || '';
112
+
113
+ hide: function () {
114
+ if (settings.onHide.call(element) === false) {
115
+ module.debug('onHide callback returned false, cancelling nag animation');
116
+
117
+ return false;
118
+ }
119
+ module.debug('Hiding nag', settings.animation.hide);
120
+ if (settings.animation.hide === 'fade') {
121
+ $module
122
+ .fadeOut(settings.duration, settings.easing, settings.onHidden)
123
+ ;
124
+ } else {
125
+ $module
126
+ .slideUp(settings.duration, settings.easing, settings.onHidden)
127
+ ;
128
+ }
129
+ },
130
+
131
+ dismiss: function (event) {
132
+ if (module.hide() !== false && settings.storageMethod) {
133
+ module.debug('Dismissing nag', settings.storageMethod, settings.key, settings.value, settings.expires);
134
+ module.storage.set(settings.key, settings.value);
206
135
  }
207
- }
136
+ event.stopImmediatePropagation();
137
+ event.preventDefault();
138
+ },
139
+
140
+ should: {
141
+ show: function () {
142
+ if (settings.persist) {
143
+ module.debug('Persistent nag is set, can show nag');
144
+
145
+ return true;
146
+ }
147
+ if (module.storage.get(settings.key) != settings.value.toString()) {
148
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.key));
149
+
150
+ return true;
151
+ }
152
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.key));
153
+
154
+ return false;
155
+ },
156
+ },
157
+
158
+ get: {
159
+ expirationDate: function (expires) {
160
+ if (typeof expires === 'number') {
161
+ expires = new Date(Date.now() + expires * 864e5);
162
+ }
163
+ if (expires instanceof Date && expires.getTime()) {
164
+ return expires.toUTCString();
165
+ } else {
166
+ module.error(error.expiresFormat);
167
+ }
168
+ },
169
+ storage: function () {
170
+ if (settings.storageMethod === 'localstorage' && window.localStorage !== undefined) {
171
+ module.debug('Using local storage');
172
+
173
+ return window.localStorage;
174
+ } else if (settings.storageMethod === 'sessionstorage' && window.sessionStorage !== undefined) {
175
+ module.debug('Using session storage');
176
+
177
+ return window.sessionStorage;
178
+ } else if ('cookie' in document) {
179
+ module.debug('Using cookie');
180
+
181
+ return {
182
+ setItem: function (key, value, options) {
183
+ // RFC6265 compliant encoding
184
+ key = encodeURIComponent(key)
185
+ .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
186
+ .replace(/[()]/g, escape)
187
+ ;
188
+ value = encodeURIComponent(value)
189
+ .replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent)
190
+ ;
191
+
192
+ var cookieOptions = '';
193
+ for (var option in options) {
194
+ if (options.hasOwnProperty(option)) {
195
+ cookieOptions += '; ' + option;
196
+ if (typeof options[option] === 'string') {
197
+ cookieOptions += '=' + options[option].split(';')[0];
198
+ }
199
+ }
200
+ }
201
+ document.cookie = key + '=' + value + cookieOptions;
202
+ },
203
+ getItem: function (key) {
204
+ var cookies = document.cookie.split('; ');
205
+ for (var i = 0, il = cookies.length; i < il; i++) {
206
+ var
207
+ parts = cookies[i].split('='),
208
+ foundKey = parts[0].replace(/(%[\dA-F]{2})+/gi, decodeURIComponent)
209
+ ;
210
+ if (key === foundKey) {
211
+ return parts[1] || '';
212
+ }
213
+ }
214
+ },
215
+ removeItem: function (key, options) {
216
+ storage.setItem(key, '', options);
217
+ },
218
+ };
219
+ } else {
220
+ module.error(error.noStorage);
221
+ }
222
+ },
223
+ storageOptions: function () {
224
+ var
225
+ options = {}
226
+ ;
227
+ if (settings.expires) {
228
+ options.expires = module.get.expirationDate(settings.expires);
229
+ }
230
+ if (settings.domain) {
231
+ options.domain = settings.domain;
232
+ }
233
+ if (settings.path) {
234
+ options.path = settings.path;
235
+ }
236
+ if (settings.secure) {
237
+ options.secure = settings.secure;
238
+ }
239
+ if (settings.samesite) {
240
+ options.samesite = settings.samesite;
241
+ }
242
+
243
+ return options;
244
+ },
245
+ },
246
+
247
+ clear: function () {
248
+ module.storage.remove(settings.key);
249
+ },
250
+
251
+ storage: {
252
+ set: function (key, value) {
253
+ var
254
+ options = module.get.storageOptions()
255
+ ;
256
+ if (storage === window.localStorage && options.expires) {
257
+ module.debug('Storing expiration value in localStorage', key, options.expires);
258
+ storage.setItem(key + settings.expirationKey, options.expires);
259
+ }
260
+ module.debug('Value stored', key, value);
261
+ try {
262
+ storage.setItem(key, value, options);
263
+ } catch (e) {
264
+ module.error(error.setItem, e);
265
+ }
266
+ },
267
+ get: function (key) {
268
+ var
269
+ storedValue
270
+ ;
271
+ storedValue = storage.getItem(key);
272
+ if (storage === window.localStorage) {
273
+ var expiration = storage.getItem(key + settings.expirationKey);
274
+ if (expiration !== null && expiration !== undefined && new Date(expiration) < new Date()) {
275
+ module.debug('Value in localStorage has expired. Deleting key', key);
276
+ module.storage.remove(key);
277
+ storedValue = null;
278
+ }
279
+ }
280
+ if (storedValue == 'undefined' || storedValue == 'null' || storedValue === undefined || storedValue === null) {
281
+ storedValue = undefined;
282
+ }
283
+
284
+ return storedValue;
285
+ },
286
+ remove: function (key) {
287
+ var
288
+ options = module.get.storageOptions()
289
+ ;
290
+ options.expires = module.get.expirationDate(-1);
291
+ if (storage === window.localStorage) {
292
+ storage.removeItem(key + settings.expirationKey);
293
+ }
294
+ storage.removeItem(key, options);
295
+ },
208
296
  },
209
- removeItem: function(key, options) {
210
- storage.setItem(key,'',options);
297
+
298
+ setting: function (name, value) {
299
+ module.debug('Changing setting', name, value);
300
+ if ($.isPlainObject(name)) {
301
+ $.extend(true, settings, name);
302
+ } else if (value !== undefined) {
303
+ if ($.isPlainObject(settings[name])) {
304
+ $.extend(true, settings[name], value);
305
+ } else {
306
+ settings[name] = value;
307
+ }
308
+ } else {
309
+ return settings[name];
310
+ }
311
+ },
312
+ internal: function (name, value) {
313
+ if ($.isPlainObject(name)) {
314
+ $.extend(true, module, name);
315
+ } else if (value !== undefined) {
316
+ module[name] = value;
317
+ } else {
318
+ return module[name];
319
+ }
320
+ },
321
+ debug: function () {
322
+ if (!settings.silent && settings.debug) {
323
+ if (settings.performance) {
324
+ module.performance.log(arguments);
325
+ } else {
326
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
327
+ module.debug.apply(console, arguments);
328
+ }
329
+ }
330
+ },
331
+ verbose: function () {
332
+ if (!settings.silent && settings.verbose && settings.debug) {
333
+ if (settings.performance) {
334
+ module.performance.log(arguments);
335
+ } else {
336
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
337
+ module.verbose.apply(console, arguments);
338
+ }
339
+ }
340
+ },
341
+ error: function () {
342
+ if (!settings.silent) {
343
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
344
+ module.error.apply(console, arguments);
345
+ }
346
+ },
347
+ performance: {
348
+ log: function (message) {
349
+ var
350
+ currentTime,
351
+ executionTime,
352
+ previousTime
353
+ ;
354
+ if (settings.performance) {
355
+ currentTime = new Date().getTime();
356
+ previousTime = time || currentTime;
357
+ executionTime = currentTime - previousTime;
358
+ time = currentTime;
359
+ performance.push({
360
+ Name: message[0],
361
+ Arguments: [].slice.call(message, 1) || '',
362
+ Element: element,
363
+ 'Execution Time': executionTime,
364
+ });
365
+ }
366
+ clearTimeout(module.performance.timer);
367
+ module.performance.timer = setTimeout(module.performance.display, 500);
368
+ },
369
+ display: function () {
370
+ var
371
+ title = settings.name + ':',
372
+ totalTime = 0
373
+ ;
374
+ time = false;
375
+ clearTimeout(module.performance.timer);
376
+ $.each(performance, function (index, data) {
377
+ totalTime += data['Execution Time'];
378
+ });
379
+ title += ' ' + totalTime + 'ms';
380
+ if (moduleSelector) {
381
+ title += ' \'' + moduleSelector + '\'';
382
+ }
383
+ if ((console.group !== undefined || console.table !== undefined) && performance.length > 0) {
384
+ console.groupCollapsed(title);
385
+ if (console.table) {
386
+ console.table(performance);
387
+ } else {
388
+ $.each(performance, function (index, data) {
389
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
390
+ });
391
+ }
392
+ console.groupEnd();
393
+ }
394
+ performance = [];
395
+ },
396
+ },
397
+ invoke: function (query, passedArguments, context) {
398
+ var
399
+ object = instance,
400
+ maxDepth,
401
+ found,
402
+ response
403
+ ;
404
+ passedArguments = passedArguments || queryArguments;
405
+ context = context || element;
406
+ if (typeof query == 'string' && object !== undefined) {
407
+ query = query.split(/[\. ]/);
408
+ maxDepth = query.length - 1;
409
+ $.each(query, function (depth, value) {
410
+ var camelCaseValue = (depth != maxDepth)
411
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
412
+ : query
413
+ ;
414
+ if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
415
+ object = object[camelCaseValue];
416
+ } else if (object[camelCaseValue] !== undefined) {
417
+ found = object[camelCaseValue];
418
+
419
+ return false;
420
+ } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
421
+ object = object[value];
422
+ } else if (object[value] !== undefined) {
423
+ found = object[value];
424
+
425
+ return false;
426
+ } else {
427
+ module.error(error.method, query);
428
+
429
+ return false;
430
+ }
431
+ });
432
+ }
433
+ if (isFunction(found)) {
434
+ response = found.apply(context, passedArguments);
435
+ } else if (found !== undefined) {
436
+ response = found;
437
+ }
438
+ if (Array.isArray(returnedValue)) {
439
+ returnedValue.push(response);
440
+ } else if (returnedValue !== undefined) {
441
+ returnedValue = [returnedValue, response];
442
+ } else if (response !== undefined) {
443
+ returnedValue = response;
444
+ }
445
+
446
+ return found;
447
+ },
448
+ };
449
+
450
+ if (methodInvoked) {
451
+ if (instance === undefined) {
452
+ module.initialize();
211
453
  }
212
- };
454
+ module.invoke(query);
213
455
  } else {
214
- module.error(error.noStorage);
215
- }
216
- },
217
- storageOptions: function() {
218
- var
219
- options = {}
220
- ;
221
- if(settings.expires) {
222
- options.expires = module.get.expirationDate(settings.expires);
223
- }
224
- if(settings.domain) {
225
- options.domain = settings.domain;
226
- }
227
- if(settings.path) {
228
- options.path = settings.path;
229
- }
230
- if(settings.secure) {
231
- options.secure = settings.secure;
232
- }
233
- if(settings.samesite) {
234
- options.samesite = settings.samesite;
456
+ if (instance !== undefined) {
457
+ instance.invoke('destroy');
458
+ }
459
+ module.initialize();
235
460
  }
236
- return options;
237
- }
238
- },
461
+ });
239
462
 
240
- clear: function() {
241
- module.storage.remove(settings.key);
242
- },
463
+ return (returnedValue !== undefined)
464
+ ? returnedValue
465
+ : this;
466
+ };
243
467
 
244
- storage: {
245
- set: function(key, value) {
246
- var
247
- options = module.get.storageOptions()
248
- ;
249
- if(storage === window.localStorage && options.expires) {
250
- module.debug('Storing expiration value in localStorage', key, options.expires);
251
- storage.setItem(key + settings.expirationKey, options.expires );
252
- }
253
- module.debug('Value stored', key, value);
254
- try {
255
- storage.setItem(key, value, options);
256
- }
257
- catch(e) {
258
- module.error(error.setItem, e);
259
- }
260
- },
261
- get: function(key) {
262
- var
263
- storedValue
264
- ;
265
- storedValue = storage.getItem(key);
266
- if(storage === window.localStorage) {
267
- var expiration = storage.getItem(key + settings.expirationKey);
268
- if(expiration !== null && expiration !== undefined && new Date(expiration) < new Date()) {
269
- module.debug('Value in localStorage has expired. Deleting key', key);
270
- module.storage.remove(key);
271
- storedValue = null;
272
- }
273
- }
274
- if(storedValue == 'undefined' || storedValue == 'null' || storedValue === undefined || storedValue === null) {
275
- storedValue = undefined;
276
- }
277
- return storedValue;
278
- },
279
- remove: function(key) {
280
- var
281
- options = module.get.storageOptions()
282
- ;
283
- options.expires = module.get.expirationDate(-1);
284
- if(storage === window.localStorage) {
285
- storage.removeItem(key + settings.expirationKey);
286
- }
287
- storage.removeItem(key, options);
288
- }
289
- },
468
+ $.fn.nag.settings = {
290
469
 
291
- setting: function(name, value) {
292
- module.debug('Changing setting', name, value);
293
- if( $.isPlainObject(name) ) {
294
- $.extend(true, settings, name);
295
- }
296
- else if(value !== undefined) {
297
- if($.isPlainObject(settings[name])) {
298
- $.extend(true, settings[name], value);
299
- }
300
- else {
301
- settings[name] = value;
302
- }
303
- }
304
- else {
305
- return settings[name];
306
- }
307
- },
308
- internal: function(name, value) {
309
- if( $.isPlainObject(name) ) {
310
- $.extend(true, module, name);
311
- }
312
- else if(value !== undefined) {
313
- module[name] = value;
314
- }
315
- else {
316
- return module[name];
317
- }
318
- },
319
- debug: function() {
320
- if(!settings.silent && settings.debug) {
321
- if(settings.performance) {
322
- module.performance.log(arguments);
323
- }
324
- else {
325
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
326
- module.debug.apply(console, arguments);
327
- }
328
- }
470
+ name: 'Nag',
471
+
472
+ silent: false,
473
+ debug: false,
474
+ verbose: false,
475
+ performance: true,
476
+
477
+ namespace: 'Nag',
478
+
479
+ // allows cookie to be overridden
480
+ persist: false,
481
+
482
+ // set to zero to require manually dismissal, otherwise hides on its own
483
+ displayTime: 0,
484
+
485
+ animation: {
486
+ show: 'slide',
487
+ hide: 'slide',
329
488
  },
330
- verbose: function() {
331
- if(!settings.silent && settings.verbose && settings.debug) {
332
- if(settings.performance) {
333
- module.performance.log(arguments);
334
- }
335
- else {
336
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
337
- module.verbose.apply(console, arguments);
338
- }
339
- }
489
+
490
+ context: false,
491
+ detachable: false,
492
+
493
+ expires: 30,
494
+
495
+ // cookie storage only options
496
+ domain: false,
497
+ path: '/',
498
+ secure: false,
499
+ samesite: false,
500
+
501
+ // type of storage to use
502
+ storageMethod: 'cookie',
503
+
504
+ // value to store in dismissed localstorage/cookie
505
+ key: 'nag',
506
+ value: 'dismiss',
507
+
508
+ // Key suffix to support expiration in localstorage
509
+ expirationKey: 'ExpirationDate',
510
+
511
+ error: {
512
+ noStorage: 'Unsupported storage method',
513
+ method: 'The method you called is not defined.',
514
+ setItem: 'Unexpected error while setting value',
515
+ expiresFormat: '"expires" must be a number of days or a Date Object',
340
516
  },
341
- error: function() {
342
- if(!settings.silent) {
343
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
344
- module.error.apply(console, arguments);
345
- }
517
+
518
+ className: {
519
+ bottom: 'bottom',
520
+ fixed: 'fixed',
346
521
  },
347
- performance: {
348
- log: function(message) {
349
- var
350
- currentTime,
351
- executionTime,
352
- previousTime
353
- ;
354
- if(settings.performance) {
355
- currentTime = new Date().getTime();
356
- previousTime = time || currentTime;
357
- executionTime = currentTime - previousTime;
358
- time = currentTime;
359
- performance.push({
360
- 'Name' : message[0],
361
- 'Arguments' : [].slice.call(message, 1) || '',
362
- 'Element' : element,
363
- 'Execution Time' : executionTime
364
- });
365
- }
366
- clearTimeout(module.performance.timer);
367
- module.performance.timer = setTimeout(module.performance.display, 500);
368
- },
369
- display: function() {
370
- var
371
- title = settings.name + ':',
372
- totalTime = 0
373
- ;
374
- time = false;
375
- clearTimeout(module.performance.timer);
376
- $.each(performance, function(index, data) {
377
- totalTime += data['Execution Time'];
378
- });
379
- title += ' ' + totalTime + 'ms';
380
- if(moduleSelector) {
381
- title += ' \'' + moduleSelector + '\'';
382
- }
383
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
384
- console.groupCollapsed(title);
385
- if(console.table) {
386
- console.table(performance);
387
- }
388
- else {
389
- $.each(performance, function(index, data) {
390
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
391
- });
392
- }
393
- console.groupEnd();
394
- }
395
- performance = [];
396
- }
522
+
523
+ selector: {
524
+ close: '> .close.icon',
397
525
  },
398
- invoke: function(query, passedArguments, context) {
399
- var
400
- object = instance,
401
- maxDepth,
402
- found,
403
- response
404
- ;
405
- passedArguments = passedArguments || queryArguments;
406
- context = context || element;
407
- if(typeof query == 'string' && object !== undefined) {
408
- query = query.split(/[\. ]/);
409
- maxDepth = query.length - 1;
410
- $.each(query, function(depth, value) {
411
- var camelCaseValue = (depth != maxDepth)
412
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
413
- : query
414
- ;
415
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
416
- object = object[camelCaseValue];
417
- }
418
- else if( object[camelCaseValue] !== undefined ) {
419
- found = object[camelCaseValue];
420
- return false;
421
- }
422
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
423
- object = object[value];
424
- }
425
- else if( object[value] !== undefined ) {
426
- found = object[value];
427
- return false;
428
- }
429
- else {
430
- module.error(error.method, query);
431
- return false;
432
- }
433
- });
434
- }
435
- if ( $.isFunction( found ) ) {
436
- response = found.apply(context, passedArguments);
437
- }
438
- else if(found !== undefined) {
439
- response = found;
440
- }
441
- if(Array.isArray(returnedValue)) {
442
- returnedValue.push(response);
443
- }
444
- else if(returnedValue !== undefined) {
445
- returnedValue = [returnedValue, response];
446
- }
447
- else if(response !== undefined) {
448
- returnedValue = response;
449
- }
450
- return found;
451
- }
452
- };
453
-
454
- if(methodInvoked) {
455
- if(instance === undefined) {
456
- module.initialize();
457
- }
458
- module.invoke(query);
459
- }
460
- else {
461
- if(instance !== undefined) {
462
- instance.invoke('destroy');
463
- }
464
- module.initialize();
465
- }
466
- })
467
- ;
468
-
469
- return (returnedValue !== undefined)
470
- ? returnedValue
471
- : this
472
- ;
473
- };
474
-
475
- $.fn.nag.settings = {
476
-
477
- name : 'Nag',
478
-
479
- silent : false,
480
- debug : false,
481
- verbose : false,
482
- performance : true,
483
-
484
- namespace : 'Nag',
485
-
486
- // allows cookie to be overridden
487
- persist : false,
488
-
489
- // set to zero to require manually dismissal, otherwise hides on its own
490
- displayTime : 0,
491
-
492
- animation : {
493
- show : 'slide',
494
- hide : 'slide'
495
- },
496
-
497
- context : false,
498
- detachable : false,
499
-
500
- expires : 30,
501
-
502
- // cookie storage only options
503
- domain : false,
504
- path : '/',
505
- secure : false,
506
- samesite : false,
507
-
508
- // type of storage to use
509
- storageMethod : 'cookie',
510
-
511
- // value to store in dismissed localstorage/cookie
512
- key : 'nag',
513
- value : 'dismiss',
514
-
515
- // Key suffix to support expiration in localstorage
516
- expirationKey : 'ExpirationDate',
517
-
518
- error: {
519
- noStorage : 'Unsupported storage method',
520
- method : 'The method you called is not defined.',
521
- setItem : 'Unexpected error while setting value',
522
- expiresFormat : '"expires" must be a number of days or a Date Object'
523
- },
524
-
525
- className : {
526
- bottom : 'bottom',
527
- fixed : 'fixed'
528
- },
529
-
530
- selector : {
531
- close : '> .close.icon'
532
- },
533
-
534
- duration : 500,
535
- easing : 'easeOutQuad',
536
-
537
- // callback before show animation, return false to prevent show
538
- onShow : function() {},
539
-
540
- // called after show animation
541
- onVisible : function() {},
542
-
543
- // callback before hide animation, return false to prevent hide
544
- onHide : function() {},
545
-
546
- // callback after hide animation
547
- onHidden : function() {}
548
-
549
- };
550
-
551
- // Adds easing
552
- $.extend( $.easing, {
553
- easeOutQuad: function (x, t, b, c, d) {
554
- return -c *(t/=d)*(t-2) + b;
555
- }
556
- });
557
526
 
558
- })( jQuery, window, document );
527
+ duration: 500,
528
+ easing: 'easeOutQuad',
529
+
530
+ // callback before show animation, return false to prevent show
531
+ onShow: function () {},
532
+
533
+ // called after show animation
534
+ onVisible: function () {},
535
+
536
+ // callback before hide animation, return false to prevent hide
537
+ onHide: function () {},
538
+
539
+ // callback after hide animation
540
+ onHidden: function () {},
541
+
542
+ };
543
+
544
+ // Adds easing
545
+ $.extend($.easing, {
546
+ easeOutQuad: function (x) {
547
+ return 1 - (1 - x) * (1 - x);
548
+ },
549
+ });
550
+ })(jQuery, window, document);