@atlaskit/react-ufo 3.6.7 → 3.8.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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/config/index.js +0 -9
- package/dist/cjs/create-payload/index.js +6 -4
- package/dist/cjs/interaction-metrics/index.js +57 -17
- package/dist/cjs/interaction-metrics-init/index.js +11 -0
- package/dist/cjs/interactions-performance-observer/index.js +51 -0
- package/dist/cjs/segment/segment.js +0 -8
- package/dist/cjs/vc/vc-observer/observers/index.js +4 -18
- package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/es2019/config/index.js +0 -8
- package/dist/es2019/create-payload/index.js +5 -1
- package/dist/es2019/interaction-metrics/index.js +30 -0
- package/dist/es2019/interaction-metrics-init/index.js +11 -0
- package/dist/es2019/interactions-performance-observer/index.js +30 -0
- package/dist/es2019/segment/segment.js +0 -8
- package/dist/es2019/vc/vc-observer/observers/index.js +0 -15
- package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/esm/config/index.js +0 -8
- package/dist/esm/create-payload/index.js +6 -4
- package/dist/esm/interaction-metrics/index.js +55 -16
- package/dist/esm/interaction-metrics-init/index.js +11 -0
- package/dist/esm/interactions-performance-observer/index.js +44 -0
- package/dist/esm/segment/segment.js +0 -8
- package/dist/esm/vc/vc-observer/observers/index.js +4 -18
- package/dist/esm/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/types/common/common/types.d.ts +7 -0
- package/dist/types/common/vc/types.d.ts +1 -1
- package/dist/types/config/index.d.ts +0 -2
- package/dist/types/create-payload/index.d.ts +256 -0
- package/dist/types/interaction-metrics/index.d.ts +2 -0
- package/dist/types/interactions-performance-observer/index.d.ts +2 -0
- package/dist/types/vc/vc-observer/observers/index.d.ts +0 -1
- package/dist/types-ts4.5/common/common/types.d.ts +7 -0
- package/dist/types-ts4.5/common/vc/types.d.ts +1 -1
- package/dist/types-ts4.5/config/index.d.ts +0 -2
- package/dist/types-ts4.5/create-payload/index.d.ts +256 -0
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +2 -0
- package/dist/types-ts4.5/interactions-performance-observer/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -1
- package/package.json +5 -5
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +0 -186
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -68
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +0 -140
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -41
- package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +0 -180
- package/dist/esm/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -58
- package/dist/types/vc/vc-observer/observers/editor-lnv/index.d.ts +0 -24
- package/dist/types/vc/vc-observer/observers/editor-lnv/test-utils.d.ts +0 -35
- package/dist/types-ts4.5/vc/vc-observer/observers/editor-lnv/index.d.ts +0 -24
- package/dist/types-ts4.5/vc/vc-observer/observers/editor-lnv/test-utils.d.ts +0 -35
|
@@ -6,6 +6,8 @@ import PostInteractionLog from './post-interaction-log';
|
|
|
6
6
|
export type { InteractionMetrics, LifecycleMarkType, Span, Mark, MarkType, InteractionType, AbortReasonType, ReactProfilerTiming, RequestInfo, ApdexType, CustomData, CustomTiming, InteractionError, };
|
|
7
7
|
export declare const postInteractionLog: PostInteractionLog;
|
|
8
8
|
export declare function getActiveInteraction(): InteractionMetrics | undefined;
|
|
9
|
+
export declare const getPerformanceObserver: () => PerformanceObserver;
|
|
10
|
+
export declare const setInteractionPerformanceEvent: (entry: PerformanceEventTiming) => void;
|
|
9
11
|
export declare function remove(interactionId: string): void;
|
|
10
12
|
export declare function updatePageLoadInteractionName(ufoName: string, routeName?: string | null | undefined): void;
|
|
11
13
|
export declare function addMetadata(interactionId: string, data: Record<string, unknown>): void;
|
|
@@ -19,7 +19,6 @@ export declare class Observers implements BrowserObservers {
|
|
|
19
19
|
private totalTime;
|
|
20
20
|
private _startMeasureTimestamp;
|
|
21
21
|
private ssrPlaceholderHandler;
|
|
22
|
-
private editorLnvHandler;
|
|
23
22
|
private ssr;
|
|
24
23
|
private selectorConfig;
|
|
25
24
|
constructor(opts: ConstructorOptions);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/react-ufo",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "Parts of React UFO that are publicly available",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"react": "^18.2.0"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@af/integration-testing": "
|
|
89
|
+
"@af/integration-testing": "workspace:^",
|
|
90
90
|
"@testing-library/react": "^13.4.0",
|
|
91
91
|
"@types/is-ci": "^3.0.0",
|
|
92
92
|
"is-ci": "^3.0.1"
|
|
@@ -154,9 +154,6 @@
|
|
|
154
154
|
"platform_ufo_no_vc_on_aborted": {
|
|
155
155
|
"type": "boolean"
|
|
156
156
|
},
|
|
157
|
-
"platform_ufo_segment_list_mode": {
|
|
158
|
-
"type": "boolean"
|
|
159
|
-
},
|
|
160
157
|
"ufo_payload_use_idle_callback": {
|
|
161
158
|
"type": "boolean"
|
|
162
159
|
},
|
|
@@ -171,6 +168,9 @@
|
|
|
171
168
|
},
|
|
172
169
|
"platform_ufo_self_timings": {
|
|
173
170
|
"type": "boolean"
|
|
171
|
+
},
|
|
172
|
+
"platform_ufo_enable_events_observer": {
|
|
173
|
+
"type": "boolean"
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.EditorLnvHandler = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
var placeholderDataKey = 'editorLnvPlaceholder'; // data-editor-lnv-placeholder
|
|
12
|
-
var replaceDataKey = 'editorLnvPlaceholderReplace'; // data-editor-lnv-placeholder-replace
|
|
13
|
-
var EditorLnvHandler = exports.EditorLnvHandler = /*#__PURE__*/function () {
|
|
14
|
-
function EditorLnvHandler() {
|
|
15
|
-
var _this = this;
|
|
16
|
-
(0, _classCallCheck2.default)(this, EditorLnvHandler);
|
|
17
|
-
(0, _defineProperty2.default)(this, "placeholders", new Map());
|
|
18
|
-
(0, _defineProperty2.default)(this, "getSizeCallbacks", new Map());
|
|
19
|
-
(0, _defineProperty2.default)(this, "isAddedPlaceholderMatchingSizeCallbacks", new Map());
|
|
20
|
-
(0, _defineProperty2.default)(this, "isAddedReplaceMatchingSizeCallbacks", new Map());
|
|
21
|
-
(0, _defineProperty2.default)(this, "intersectionObserverCallback", function (_ref) {
|
|
22
|
-
var _target$dataset, _target$dataset2;
|
|
23
|
-
var target = _ref.target,
|
|
24
|
-
boundingClientRect = _ref.boundingClientRect;
|
|
25
|
-
_this.intersectionObserver.unobserve(target);
|
|
26
|
-
if (!(target instanceof HTMLElement)) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
var placeholderId = (_target$dataset = target.dataset) === null || _target$dataset === void 0 ? void 0 : _target$dataset[placeholderDataKey];
|
|
30
|
-
if (placeholderId && _this.getSizeCallbacks.has(placeholderId)) {
|
|
31
|
-
var _resolve = _this.getSizeCallbacks.get(placeholderId);
|
|
32
|
-
_this.getSizeCallbacks.delete(placeholderId);
|
|
33
|
-
if (!_resolve) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
_resolve({
|
|
37
|
-
x: boundingClientRect.x,
|
|
38
|
-
y: boundingClientRect.y,
|
|
39
|
-
width: boundingClientRect.width,
|
|
40
|
-
height: boundingClientRect.height
|
|
41
|
-
});
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (placeholderId && _this.isAddedPlaceholderMatchingSizeCallbacks.has(placeholderId)) {
|
|
45
|
-
var _resolve2 = _this.isAddedPlaceholderMatchingSizeCallbacks.get(placeholderId);
|
|
46
|
-
_this.isAddedPlaceholderMatchingSizeCallbacks.delete(placeholderId);
|
|
47
|
-
if (!_resolve2) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
var placeholder = _this.placeholders.get(placeholderId);
|
|
51
|
-
if (!placeholder) {
|
|
52
|
-
_resolve2(false);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
_resolve2(_this.areRectsSameSize(placeholder, boundingClientRect));
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
var replaceId = (_target$dataset2 = target.dataset) === null || _target$dataset2 === void 0 ? void 0 : _target$dataset2[replaceDataKey];
|
|
59
|
-
if (replaceId && _this.isAddedReplaceMatchingSizeCallbacks.has(replaceId)) {
|
|
60
|
-
var _resolve3 = _this.isAddedReplaceMatchingSizeCallbacks.get(replaceId);
|
|
61
|
-
_this.isAddedReplaceMatchingSizeCallbacks.delete(replaceId);
|
|
62
|
-
if (!_resolve3) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
var _placeholder = _this.placeholders.get(replaceId);
|
|
66
|
-
if (!_placeholder) {
|
|
67
|
-
_resolve3(false);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
_this.placeholders.delete(replaceId);
|
|
71
|
-
_resolve3(_this.areRectsSameSize(_placeholder, boundingClientRect));
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
this.intersectionObserver = new IntersectionObserver(function (entries) {
|
|
76
|
-
return entries.filter(function (entry) {
|
|
77
|
-
return entry.intersectionRatio > 0;
|
|
78
|
-
}).forEach(_this.intersectionObserverCallback);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
return (0, _createClass2.default)(EditorLnvHandler, [{
|
|
82
|
-
key: "shouldHandleAddedNode",
|
|
83
|
-
value: function shouldHandleAddedNode(el) {
|
|
84
|
-
var _el$dataset, _el$dataset2;
|
|
85
|
-
return ((_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset[placeholderDataKey]) || ((_el$dataset2 = el.dataset) === null || _el$dataset2 === void 0 ? void 0 : _el$dataset2[replaceDataKey]);
|
|
86
|
-
}
|
|
87
|
-
}, {
|
|
88
|
-
key: "handleAddedNode",
|
|
89
|
-
value: function handleAddedNode(el) {
|
|
90
|
-
var _el$dataset3, _el$dataset4;
|
|
91
|
-
// If it placeholder does not already exist, add it to the map
|
|
92
|
-
var placeholderId = (_el$dataset3 = el.dataset) === null || _el$dataset3 === void 0 ? void 0 : _el$dataset3[placeholderDataKey];
|
|
93
|
-
if (placeholderId) {
|
|
94
|
-
return this.handleAddedPlaceholderNode(el, placeholderId);
|
|
95
|
-
}
|
|
96
|
-
var replaceId = (_el$dataset4 = el.dataset) === null || _el$dataset4 === void 0 ? void 0 : _el$dataset4[replaceDataKey];
|
|
97
|
-
if (replaceId) {
|
|
98
|
-
return this.handleAddedReplaceNode(el, replaceId);
|
|
99
|
-
}
|
|
100
|
-
return Promise.resolve({
|
|
101
|
-
shouldIgnore: false
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}, {
|
|
105
|
-
key: "clear",
|
|
106
|
-
value: function clear() {
|
|
107
|
-
this.placeholders.clear();
|
|
108
|
-
this.intersectionObserver.disconnect();
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
key: "handleAddedPlaceholderNode",
|
|
112
|
-
value: function handleAddedPlaceholderNode(el, placeholderId) {
|
|
113
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
114
|
-
return this.isAddedPlaceholderMatchingSize(el, placeholderId).then(function (isMatching) {
|
|
115
|
-
return {
|
|
116
|
-
shouldIgnore: isMatching
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
return this.registerPlaceholder(el, placeholderId).then(function () {
|
|
121
|
-
return {
|
|
122
|
-
shouldIgnore: false
|
|
123
|
-
};
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}, {
|
|
127
|
-
key: "handleAddedReplaceNode",
|
|
128
|
-
value: function handleAddedReplaceNode(el, placeholderId) {
|
|
129
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
130
|
-
return this.isAddedReplaceMatchingSize(el, placeholderId).then(function (isMatching) {
|
|
131
|
-
return {
|
|
132
|
-
shouldIgnore: isMatching
|
|
133
|
-
};
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return Promise.resolve({
|
|
137
|
-
shouldIgnore: false
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
}, {
|
|
141
|
-
key: "isExistingPlaceholder",
|
|
142
|
-
value: function isExistingPlaceholder(placeholderId) {
|
|
143
|
-
return this.placeholders.has(placeholderId);
|
|
144
|
-
}
|
|
145
|
-
}, {
|
|
146
|
-
key: "registerPlaceholder",
|
|
147
|
-
value: function registerPlaceholder(el, placeholderId) {
|
|
148
|
-
var _this2 = this;
|
|
149
|
-
return this.getSize(el, placeholderId).then(function (size) {
|
|
150
|
-
_this2.placeholders.set(placeholderId, size);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}, {
|
|
154
|
-
key: "getSize",
|
|
155
|
-
value: function getSize(el, placeholderId) {
|
|
156
|
-
var _this3 = this;
|
|
157
|
-
return new Promise(function (resolve) {
|
|
158
|
-
_this3.getSizeCallbacks.set(placeholderId, resolve);
|
|
159
|
-
_this3.intersectionObserver.observe(el);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}, {
|
|
163
|
-
key: "isAddedPlaceholderMatchingSize",
|
|
164
|
-
value: function isAddedPlaceholderMatchingSize(el, placeholderId) {
|
|
165
|
-
var _this4 = this;
|
|
166
|
-
return new Promise(function (resolve) {
|
|
167
|
-
_this4.isAddedPlaceholderMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
168
|
-
_this4.intersectionObserver.observe(el);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}, {
|
|
172
|
-
key: "isAddedReplaceMatchingSize",
|
|
173
|
-
value: function isAddedReplaceMatchingSize(el, placeholderId) {
|
|
174
|
-
var _this5 = this;
|
|
175
|
-
return new Promise(function (resolve) {
|
|
176
|
-
_this5.isAddedReplaceMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
177
|
-
_this5.intersectionObserver.observe(el);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
key: "areRectsSameSize",
|
|
182
|
-
value: function areRectsSameSize(a, b) {
|
|
183
|
-
return Math.abs(a.width - b.width) < 1 && Math.abs(a.height - b.height) < 1;
|
|
184
|
-
}
|
|
185
|
-
}]);
|
|
186
|
-
}();
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createMockIntersectionObserver = createMockIntersectionObserver;
|
|
8
|
-
exports.createPlaceholderElement = createPlaceholderElement;
|
|
9
|
-
exports.createReplaceElement = createReplaceElement;
|
|
10
|
-
exports.handleElements = handleElements;
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
15
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
-
function createPlaceholderElement(id) {
|
|
18
|
-
var el = document.createElement('div');
|
|
19
|
-
el.dataset.editorLnvPlaceholder = id;
|
|
20
|
-
return el;
|
|
21
|
-
}
|
|
22
|
-
function createReplaceElement(id) {
|
|
23
|
-
var el = document.createElement('div');
|
|
24
|
-
el.dataset.editorLnvPlaceholderReplace = id;
|
|
25
|
-
return el;
|
|
26
|
-
}
|
|
27
|
-
function handleElements(elements, handler, observerCallback, callback) {
|
|
28
|
-
var _elements = (0, _toArray2.default)(elements),
|
|
29
|
-
first = _elements[0],
|
|
30
|
-
rest = _elements.slice(1);
|
|
31
|
-
handler.handleAddedNode(first.element).then(function (result) {
|
|
32
|
-
if (!rest.length) {
|
|
33
|
-
// Recursion terminating condition
|
|
34
|
-
callback(result);
|
|
35
|
-
} else {
|
|
36
|
-
// Recursively handle the rest of the elements
|
|
37
|
-
handleElements(rest, handler, observerCallback, callback);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
observerCallback([{
|
|
41
|
-
target: first.element,
|
|
42
|
-
boundingClientRect: first.rect
|
|
43
|
-
}]);
|
|
44
|
-
}
|
|
45
|
-
function createMockIntersectionObserver(cbRef) {
|
|
46
|
-
return /*#__PURE__*/function () {
|
|
47
|
-
function _class(fn) {
|
|
48
|
-
(0, _classCallCheck2.default)(this, _class);
|
|
49
|
-
cbRef.current = function (entries) {
|
|
50
|
-
return fn(entries.map(function (entry) {
|
|
51
|
-
return _objectSpread(_objectSpread({}, entry), {}, {
|
|
52
|
-
intersectionRatio: 1
|
|
53
|
-
});
|
|
54
|
-
}));
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return (0, _createClass2.default)(_class, [{
|
|
58
|
-
key: "observe",
|
|
59
|
-
value: function observe() {}
|
|
60
|
-
}, {
|
|
61
|
-
key: "unobserve",
|
|
62
|
-
value: function unobserve() {}
|
|
63
|
-
}, {
|
|
64
|
-
key: "disconnect",
|
|
65
|
-
value: function disconnect() {}
|
|
66
|
-
}]);
|
|
67
|
-
}();
|
|
68
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
const placeholderDataKey = 'editorLnvPlaceholder'; // data-editor-lnv-placeholder
|
|
3
|
-
const replaceDataKey = 'editorLnvPlaceholderReplace'; // data-editor-lnv-placeholder-replace
|
|
4
|
-
|
|
5
|
-
export class EditorLnvHandler {
|
|
6
|
-
constructor() {
|
|
7
|
-
_defineProperty(this, "placeholders", new Map());
|
|
8
|
-
_defineProperty(this, "getSizeCallbacks", new Map());
|
|
9
|
-
_defineProperty(this, "isAddedPlaceholderMatchingSizeCallbacks", new Map());
|
|
10
|
-
_defineProperty(this, "isAddedReplaceMatchingSizeCallbacks", new Map());
|
|
11
|
-
_defineProperty(this, "intersectionObserverCallback", ({
|
|
12
|
-
target,
|
|
13
|
-
boundingClientRect
|
|
14
|
-
}) => {
|
|
15
|
-
var _target$dataset, _target$dataset2;
|
|
16
|
-
this.intersectionObserver.unobserve(target);
|
|
17
|
-
if (!(target instanceof HTMLElement)) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const placeholderId = (_target$dataset = target.dataset) === null || _target$dataset === void 0 ? void 0 : _target$dataset[placeholderDataKey];
|
|
21
|
-
if (placeholderId && this.getSizeCallbacks.has(placeholderId)) {
|
|
22
|
-
const resolve = this.getSizeCallbacks.get(placeholderId);
|
|
23
|
-
this.getSizeCallbacks.delete(placeholderId);
|
|
24
|
-
if (!resolve) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
resolve({
|
|
28
|
-
x: boundingClientRect.x,
|
|
29
|
-
y: boundingClientRect.y,
|
|
30
|
-
width: boundingClientRect.width,
|
|
31
|
-
height: boundingClientRect.height
|
|
32
|
-
});
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (placeholderId && this.isAddedPlaceholderMatchingSizeCallbacks.has(placeholderId)) {
|
|
36
|
-
const resolve = this.isAddedPlaceholderMatchingSizeCallbacks.get(placeholderId);
|
|
37
|
-
this.isAddedPlaceholderMatchingSizeCallbacks.delete(placeholderId);
|
|
38
|
-
if (!resolve) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const placeholder = this.placeholders.get(placeholderId);
|
|
42
|
-
if (!placeholder) {
|
|
43
|
-
resolve(false);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
resolve(this.areRectsSameSize(placeholder, boundingClientRect));
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const replaceId = (_target$dataset2 = target.dataset) === null || _target$dataset2 === void 0 ? void 0 : _target$dataset2[replaceDataKey];
|
|
50
|
-
if (replaceId && this.isAddedReplaceMatchingSizeCallbacks.has(replaceId)) {
|
|
51
|
-
const resolve = this.isAddedReplaceMatchingSizeCallbacks.get(replaceId);
|
|
52
|
-
this.isAddedReplaceMatchingSizeCallbacks.delete(replaceId);
|
|
53
|
-
if (!resolve) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const placeholder = this.placeholders.get(replaceId);
|
|
57
|
-
if (!placeholder) {
|
|
58
|
-
resolve(false);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
this.placeholders.delete(replaceId);
|
|
62
|
-
resolve(this.areRectsSameSize(placeholder, boundingClientRect));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
this.intersectionObserver = new IntersectionObserver(entries => entries.filter(entry => entry.intersectionRatio > 0).forEach(this.intersectionObserverCallback));
|
|
67
|
-
}
|
|
68
|
-
shouldHandleAddedNode(el) {
|
|
69
|
-
var _el$dataset, _el$dataset2;
|
|
70
|
-
return ((_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset[placeholderDataKey]) || ((_el$dataset2 = el.dataset) === null || _el$dataset2 === void 0 ? void 0 : _el$dataset2[replaceDataKey]);
|
|
71
|
-
}
|
|
72
|
-
handleAddedNode(el) {
|
|
73
|
-
var _el$dataset3, _el$dataset4;
|
|
74
|
-
// If it placeholder does not already exist, add it to the map
|
|
75
|
-
const placeholderId = (_el$dataset3 = el.dataset) === null || _el$dataset3 === void 0 ? void 0 : _el$dataset3[placeholderDataKey];
|
|
76
|
-
if (placeholderId) {
|
|
77
|
-
return this.handleAddedPlaceholderNode(el, placeholderId);
|
|
78
|
-
}
|
|
79
|
-
const replaceId = (_el$dataset4 = el.dataset) === null || _el$dataset4 === void 0 ? void 0 : _el$dataset4[replaceDataKey];
|
|
80
|
-
if (replaceId) {
|
|
81
|
-
return this.handleAddedReplaceNode(el, replaceId);
|
|
82
|
-
}
|
|
83
|
-
return Promise.resolve({
|
|
84
|
-
shouldIgnore: false
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
clear() {
|
|
88
|
-
this.placeholders.clear();
|
|
89
|
-
this.intersectionObserver.disconnect();
|
|
90
|
-
}
|
|
91
|
-
handleAddedPlaceholderNode(el, placeholderId) {
|
|
92
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
93
|
-
return this.isAddedPlaceholderMatchingSize(el, placeholderId).then(isMatching => ({
|
|
94
|
-
shouldIgnore: isMatching
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
return this.registerPlaceholder(el, placeholderId).then(() => ({
|
|
98
|
-
shouldIgnore: false
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
handleAddedReplaceNode(el, placeholderId) {
|
|
102
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
103
|
-
return this.isAddedReplaceMatchingSize(el, placeholderId).then(isMatching => ({
|
|
104
|
-
shouldIgnore: isMatching
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
return Promise.resolve({
|
|
108
|
-
shouldIgnore: false
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
isExistingPlaceholder(placeholderId) {
|
|
112
|
-
return this.placeholders.has(placeholderId);
|
|
113
|
-
}
|
|
114
|
-
registerPlaceholder(el, placeholderId) {
|
|
115
|
-
return this.getSize(el, placeholderId).then(size => {
|
|
116
|
-
this.placeholders.set(placeholderId, size);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
getSize(el, placeholderId) {
|
|
120
|
-
return new Promise(resolve => {
|
|
121
|
-
this.getSizeCallbacks.set(placeholderId, resolve);
|
|
122
|
-
this.intersectionObserver.observe(el);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
isAddedPlaceholderMatchingSize(el, placeholderId) {
|
|
126
|
-
return new Promise(resolve => {
|
|
127
|
-
this.isAddedPlaceholderMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
128
|
-
this.intersectionObserver.observe(el);
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
isAddedReplaceMatchingSize(el, placeholderId) {
|
|
132
|
-
return new Promise(resolve => {
|
|
133
|
-
this.isAddedReplaceMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
134
|
-
this.intersectionObserver.observe(el);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
areRectsSameSize(a, b) {
|
|
138
|
-
return Math.abs(a.width - b.width) < 1 && Math.abs(a.height - b.height) < 1;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export function createPlaceholderElement(id) {
|
|
2
|
-
const el = document.createElement('div');
|
|
3
|
-
el.dataset.editorLnvPlaceholder = id;
|
|
4
|
-
return el;
|
|
5
|
-
}
|
|
6
|
-
export function createReplaceElement(id) {
|
|
7
|
-
const el = document.createElement('div');
|
|
8
|
-
el.dataset.editorLnvPlaceholderReplace = id;
|
|
9
|
-
return el;
|
|
10
|
-
}
|
|
11
|
-
export function handleElements(elements, handler, observerCallback, callback) {
|
|
12
|
-
const [first, ...rest] = elements;
|
|
13
|
-
handler.handleAddedNode(first.element).then(result => {
|
|
14
|
-
if (!rest.length) {
|
|
15
|
-
// Recursion terminating condition
|
|
16
|
-
callback(result);
|
|
17
|
-
} else {
|
|
18
|
-
// Recursively handle the rest of the elements
|
|
19
|
-
handleElements(rest, handler, observerCallback, callback);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
observerCallback([{
|
|
23
|
-
target: first.element,
|
|
24
|
-
boundingClientRect: first.rect
|
|
25
|
-
}]);
|
|
26
|
-
}
|
|
27
|
-
export function createMockIntersectionObserver(cbRef) {
|
|
28
|
-
return class {
|
|
29
|
-
constructor(fn) {
|
|
30
|
-
cbRef.current = entries => fn(entries.map(entry => {
|
|
31
|
-
return {
|
|
32
|
-
...entry,
|
|
33
|
-
intersectionRatio: 1
|
|
34
|
-
};
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
observe() {}
|
|
38
|
-
unobserve() {}
|
|
39
|
-
disconnect() {}
|
|
40
|
-
};
|
|
41
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
var placeholderDataKey = 'editorLnvPlaceholder'; // data-editor-lnv-placeholder
|
|
5
|
-
var replaceDataKey = 'editorLnvPlaceholderReplace'; // data-editor-lnv-placeholder-replace
|
|
6
|
-
|
|
7
|
-
export var EditorLnvHandler = /*#__PURE__*/function () {
|
|
8
|
-
function EditorLnvHandler() {
|
|
9
|
-
var _this = this;
|
|
10
|
-
_classCallCheck(this, EditorLnvHandler);
|
|
11
|
-
_defineProperty(this, "placeholders", new Map());
|
|
12
|
-
_defineProperty(this, "getSizeCallbacks", new Map());
|
|
13
|
-
_defineProperty(this, "isAddedPlaceholderMatchingSizeCallbacks", new Map());
|
|
14
|
-
_defineProperty(this, "isAddedReplaceMatchingSizeCallbacks", new Map());
|
|
15
|
-
_defineProperty(this, "intersectionObserverCallback", function (_ref) {
|
|
16
|
-
var _target$dataset, _target$dataset2;
|
|
17
|
-
var target = _ref.target,
|
|
18
|
-
boundingClientRect = _ref.boundingClientRect;
|
|
19
|
-
_this.intersectionObserver.unobserve(target);
|
|
20
|
-
if (!(target instanceof HTMLElement)) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
var placeholderId = (_target$dataset = target.dataset) === null || _target$dataset === void 0 ? void 0 : _target$dataset[placeholderDataKey];
|
|
24
|
-
if (placeholderId && _this.getSizeCallbacks.has(placeholderId)) {
|
|
25
|
-
var _resolve = _this.getSizeCallbacks.get(placeholderId);
|
|
26
|
-
_this.getSizeCallbacks.delete(placeholderId);
|
|
27
|
-
if (!_resolve) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
_resolve({
|
|
31
|
-
x: boundingClientRect.x,
|
|
32
|
-
y: boundingClientRect.y,
|
|
33
|
-
width: boundingClientRect.width,
|
|
34
|
-
height: boundingClientRect.height
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (placeholderId && _this.isAddedPlaceholderMatchingSizeCallbacks.has(placeholderId)) {
|
|
39
|
-
var _resolve2 = _this.isAddedPlaceholderMatchingSizeCallbacks.get(placeholderId);
|
|
40
|
-
_this.isAddedPlaceholderMatchingSizeCallbacks.delete(placeholderId);
|
|
41
|
-
if (!_resolve2) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
var placeholder = _this.placeholders.get(placeholderId);
|
|
45
|
-
if (!placeholder) {
|
|
46
|
-
_resolve2(false);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
_resolve2(_this.areRectsSameSize(placeholder, boundingClientRect));
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
var replaceId = (_target$dataset2 = target.dataset) === null || _target$dataset2 === void 0 ? void 0 : _target$dataset2[replaceDataKey];
|
|
53
|
-
if (replaceId && _this.isAddedReplaceMatchingSizeCallbacks.has(replaceId)) {
|
|
54
|
-
var _resolve3 = _this.isAddedReplaceMatchingSizeCallbacks.get(replaceId);
|
|
55
|
-
_this.isAddedReplaceMatchingSizeCallbacks.delete(replaceId);
|
|
56
|
-
if (!_resolve3) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
var _placeholder = _this.placeholders.get(replaceId);
|
|
60
|
-
if (!_placeholder) {
|
|
61
|
-
_resolve3(false);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
_this.placeholders.delete(replaceId);
|
|
65
|
-
_resolve3(_this.areRectsSameSize(_placeholder, boundingClientRect));
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
this.intersectionObserver = new IntersectionObserver(function (entries) {
|
|
70
|
-
return entries.filter(function (entry) {
|
|
71
|
-
return entry.intersectionRatio > 0;
|
|
72
|
-
}).forEach(_this.intersectionObserverCallback);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
return _createClass(EditorLnvHandler, [{
|
|
76
|
-
key: "shouldHandleAddedNode",
|
|
77
|
-
value: function shouldHandleAddedNode(el) {
|
|
78
|
-
var _el$dataset, _el$dataset2;
|
|
79
|
-
return ((_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset[placeholderDataKey]) || ((_el$dataset2 = el.dataset) === null || _el$dataset2 === void 0 ? void 0 : _el$dataset2[replaceDataKey]);
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
key: "handleAddedNode",
|
|
83
|
-
value: function handleAddedNode(el) {
|
|
84
|
-
var _el$dataset3, _el$dataset4;
|
|
85
|
-
// If it placeholder does not already exist, add it to the map
|
|
86
|
-
var placeholderId = (_el$dataset3 = el.dataset) === null || _el$dataset3 === void 0 ? void 0 : _el$dataset3[placeholderDataKey];
|
|
87
|
-
if (placeholderId) {
|
|
88
|
-
return this.handleAddedPlaceholderNode(el, placeholderId);
|
|
89
|
-
}
|
|
90
|
-
var replaceId = (_el$dataset4 = el.dataset) === null || _el$dataset4 === void 0 ? void 0 : _el$dataset4[replaceDataKey];
|
|
91
|
-
if (replaceId) {
|
|
92
|
-
return this.handleAddedReplaceNode(el, replaceId);
|
|
93
|
-
}
|
|
94
|
-
return Promise.resolve({
|
|
95
|
-
shouldIgnore: false
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}, {
|
|
99
|
-
key: "clear",
|
|
100
|
-
value: function clear() {
|
|
101
|
-
this.placeholders.clear();
|
|
102
|
-
this.intersectionObserver.disconnect();
|
|
103
|
-
}
|
|
104
|
-
}, {
|
|
105
|
-
key: "handleAddedPlaceholderNode",
|
|
106
|
-
value: function handleAddedPlaceholderNode(el, placeholderId) {
|
|
107
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
108
|
-
return this.isAddedPlaceholderMatchingSize(el, placeholderId).then(function (isMatching) {
|
|
109
|
-
return {
|
|
110
|
-
shouldIgnore: isMatching
|
|
111
|
-
};
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
return this.registerPlaceholder(el, placeholderId).then(function () {
|
|
115
|
-
return {
|
|
116
|
-
shouldIgnore: false
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}, {
|
|
121
|
-
key: "handleAddedReplaceNode",
|
|
122
|
-
value: function handleAddedReplaceNode(el, placeholderId) {
|
|
123
|
-
if (this.isExistingPlaceholder(placeholderId)) {
|
|
124
|
-
return this.isAddedReplaceMatchingSize(el, placeholderId).then(function (isMatching) {
|
|
125
|
-
return {
|
|
126
|
-
shouldIgnore: isMatching
|
|
127
|
-
};
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return Promise.resolve({
|
|
131
|
-
shouldIgnore: false
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}, {
|
|
135
|
-
key: "isExistingPlaceholder",
|
|
136
|
-
value: function isExistingPlaceholder(placeholderId) {
|
|
137
|
-
return this.placeholders.has(placeholderId);
|
|
138
|
-
}
|
|
139
|
-
}, {
|
|
140
|
-
key: "registerPlaceholder",
|
|
141
|
-
value: function registerPlaceholder(el, placeholderId) {
|
|
142
|
-
var _this2 = this;
|
|
143
|
-
return this.getSize(el, placeholderId).then(function (size) {
|
|
144
|
-
_this2.placeholders.set(placeholderId, size);
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
key: "getSize",
|
|
149
|
-
value: function getSize(el, placeholderId) {
|
|
150
|
-
var _this3 = this;
|
|
151
|
-
return new Promise(function (resolve) {
|
|
152
|
-
_this3.getSizeCallbacks.set(placeholderId, resolve);
|
|
153
|
-
_this3.intersectionObserver.observe(el);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}, {
|
|
157
|
-
key: "isAddedPlaceholderMatchingSize",
|
|
158
|
-
value: function isAddedPlaceholderMatchingSize(el, placeholderId) {
|
|
159
|
-
var _this4 = this;
|
|
160
|
-
return new Promise(function (resolve) {
|
|
161
|
-
_this4.isAddedPlaceholderMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
162
|
-
_this4.intersectionObserver.observe(el);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}, {
|
|
166
|
-
key: "isAddedReplaceMatchingSize",
|
|
167
|
-
value: function isAddedReplaceMatchingSize(el, placeholderId) {
|
|
168
|
-
var _this5 = this;
|
|
169
|
-
return new Promise(function (resolve) {
|
|
170
|
-
_this5.isAddedReplaceMatchingSizeCallbacks.set(placeholderId, resolve);
|
|
171
|
-
_this5.intersectionObserver.observe(el);
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}, {
|
|
175
|
-
key: "areRectsSameSize",
|
|
176
|
-
value: function areRectsSameSize(a, b) {
|
|
177
|
-
return Math.abs(a.width - b.width) < 1 && Math.abs(a.height - b.height) < 1;
|
|
178
|
-
}
|
|
179
|
-
}]);
|
|
180
|
-
}();
|