@measured/puck-plugin-heading-analyzer 0.14.2-canary.58b08a9 → 0.14.2-canary.717ccb9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +60 -29
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -45907,7 +45907,10 @@ var require_dist = __commonJS({
45907
45907
  return collected;
45908
45908
  };
45909
45909
  var getStyleSheet = (el) => {
45910
- return Array.from(document.styleSheets).find((ss) => ss.ownerNode === el);
45910
+ return Array.from(document.styleSheets).find((ss) => {
45911
+ const ownerNode = ss.ownerNode;
45912
+ return ownerNode.href === el.href;
45913
+ });
45911
45914
  };
45912
45915
  var getStyles2 = (styleSheet) => {
45913
45916
  if (styleSheet) {
@@ -45929,25 +45932,16 @@ var require_dist = __commonJS({
45929
45932
  onStylesLoaded = () => null
45930
45933
  }) => {
45931
45934
  const { document: doc, window: win } = (0, import_react_frame_component.useFrame)();
45932
- (0, import_react22.useLayoutEffect)(() => {
45935
+ (0, import_react22.useEffect)(() => {
45933
45936
  if (!win || !doc) {
45934
45937
  return () => {
45935
45938
  };
45936
45939
  }
45937
- const elements = [];
45940
+ let elements = [];
45941
+ const hashes = {};
45938
45942
  const lookupEl = (el) => elements.findIndex((elementMap) => elementMap.original === el);
45939
- const addEl = (el, onLoad = () => {
45943
+ const mirrorEl = (el, onLoad = () => {
45940
45944
  }) => __async2(void 0, null, function* () {
45941
- const index = lookupEl(el);
45942
- if (index > -1) {
45943
- if (debug)
45944
- console.log(
45945
- `Tried to add an element that was already mirrored. Updating instead...`
45946
- );
45947
- elements[index].mirror.innerText = el.innerText;
45948
- onLoad();
45949
- return;
45950
- }
45951
45945
  let mirror;
45952
45946
  if (el.nodeName === "LINK") {
45953
45947
  mirror = document.createElement("style");
@@ -45964,7 +45958,6 @@ var require_dist = __commonJS({
45964
45958
  `Tried to load styles for link element, but couldn't find them. Skipping...`
45965
45959
  );
45966
45960
  }
45967
- onLoad();
45968
45961
  return;
45969
45962
  }
45970
45963
  mirror.innerHTML = styles;
@@ -45972,11 +45965,28 @@ var require_dist = __commonJS({
45972
45965
  } else {
45973
45966
  mirror = el.cloneNode(true);
45974
45967
  }
45968
+ mirror.onload = onLoad;
45969
+ return mirror;
45970
+ });
45971
+ const addEl = (el, onLoad = () => {
45972
+ }) => __async2(void 0, null, function* () {
45973
+ const index = lookupEl(el);
45974
+ if (index > -1) {
45975
+ if (debug)
45976
+ console.log(
45977
+ `Tried to add an element that was already mirrored. Updating instead...`
45978
+ );
45979
+ elements[index].mirror.innerText = el.innerText;
45980
+ onLoad();
45981
+ return;
45982
+ }
45983
+ const mirror = yield mirrorEl(el, onLoad);
45984
+ if (!mirror) {
45985
+ onLoad();
45986
+ return;
45987
+ }
45975
45988
  const elHash = (0, import_object_hash.default)(mirror.outerHTML);
45976
- const existingHashes = collectStyles(doc).map(
45977
- (existingStyle) => existingStyle !== mirror && (0, import_object_hash.default)(existingStyle.outerHTML)
45978
- ).filter(Boolean);
45979
- if (existingHashes.indexOf(elHash) > -1) {
45989
+ if (hashes[elHash]) {
45980
45990
  if (debug)
45981
45991
  console.log(
45982
45992
  `iframe already contains element that is being mirrored. Skipping...`
@@ -45984,6 +45994,7 @@ var require_dist = __commonJS({
45984
45994
  onLoad();
45985
45995
  return;
45986
45996
  }
45997
+ hashes[elHash] = true;
45987
45998
  mirror.onload = onLoad;
45988
45999
  doc.head.append(mirror);
45989
46000
  elements.push({ original: el, mirror });
@@ -45991,6 +46002,7 @@ var require_dist = __commonJS({
45991
46002
  console.log(`Added style node ${el.outerHTML}`);
45992
46003
  });
45993
46004
  const removeEl = (el) => {
46005
+ var _a3, _b;
45994
46006
  const index = lookupEl(el);
45995
46007
  if (index === -1) {
45996
46008
  if (debug)
@@ -45999,7 +46011,9 @@ var require_dist = __commonJS({
45999
46011
  );
46000
46012
  return;
46001
46013
  }
46002
- elements[index].mirror.remove();
46014
+ const elHash = (0, import_object_hash.default)(el.outerHTML);
46015
+ (_b = (_a3 = elements[index]) == null ? void 0 : _a3.mirror) == null ? void 0 : _b.remove();
46016
+ delete hashes[elHash];
46003
46017
  if (debug)
46004
46018
  console.log(`Removed style node ${el.outerHTML}`);
46005
46019
  };
@@ -46027,18 +46041,35 @@ var require_dist = __commonJS({
46027
46041
  });
46028
46042
  const parentDocument = win.parent.document;
46029
46043
  const collectedStyles = collectStyles(parentDocument);
46030
- let mountedCounter = 0;
46031
- collectedStyles.forEach((styleNode) => {
46032
- defer(
46033
- () => addEl(styleNode, () => {
46034
- mountedCounter += 1;
46035
- if (mountedCounter === collectedStyles.length) {
46036
- onStylesLoaded();
46044
+ const hrefs = [];
46045
+ Promise.all(
46046
+ collectedStyles.map((styleNode, i2) => __async2(void 0, null, function* () {
46047
+ if (styleNode.nodeName === "LINK") {
46048
+ const linkHref = styleNode.href;
46049
+ if (hrefs.indexOf(linkHref) > -1) {
46050
+ return;
46037
46051
  }
46038
- })
46052
+ hrefs.push(linkHref);
46053
+ }
46054
+ const mirror = yield mirrorEl(styleNode);
46055
+ if (!mirror)
46056
+ return;
46057
+ elements.push({ original: styleNode, mirror });
46058
+ return mirror;
46059
+ }))
46060
+ ).then((mirrorStyles) => {
46061
+ const filtered = mirrorStyles.filter(
46062
+ (el) => typeof el !== "undefined"
46039
46063
  );
46064
+ doc.head.innerHTML = "";
46065
+ doc.head.append(...filtered);
46066
+ observer.observe(parentDocument.head, { childList: true, subtree: true });
46067
+ filtered.forEach((el) => {
46068
+ const elHash = (0, import_object_hash.default)(el.outerHTML);
46069
+ hashes[elHash] = true;
46070
+ });
46071
+ onStylesLoaded();
46040
46072
  });
46041
- observer.observe(parentDocument.head, { childList: true, subtree: true });
46042
46073
  return () => {
46043
46074
  observer.disconnect();
46044
46075
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck-plugin-heading-analyzer",
3
- "version": "0.14.2-canary.58b08a9",
3
+ "version": "0.14.2-canary.717ccb9",
4
4
  "author": "Measured Corporation Ltd <hello@measured.co>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -18,7 +18,7 @@
18
18
  "dist"
19
19
  ],
20
20
  "devDependencies": {
21
- "@measured/puck": "^0.14.2-canary.58b08a9",
21
+ "@measured/puck": "^0.14.2-canary.717ccb9",
22
22
  "@types/react": "^18.2.0",
23
23
  "@types/react-dom": "^18.2.0",
24
24
  "eslint": "^7.32.0",