Skip to content

Commit 8e72edc

Browse files
committed
fix tsc and build assets
1 parent 404c074 commit 8e72edc

4 files changed

Lines changed: 62 additions & 88 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"private": true,
33
"scripts": {
4-
"tsc": "tsc resources/js/src/*.ts",
4+
"tsc": "tsc",
55
"dev": "vite build --watch",
6-
"build": "tsc resources/js/src/*.ts && vite build",
6+
"build": "tsc && vite build",
77
"lint": "prettier --write resources/js/src",
88
"test:lint": "prettier --check resources/js/src"
99
},

resources/js/dist/pan.iife.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/js/src/main.js

Lines changed: 57 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
"use strict";
22
Object.defineProperty(exports, "__esModule", { value: true });
3-
exports.window.__pan = exports.window.__pan || {
4-
csrfToken: "%_PAN_CSRF_TOKEN_%",
5-
routePrefix: "%_PAN_ROUTE_PREFIX_%",
6-
observer: null,
7-
clickListener: null,
8-
mouseoverListener: null,
9-
inertiaStartListener: null,
10-
};
3+
exports.window.__pan =
4+
exports.window.__pan ||
5+
{
6+
csrfToken: "%_PAN_CSRF_TOKEN_%",
7+
routePrefix: "%_PAN_ROUTE_PREFIX_%",
8+
observer: null,
9+
clickListener: null,
10+
mouseoverListener: null,
11+
inertiaStartListener: null,
12+
};
1113
if (exports.window.__pan.observer) {
1214
exports.window.__pan.observer.disconnect();
1315
exports.window.__pan.observer = null;
@@ -17,67 +19,56 @@ if (exports.window.__pan.clickListener) {
1719
exports.window.__pan.clickListener = null;
1820
}
1921
if (exports.window.__pan.mouseoverListener) {
20-
document.removeEventListener(
21-
"mouseover",
22-
exports.window.__pan.mouseoverListener,
23-
);
22+
document.removeEventListener("mouseover", exports.window.__pan.mouseoverListener);
2423
exports.window.__pan.mouseoverListener = null;
2524
}
2625
if (exports.window.__pan.inertiaStartListener) {
27-
document.removeEventListener(
28-
"inertia:start",
29-
exports.window.__pan.inertiaStartListener,
30-
);
26+
document.removeEventListener("inertia:start", exports.window.__pan.inertiaStartListener);
3127
exports.window.__pan.inertiaStartListener = null;
3228
}
3329
(function () {
34-
var domObserver = function (callback) {
35-
var observer = new MutationObserver(callback);
30+
const domObserver = (callback) => {
31+
const observer = new MutationObserver(callback);
3632
observer.observe(document.body, {
3733
childList: true,
3834
subtree: true,
3935
attributes: true,
4036
});
4137
exports.window.__pan.observer = observer;
4238
};
43-
var queue = [];
44-
var queueTimeout = null;
45-
var impressed = [];
46-
var hovered = [];
47-
var clicked = [];
48-
var commit = function () {
39+
let queue = [];
40+
let queueTimeout = null;
41+
let impressed = [];
42+
let hovered = [];
43+
let clicked = [];
44+
let sameNameElements = [];
45+
const commit = () => {
4946
if (queue.length === 0) {
5047
return;
5148
}
52-
var onGoingQueue = queue.slice();
49+
const onGoingQueue = queue.slice();
5350
queue = [];
54-
navigator.sendBeacon(
55-
"/".concat(exports.window.__pan.routePrefix, "/events"),
56-
new Blob(
57-
[
58-
JSON.stringify({
59-
events: onGoingQueue,
60-
_token: exports.window.__pan.csrfToken,
61-
}),
62-
],
63-
{
64-
type: "application/json",
65-
},
66-
),
67-
);
51+
navigator.sendBeacon(`/${exports.window.__pan.routePrefix}/events`, new Blob([
52+
JSON.stringify({
53+
events: onGoingQueue,
54+
_token: exports.window.__pan.csrfToken,
55+
}),
56+
], {
57+
type: "application/json",
58+
}));
6859
};
69-
var queueCommit = function () {
60+
const queueCommit = function () {
7061
queueTimeout && clearTimeout(queueTimeout);
7162
// @ts-ignore
7263
queueTimeout = setTimeout(commit, 1000);
7364
};
74-
var send = function (el, event) {
75-
var target = el.target;
76-
var element = target.closest("[data-pan]");
65+
const send = function (el, event) {
66+
const target = el.target;
67+
const element = target.closest("[data-pan]");
7768
if (element === null) {
7869
return;
7970
}
80-
var name = element.getAttribute("data-pan");
71+
const name = element.getAttribute("data-pan");
8172
if (name === null) {
8273
return;
8374
}
@@ -99,19 +90,22 @@ if (exports.window.__pan.inertiaStartListener) {
9990
});
10091
queueCommit();
10192
};
102-
var detectImpressions = function () {
103-
var elementsBeingImpressed = document.querySelectorAll("[data-pan]");
104-
elementsBeingImpressed.forEach(function (element) {
105-
if (
106-
element.checkVisibility !== undefined &&
107-
!element.checkVisibility()
108-
) {
93+
const detectImpressions = function () {
94+
const elementsBeingImpressed = document.querySelectorAll("[data-pan]");
95+
elementsBeingImpressed.forEach((element) => {
96+
if (element.checkVisibility !== undefined &&
97+
!element.checkVisibility()) {
10998
return;
11099
}
111-
var name = element.getAttribute("data-pan");
100+
const name = element.getAttribute("data-pan");
112101
if (name === null) {
113102
return;
114103
}
104+
let nameElements = document.querySelectorAll(`[data-pan='${name}']`);
105+
if (nameElements.length > 1 && !sameNameElements.includes(name)) {
106+
console.warn(`PAN: Multiple (${nameElements.length}) elements with the same name '${name}' found`);
107+
sameNameElements.push(name);
108+
}
115109
if (impressed.includes(name)) {
116110
return;
117111
}
@@ -124,53 +118,32 @@ if (exports.window.__pan.inertiaStartListener) {
124118
queueCommit();
125119
};
126120
domObserver(function () {
127-
impressed.forEach(function (name) {
128-
var element = document.querySelector(
129-
"[data-pan='".concat(name, "']"),
130-
);
121+
impressed.forEach((name) => {
122+
const element = document.querySelector(`[data-pan='${name}']`);
131123
if (element === null) {
132-
impressed = impressed.filter(function (n) {
133-
return n !== name;
134-
});
135-
hovered = hovered.filter(function (n) {
136-
return n !== name;
137-
});
138-
clicked = clicked.filter(function (n) {
139-
return n !== name;
140-
});
124+
impressed = impressed.filter((n) => n !== name);
125+
hovered = hovered.filter((n) => n !== name);
126+
clicked = clicked.filter((n) => n !== name);
141127
}
142128
});
143129
detectImpressions();
144130
});
145-
exports.window.__pan.clickListener = function (event) {
146-
return send(event, "click");
147-
};
131+
exports.window.__pan.clickListener = (event) => send(event, "click");
148132
document.addEventListener("click", exports.window.__pan.clickListener);
149-
exports.window.__pan.mouseoverListener = function (event) {
150-
return send(event, "hover");
151-
};
152-
document.addEventListener(
153-
"mouseover",
154-
exports.window.__pan.mouseoverListener,
155-
);
156-
exports.window.__pan.inertiaStartListener = function (event) {
133+
exports.window.__pan.mouseoverListener = (event) => send(event, "hover");
134+
document.addEventListener("mouseover", exports.window.__pan.mouseoverListener);
135+
exports.window.__pan.inertiaStartListener = (event) => {
157136
impressed = [];
158137
hovered = [];
159138
clicked = [];
160139
detectImpressions();
161140
};
162-
document.addEventListener(
163-
"inertia:start",
164-
exports.window.__pan.inertiaStartListener,
165-
);
141+
document.addEventListener("inertia:start", exports.window.__pan.inertiaStartListener);
166142
exports.window.__pan.beforeUnloadListener = function (event) {
167143
if (queue.length === 0) {
168144
return;
169145
}
170146
commit();
171147
};
172-
exports.window.addEventListener(
173-
"beforeunload",
174-
exports.window.__pan.beforeUnloadListener,
175-
);
148+
exports.window.addEventListener("beforeunload", exports.window.__pan.beforeUnloadListener);
176149
})();

tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
"forceConsistentCasingInFileNames": true,
77
"strict": true,
88
"skipLibCheck": true
9-
}
9+
},
10+
"include": ["resources/js/src/**/*.ts"]
1011
}

0 commit comments

Comments
 (0)