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.
- package/.all-contributorsrc +9 -0
- package/.eslintrc.js +0 -10
- package/CONTRIBUTING.md +4 -1
- package/CONTRIBUTORS.md +1 -0
- package/FAQ.md +7 -2
- package/README.md +5 -9
- package/ROADMAP.md +4 -4
- package/SECURITY.md +8 -7
- package/changelog-setup.js +64 -70
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +103 -142
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +2 -2
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +157 -210
- package/dist/components/api.min.js +2 -2
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +1 -2
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +1 -2
- package/dist/components/calendar.js +314 -352
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +2 -2
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -2
- package/dist/components/checkbox.js +85 -135
- package/dist/components/checkbox.min.css +2 -2
- package/dist/components/checkbox.min.js +2 -2
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +2 -4
- package/dist/components/container.min.css +2 -2
- package/dist/components/dimmer.css +1 -11
- package/dist/components/dimmer.js +61 -94
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +2 -2
- package/dist/components/divider.css +1 -2
- package/dist/components/divider.min.css +2 -2
- package/dist/components/dropdown.css +30 -51
- package/dist/components/dropdown.js +736 -1055
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +2 -2
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +85 -114
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +2 -2
- package/dist/components/emoji.css +3809 -7617
- package/dist/components/emoji.min.css +2 -2
- package/dist/components/feed.css +1 -1
- package/dist/components/feed.min.css +1 -1
- package/dist/components/flag.css +1 -1
- package/dist/components/flag.min.css +1 -1
- package/dist/components/flyout.css +2 -3
- package/dist/components/flyout.js +226 -355
- package/dist/components/flyout.min.css +2 -2
- package/dist/components/flyout.min.js +2 -2
- package/dist/components/form.css +5 -95
- package/dist/components/form.js +335 -444
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +2 -2
- package/dist/components/grid.css +2 -58
- package/dist/components/grid.min.css +2 -2
- package/dist/components/header.css +1 -1
- package/dist/components/header.min.css +1 -1
- package/dist/components/icon.css +4 -4
- package/dist/components/icon.min.css +2 -2
- package/dist/components/image.css +1 -1
- package/dist/components/image.min.css +1 -1
- package/dist/components/input.css +1 -536
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +1 -1
- package/dist/components/item.min.css +1 -1
- package/dist/components/label.css +1 -1
- package/dist/components/label.min.css +1 -1
- package/dist/components/list.css +1 -3
- package/dist/components/list.min.css +2 -2
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/menu.css +1 -9
- package/dist/components/menu.min.css +2 -2
- package/dist/components/message.css +1 -1
- package/dist/components/message.min.css +1 -1
- package/dist/components/modal.css +5 -9
- package/dist/components/modal.js +261 -384
- package/dist/components/modal.min.css +2 -2
- package/dist/components/modal.min.js +2 -2
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +68 -98
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +2 -2
- package/dist/components/placeholder.css +1 -1
- package/dist/components/placeholder.min.css +1 -1
- package/dist/components/popup.css +1 -2
- package/dist/components/popup.js +198 -271
- package/dist/components/popup.min.css +2 -2
- package/dist/components/popup.min.js +2 -2
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +109 -144
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +2 -2
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/rating.js +91 -123
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +2 -2
- package/dist/components/reset.css +1 -1
- package/dist/components/reset.min.css +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +2 -9
- package/dist/components/search.js +277 -379
- package/dist/components/search.min.css +2 -2
- package/dist/components/search.min.js +2 -2
- package/dist/components/segment.css +2 -7
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -2
- package/dist/components/shape.js +158 -224
- package/dist/components/shape.min.css +2 -2
- package/dist/components/shape.min.js +2 -2
- package/dist/components/sidebar.css +2 -3
- package/dist/components/sidebar.js +124 -206
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +2 -2
- package/dist/components/site.css +9 -25
- package/dist/components/site.js +38 -57
- package/dist/components/site.min.css +2 -2
- package/dist/components/site.min.js +2 -2
- package/dist/components/slider.css +1 -1
- package/dist/components/slider.js +246 -329
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +2 -2
- package/dist/components/state.js +70 -100
- package/dist/components/state.min.js +2 -2
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +1 -1
- package/dist/components/step.min.css +1 -1
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +135 -180
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +2 -2
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +176 -244
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +2 -2
- package/dist/components/table.css +3 -37
- package/dist/components/table.min.css +2 -2
- package/dist/components/text.css +1 -1
- package/dist/components/text.min.css +1 -1
- package/dist/components/toast.css +1 -3
- package/dist/components/toast.js +109 -147
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +2 -2
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +91 -146
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +2 -2
- package/dist/components/visibility.js +146 -224
- package/dist/components/visibility.min.js +2 -2
- package/dist/semantic.css +3906 -8720
- package/dist/semantic.js +4397 -6155
- package/dist/semantic.min.css +2 -2
- package/dist/semantic.min.js +2 -2
- package/examples/assets/show-examples.js +2 -4
- package/gulpfile.js +5 -7
- package/package.json +3 -5
- package/scripts/nightly-version.js +7 -10
- package/src/README.md +3 -3
- package/src/definitions/behaviors/api.js +156 -209
- package/src/definitions/behaviors/form.js +334 -443
- package/src/definitions/behaviors/state.js +69 -99
- package/src/definitions/behaviors/visibility.js +145 -223
- package/src/definitions/collections/form.less +1 -13
- package/src/definitions/collections/grid.less +1 -61
- package/src/definitions/collections/menu.less +0 -11
- package/src/definitions/collections/table.less +1 -35
- package/src/definitions/elements/input.less +1 -61
- package/src/definitions/elements/segment.less +0 -6
- package/src/definitions/globals/site.js +37 -56
- package/src/definitions/globals/site.less +2 -18
- package/src/definitions/modules/accordion.js +102 -141
- package/src/definitions/modules/calendar.js +313 -351
- package/src/definitions/modules/checkbox.js +84 -134
- package/src/definitions/modules/dimmer.js +60 -93
- package/src/definitions/modules/dimmer.less +0 -9
- package/src/definitions/modules/dropdown.js +735 -1054
- package/src/definitions/modules/dropdown.less +31 -47
- package/src/definitions/modules/embed.js +84 -113
- package/src/definitions/modules/flyout.js +225 -354
- package/src/definitions/modules/modal.js +260 -383
- package/src/definitions/modules/modal.less +1 -1
- package/src/definitions/modules/nag.js +67 -97
- package/src/definitions/modules/popup.js +197 -270
- package/src/definitions/modules/progress.js +108 -143
- package/src/definitions/modules/rating.js +90 -122
- package/src/definitions/modules/search.js +276 -378
- package/src/definitions/modules/search.less +0 -3
- package/src/definitions/modules/shape.js +157 -223
- package/src/definitions/modules/sidebar.js +123 -205
- package/src/definitions/modules/slider.js +245 -328
- package/src/definitions/modules/slider.less +1 -1
- package/src/definitions/modules/sticky.js +134 -179
- package/src/definitions/modules/tab.js +175 -243
- package/src/definitions/modules/toast.js +108 -146
- package/src/definitions/modules/toast.less +1 -1
- package/src/definitions/modules/transition.js +90 -145
- package/src/theme.less +0 -13
- package/src/themes/basic/elements/icon.variables +1 -1
- package/src/themes/default/collections/grid.variables +0 -30
- package/src/themes/default/collections/table.variables +1 -5
- package/src/themes/default/elements/icon.variables +3 -3
- package/src/themes/default/globals/site.variables +8 -15
- package/src/themes/default/globals/variation.variables +1 -2
- package/src/themes/default/modules/dropdown.variables +1 -0
- package/src/themes/default/modules/slider.variables +1 -1
- package/src/themes/github/elements/icon.variables +1 -1
- package/src/themes/material/elements/icon.variables +1 -1
- package/tasks/README.md +1 -1
- package/tasks/admin/components/create.js +89 -122
- package/tasks/admin/components/init.js +34 -65
- package/tasks/admin/components/update.js +50 -61
- package/tasks/admin/distributions/create.js +71 -111
- package/tasks/admin/distributions/init.js +32 -63
- package/tasks/admin/distributions/update.js +49 -57
- package/tasks/admin/publish.js +1 -1
- package/tasks/admin/register.js +14 -19
- package/tasks/admin/release.js +2 -2
- package/tasks/build/assets.js +14 -18
- package/tasks/build/css.js +59 -68
- package/tasks/build/javascript.js +48 -56
- package/tasks/build.js +4 -6
- package/tasks/check-install.js +5 -8
- package/tasks/clean.js +5 -7
- package/tasks/collections/admin.js +14 -16
- package/tasks/collections/build.js +6 -8
- package/tasks/collections/docs.js +4 -6
- package/tasks/collections/install.js +2 -4
- package/tasks/collections/rtl.js +2 -4
- package/tasks/collections/various.js +2 -4
- package/tasks/config/admin/github.js +9 -19
- package/tasks/config/admin/templates/README.md +2 -2
- package/tasks/config/admin/templates/bower.json +2 -4
- package/tasks/config/admin/templates/composer.json +1 -1
- package/tasks/config/admin/templates/css-package.js +1 -4
- package/tasks/config/admin/templates/less-package.js +1 -3
- package/tasks/config/defaults.js +0 -1
- package/tasks/config/npm/gulpfile.js +4 -6
- package/tasks/config/project/config.js +27 -35
- package/tasks/config/project/install.js +64 -82
- package/tasks/config/project/release.js +7 -9
- package/tasks/config/tasks.js +10 -21
- package/tasks/config/user.js +14 -20
- package/tasks/docs/build.js +26 -31
- package/tasks/docs/metadata.js +30 -39
- package/tasks/docs/serve.js +23 -27
- package/tasks/install.js +94 -128
- package/tasks/rtl/build.js +2 -4
- package/tasks/rtl/watch.js +3 -5
- package/tasks/watch.js +13 -13
- package/test/meteor/fonts.js +1 -2
- package/test/modules/module.spec.js +16 -18
- package/types/fomantic-ui-calendar.d.ts +1 -1
- package/types/fomantic-ui-dropdown.d.ts +45 -1
- package/types/fomantic-ui-embed.d.ts +1 -1
- package/types/fomantic-ui-flyout.d.ts +1 -1
- package/types/fomantic-ui-form.d.ts +0 -7
- package/types/fomantic-ui-modal.d.ts +1 -1
- package/types/fomantic-ui-search.d.ts +12 -6
- package/types/fomantic-ui-toast.d.ts +1 -1
- package/src/themes/basic/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
- package/src/themes/default/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
- package/src/themes/github/assets/fonts/octicons.woff +0 -0
- package/src/themes/material/assets/fonts/icons.woff +0 -0
package/dist/components/popup.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* # Fomantic-UI 2.10.0-beta.
|
2
|
+
* # Fomantic-UI 2.10.0-beta.10+3ca268e - Popup
|
3
3
|
* https://github.com/fomantic/Fomantic-UI/
|
4
4
|
*
|
5
5
|
*
|
@@ -20,74 +20,70 @@
|
|
20
20
|
: globalThis;
|
21
21
|
|
22
22
|
$.fn.popup = function (parameters) {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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
|
-
|
51
|
-
|
49
|
+
return $context;
|
50
|
+
};
|
52
51
|
|
53
|
-
|
54
|
-
;
|
52
|
+
let returnedValue;
|
55
53
|
$allModules.each(function () {
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
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
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
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
|
-
|
191
|
-
|
192
|
-
|
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
|
-
|
204
|
-
|
205
|
-
|
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
|
-
|
238
|
-
|
239
|
-
|
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
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
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
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
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
|
534
|
+
// if popup offset context is different from target, then adjust calculations
|
561
535
|
if ($popupOffsetParent[0] !== $offsetParent[0]) {
|
562
|
-
|
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
|
-
|
627
|
-
|
628
|
-
|
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
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
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
|
-
|
659
|
-
|
660
|
-
|
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
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
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
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
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
|
-
|
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
|
-
|
1234
|
-
|
1235
|
-
|
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
|
-
|
1257
|
-
|
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
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
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
|
-
|
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
|
-
//
|
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
|
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
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
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, '&');
|
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
|
+
'"': '"',
|
1461
|
+
'&': '&',
|
1462
|
+
"'": ''',
|
1463
|
+
'<': '<',
|
1464
|
+
'>': '>',
|
1465
|
+
};
|
1466
|
+
|
1467
|
+
return String(string).replace(badChars, (chr) => escape[chr]);
|
1539
1468
|
},
|
1540
1469
|
popup: function (text) {
|
1541
|
-
|
1542
|
-
|
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);
|