@spscommerce/positioning 5.18.3-ie → 5.19.0

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.
@@ -1,466 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
- return c > 3 && r && Object.defineProperty(target, key, r), r;
17
- };
18
- var __metadata = (this && this.__metadata) || function (k, v) {
19
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20
- };
21
- var __values = (this && this.__values) || function(o) {
22
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
23
- if (m) return m.call(o);
24
- if (o && typeof o.length === "number") return {
25
- next: function () {
26
- if (o && i >= o.length) o = void 0;
27
- return { value: o && o[i++], done: !o };
28
- }
29
- };
30
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
31
- };
32
- var __read = (this && this.__read) || function (o, n) {
33
- var m = typeof Symbol === "function" && o[Symbol.iterator];
34
- if (!m) return o;
35
- var i = m.call(o), r, ar = [], e;
36
- try {
37
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
38
- }
39
- catch (error) { e = { error: error }; }
40
- finally {
41
- try {
42
- if (r && !r.done && (m = i["return"])) m.call(i);
43
- }
44
- finally { if (e) throw e.error; }
45
- }
46
- return ar;
47
- };
48
- import "intersection-observer";
49
- import { lockedToAnimationFrames, onNextTick } from "@spscommerce/utils";
50
- import { EventEmitter } from "eventemitter3";
51
- import { DEFAULT_POSITIONING_OPTIONS } from "./positioning-options.interface";
52
- import { PositionAnchor } from "./position-anchor.enum";
53
- var NAVBAR_HEIGHT = 60;
54
- /**
55
- * This class follows a singleton pattern where you can create an instance by calling
56
- * `new PositioningService()` if you wish, but all instance methods pass through to
57
- * static methods, so there's really only one set of elements being positioned that's
58
- * shared between all instances and static usages of PositioningService.
59
- */
60
- var PositioningService = /** @class */ (function () {
61
- function PositioningService() {
62
- }
63
- PositioningService.on = function (eventName, handler) {
64
- PositioningService.events.on(eventName, handler);
65
- };
66
- PositioningService.off = function (eventName, handler) {
67
- PositioningService.events.off(eventName, handler);
68
- };
69
- PositioningService.once = function (eventName, handler) {
70
- PositioningService.events.once(eventName, handler);
71
- };
72
- PositioningService.checkCollisions = function (element, otherElements) {
73
- var e_1, _a;
74
- var otherElementsList = otherElements || Array.from(PositioningService.elements.keys());
75
- var bounds = element.getBoundingClientRect();
76
- var collisions = [];
77
- try {
78
- for (var otherElementsList_1 = __values(otherElementsList), otherElementsList_1_1 = otherElementsList_1.next(); !otherElementsList_1_1.done; otherElementsList_1_1 = otherElementsList_1.next()) {
79
- var otherElement = otherElementsList_1_1.value;
80
- if (otherElement !== element) {
81
- var otherBounds = otherElement.getBoundingClientRect();
82
- if (otherBounds.left <= bounds.right
83
- && otherBounds.right >= bounds.left
84
- && otherBounds.top <= bounds.bottom
85
- && otherBounds.bottom >= bounds.top) {
86
- collisions.push(otherElement);
87
- }
88
- }
89
- }
90
- }
91
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
92
- finally {
93
- try {
94
- if (otherElementsList_1_1 && !otherElementsList_1_1.done && (_a = otherElementsList_1.return)) _a.call(otherElementsList_1);
95
- }
96
- finally { if (e_1) throw e_1.error; }
97
- }
98
- if (collisions.length) {
99
- PositioningService.onElementIntersection(element, collisions);
100
- }
101
- };
102
- /**
103
- * Returns `true` if the element is currently being positioned by the service
104
- * and `false` otherwise.
105
- */
106
- PositioningService.isPositioned = function (element) {
107
- return PositioningService.elements.has(element);
108
- };
109
- /**
110
- * Returns the options currently beinng used for positioning the element,
111
- * if it is indeed being positioned by the service.
112
- */
113
- PositioningService.getPositioningOptions = function (element) {
114
- if (PositioningService.elements.has(element)) {
115
- return PositioningService.elements.get(element);
116
- }
117
- return null;
118
- };
119
- /** PositioningService will start controlling the position of the given element. */
120
- PositioningService.position = function (element, options) {
121
- if (options === void 0) { options = {}; }
122
- var opts = __assign(__assign({}, DEFAULT_POSITIONING_OPTIONS), options);
123
- var e = element;
124
- while (e !== document.body) {
125
- e = e.parentElement;
126
- if (e.classList.contains("sps-focused-task")) {
127
- opts.scrollParent = e;
128
- if (!PositioningService.registeredScrollParents.has(e)) {
129
- PositioningService.registeredScrollParents.add(e);
130
- e.addEventListener("scroll", PositioningService.update);
131
- }
132
- break;
133
- }
134
- }
135
- // eslint-disable-next-line no-param-reassign
136
- element.style.visibility = "hidden";
137
- if (PositioningService.elements.size === 0) {
138
- window.addEventListener("resize", PositioningService.update);
139
- window.addEventListener("scroll", PositioningService.update);
140
- }
141
- if (!opts.relativeTo) {
142
- throw new Error("You must provide an element for the relativeTo option to position an element.");
143
- }
144
- PositioningService.elements.set(element, opts);
145
- onNextTick(function () {
146
- PositioningService.fixElementPosition(element);
147
- PositioningService.viewportObserver.observe(element);
148
- // eslint-disable-next-line no-param-reassign
149
- element.style.visibility = "";
150
- PositioningService.checkCollisions(element);
151
- });
152
- };
153
- /** PositioningService will stop controlling the position of the given element. */
154
- PositioningService.release = function (element) {
155
- if (PositioningService.elements.has(element)) {
156
- PositioningService.clearStyles(element);
157
- var options = PositioningService.elements.get(element);
158
- if (options.scrollParent) {
159
- options.scrollParent.removeEventListener("scroll", PositioningService.update);
160
- PositioningService.registeredScrollParents.delete(options.scrollParent);
161
- }
162
- PositioningService.elements.delete(element);
163
- if (PositioningService.elements.size === 0) {
164
- window.removeEventListener("resize", PositioningService.update);
165
- window.removeEventListener("scroll", PositioningService.update);
166
- }
167
- PositioningService.viewportObserver.unobserve(element);
168
- }
169
- };
170
- PositioningService.releaseAll = function () {
171
- var e_2, _a;
172
- try {
173
- for (var _b = __values(PositioningService.elements.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
174
- var element = _c.value;
175
- PositioningService.release(element);
176
- }
177
- }
178
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
179
- finally {
180
- try {
181
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
182
- }
183
- finally { if (e_2) throw e_2.error; }
184
- }
185
- };
186
- /** PositioningService will refresh the positioning of the given element */
187
- PositioningService.refresh = function (element) {
188
- if (PositioningService.elements.has(element)) {
189
- PositioningService.clearStyles(element);
190
- PositioningService.fixElementPosition(element);
191
- PositioningService.checkCollisions(element);
192
- }
193
- };
194
- PositioningService.refreshAll = function () {
195
- var e_3, _a;
196
- try {
197
- for (var _b = __values(PositioningService.elements.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
198
- var element = _c.value;
199
- PositioningService.refresh(element);
200
- }
201
- }
202
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
203
- finally {
204
- try {
205
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
206
- }
207
- finally { if (e_3) throw e_3.error; }
208
- }
209
- };
210
- /** Update the positioning options of a currently positioned element */
211
- PositioningService.reposition = function (element, newOptions) {
212
- if (PositioningService.elements.has(element)) {
213
- var options = PositioningService.elements.get(element);
214
- PositioningService.elements.set(element, Object.assign(options, newOptions));
215
- PositioningService.refresh(element);
216
- }
217
- };
218
- PositioningService.onViewportIntersection = function (entries) {
219
- var e_4, _a;
220
- var _loop_1 = function (entry) {
221
- /*
222
- * This is how you make a copy of an IntersectionObserverEntry that
223
- * you can modify; it's read-only and incompatible with simply using
224
- * destructuring or Object.assign. Before sending it out we make the
225
- * copy read-only by passing it to Object.freeze
226
- */
227
- var entryCopy = Object.keys(IntersectionObserverEntry.prototype).reduce(function (copy, key) {
228
- var _a;
229
- return (__assign(__assign({}, copy), (_a = {}, _a[key] = entry[key], _a)));
230
- }, {});
231
- entryCopy.rootBounds = entryCopy.rootBounds || PositioningService.getRootBounds();
232
- PositioningService.events.emit("viewportIntersection", Object.freeze(entryCopy));
233
- };
234
- try {
235
- for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
236
- var entry = entries_1_1.value;
237
- _loop_1(entry);
238
- }
239
- }
240
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
241
- finally {
242
- try {
243
- if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);
244
- }
245
- finally { if (e_4) throw e_4.error; }
246
- }
247
- };
248
- PositioningService.onElementIntersection = function (target, intersectingWith) {
249
- PositioningService.events.emit("elementIntersection", { target: target, intersectingWith: intersectingWith });
250
- };
251
- PositioningService.getRootBounds = function () {
252
- var rootWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
253
- var rootHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
254
- return {
255
- x: 0,
256
- y: NAVBAR_HEIGHT,
257
- left: 0,
258
- top: NAVBAR_HEIGHT,
259
- right: rootWidth,
260
- bottom: rootHeight,
261
- height: rootHeight - NAVBAR_HEIGHT,
262
- width: rootWidth,
263
- };
264
- };
265
- PositioningService.clearStyles = function (element) {
266
- Object.assign(element.style, {
267
- position: "",
268
- width: "",
269
- top: "",
270
- left: "",
271
- right: "",
272
- bottom: "",
273
- visibility: "",
274
- zIndex: "",
275
- });
276
- };
277
- PositioningService.fixElementPosition = function (element, options) {
278
- if (!this.elements.has(element)) {
279
- return;
280
- }
281
- var opts = options || this.elements.get(element);
282
- var rootBounds = this.getRootBounds();
283
- var positionedElementBounds = element.getBoundingClientRect();
284
- var relativeTargetBounds = opts.relativeTo.getBoundingClientRect();
285
- var width = (opts.useRelativeTargetWidth
286
- ? relativeTargetBounds
287
- : positionedElementBounds).width;
288
- Object.assign(element.style, {
289
- minWidth: width + "px",
290
- position: "fixed",
291
- zIndex: opts.zIndex || "",
292
- });
293
- var top;
294
- var left;
295
- var positionRelativeToTarget = opts.position.split(" ");
296
- var offsetA = opts.offsets[0] || 0;
297
- var offsetB = opts.offsets[1] || 0;
298
- top = 0;
299
- left = 0;
300
- switch (positionRelativeToTarget[0]) {
301
- case "top":
302
- top = relativeTargetBounds.top - positionedElementBounds.height - offsetA;
303
- break;
304
- case "left":
305
- left = relativeTargetBounds.left - width - offsetA;
306
- break;
307
- case "right":
308
- left = relativeTargetBounds.right + offsetA;
309
- break;
310
- case "bottom":
311
- top = relativeTargetBounds.bottom + offsetA;
312
- break;
313
- default:
314
- throw new Error(opts.position + " is not a valid position");
315
- }
316
- switch (positionRelativeToTarget[1]) {
317
- case "left":
318
- left = relativeTargetBounds.left - offsetB;
319
- break;
320
- case "top":
321
- top = relativeTargetBounds.top - offsetB;
322
- break;
323
- case "middle":
324
- if (positionRelativeToTarget[0] === "top"
325
- || positionRelativeToTarget[0] === "bottom") {
326
- left = relativeTargetBounds.left
327
- + (relativeTargetBounds.width / 2)
328
- - (width / 2)
329
- + offsetB;
330
- }
331
- else if (positionRelativeToTarget[0] === "left"
332
- || positionRelativeToTarget[0] === "right") {
333
- top = relativeTargetBounds.top
334
- + (relativeTargetBounds.height / 2)
335
- - (positionedElementBounds.height / 2)
336
- + offsetB;
337
- }
338
- break;
339
- case "bottom":
340
- top = relativeTargetBounds.bottom - positionedElementBounds.height + offsetB;
341
- break;
342
- case "right":
343
- left = relativeTargetBounds.right - width + offsetB;
344
- break;
345
- default:
346
- throw new Error(opts.position + " is not a valid position");
347
- }
348
- var bottom = top + positionedElementBounds.height;
349
- var right = left + positionedElementBounds.width;
350
- var topPx = Math.round(top) + "px";
351
- var bottomPx = Math.round(rootBounds.bottom - bottom) + "px";
352
- var leftPx = Math.round(left) + "px";
353
- var rightPx = Math.round(rootBounds.right - right) + "px";
354
- switch (opts.anchor) {
355
- case PositionAnchor.TOP_LEFT:
356
- Object.assign(element.style, {
357
- top: topPx,
358
- bottom: "auto",
359
- left: leftPx,
360
- right: "auto",
361
- });
362
- break;
363
- case PositionAnchor.TOP_RIGHT:
364
- Object.assign(element.style, {
365
- top: topPx,
366
- bottom: "auto",
367
- left: "auto",
368
- right: rightPx,
369
- });
370
- break;
371
- case PositionAnchor.BOTTOM_LEFT:
372
- Object.assign(element.style, {
373
- top: "auto",
374
- bottom: bottomPx,
375
- left: leftPx,
376
- right: "auto",
377
- });
378
- break;
379
- case PositionAnchor.BOTTOM_RIGHT:
380
- Object.assign(element.style, {
381
- top: "auto",
382
- bottom: bottomPx,
383
- left: "auto",
384
- right: rightPx,
385
- });
386
- break;
387
- // no default
388
- }
389
- };
390
- PositioningService.update = function (event) {
391
- var e_5, _a;
392
- var elements = PositioningService.elements.entries();
393
- var updatedElements = [];
394
- try {
395
- for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {
396
- var _b = __read(elements_1_1.value, 2), element = _b[0], options = _b[1];
397
- if (!event
398
- || event.target === document
399
- || event.target === options.scrollParent
400
- || event.target === window) {
401
- PositioningService.fixElementPosition(element, options);
402
- PositioningService.checkCollisions(element, updatedElements);
403
- updatedElements.push(element);
404
- }
405
- }
406
- }
407
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
408
- finally {
409
- try {
410
- if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1);
411
- }
412
- finally { if (e_5) throw e_5.error; }
413
- }
414
- };
415
- /* eslint class-methods-use-this: "off" */
416
- PositioningService.prototype.on = function (eventName, handler) {
417
- PositioningService.on(eventName, handler);
418
- };
419
- PositioningService.prototype.off = function (eventName, handler) {
420
- PositioningService.off(eventName, handler);
421
- };
422
- PositioningService.prototype.once = function (eventName, handler) {
423
- PositioningService.once(eventName, handler);
424
- };
425
- PositioningService.prototype.isPositioned = function (element) {
426
- return PositioningService.isPositioned(element);
427
- };
428
- PositioningService.prototype.getPositioningOptions = function (element) {
429
- return PositioningService.getPositioningOptions(element);
430
- };
431
- PositioningService.prototype.position = function (element, options) {
432
- if (options === void 0) { options = {}; }
433
- PositioningService.position(element, options);
434
- };
435
- PositioningService.prototype.release = function (element) {
436
- PositioningService.release(element);
437
- };
438
- PositioningService.prototype.releaseAll = function () {
439
- PositioningService.releaseAll();
440
- };
441
- PositioningService.prototype.refresh = function (element) {
442
- PositioningService.refresh(element);
443
- };
444
- PositioningService.prototype.refreshAll = function () {
445
- PositioningService.refreshAll();
446
- };
447
- PositioningService.prototype.reposition = function (element, newOptions) {
448
- PositioningService.reposition(element, newOptions);
449
- };
450
- PositioningService.elements = new Map();
451
- PositioningService.registeredScrollParents = new Set();
452
- PositioningService.events = new EventEmitter();
453
- PositioningService.viewportObserver = new IntersectionObserver(PositioningService.onViewportIntersection, {
454
- rootMargin: "-" + NAVBAR_HEIGHT + "px 0px 0px",
455
- threshold: 1,
456
- });
457
- __decorate([
458
- lockedToAnimationFrames,
459
- __metadata("design:type", Function),
460
- __metadata("design:paramtypes", [Event]),
461
- __metadata("design:returntype", void 0)
462
- ], PositioningService, "update", null);
463
- return PositioningService;
464
- }());
465
- export { PositioningService };
466
- //# sourceMappingURL=positioning.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"positioning.service.js","sourceRoot":"","sources":["../../src/positioning.service.ts"],"names":[],"mappings":"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"}