@diplodoc/transform 4.49.0 → 4.50.1

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/dist/js/yfm.js CHANGED
@@ -122,11 +122,11 @@
122
122
  // node_modules/@diplodoc/tabs-extension/build/runtime/index.js
123
123
  (() => {
124
124
  var x = "yfm-tabs", H = "yfm-tab", F = "yfm-tab-panel", D = "yfm-tab-list", l = "active";
125
- var B = "data-diplodoc-group", G = "data-diplodoc-key", y = "data-diplodoc-variant", w = "data-diplodoc-id", U = "defaultTabsGroup-";
126
- var O = "data-diplodoc-forced";
127
- var L = "yfm-tabs-dropdown-select";
125
+ var B = "data-diplodoc-group", G = "data-diplodoc-key", y = "data-diplodoc-variant", U = "data-diplodoc-id", L = "defaultTabsGroup-";
126
+ var R = "data-diplodoc-forced";
127
+ var w = "yfm-tabs-dropdown-select";
128
128
  var W = "yfm-tabs-vertical";
129
- var R = ((g) => (g.Regular = "regular", g.Radio = "radio", g.Dropdown = "dropdown", g.Accordion = "accordion", g))(R || {}), X = Symbol.for("diplodocTabs");
129
+ var O = ((g) => (g.Regular = "regular", g.Radio = "radio", g.Dropdown = "dropdown", g.Accordion = "accordion", g))(O || {}), X = Symbol.for("diplodocTabs");
130
130
  var f = (C) => {
131
131
  let t = C.composedPath();
132
132
  return Array.isArray(t) && t.length > 0 ? t[0] : C.target;
@@ -141,6 +141,7 @@
141
141
  constructor(t, e = {}) {
142
142
  this._onSelectTabHandlers = /* @__PURE__ */ new Set();
143
143
  this._currentPageTabGroups = [];
144
+ this._isRestoringTabs = false;
144
145
  this._document = t, this._options = Object.assign({ saveTabsToLocalStorage: false, saveTabsToQueryStateMode: "none" }, e), this._document.addEventListener("click", (o) => {
145
146
  let g = f(o);
146
147
  if (o.target && this.hideAllDropdown(o.target), Z(o)) return;
@@ -174,10 +175,10 @@
174
175
  if (!g) return;
175
176
  let I = f(o);
176
177
  if (Z(o) || !this.isValidTabElement(I)) return;
177
- let { tabs: a, nodes: c } = this.getTabs(I), i = this.getTabDataFromHTMLElement(I), r = a.findIndex(({ key: s }) => (i == null ? void 0 : i.key) && s === i.key);
178
- if (!i || a.length <= 1 || r === -1) return;
179
- let A = (r + (g === "left" ? -1 : 1) + a.length) % a.length;
180
- this.selectTab(a[A]), c[A].focus();
178
+ let { tabs: a, nodes: r } = this.getTabs(I), i = this.getTabDataFromHTMLElement(I), c = a.findIndex(({ key: A }) => (i == null ? void 0 : i.key) && A === i.key);
179
+ if (!i || a.length <= 1 || c === -1) return;
180
+ let s = (c + (g === "left" ? -1 : 1) + a.length) % a.length;
181
+ this.selectTab(a[s]), r[s].focus();
181
182
  });
182
183
  }
183
184
  configure(t) {
@@ -189,7 +190,7 @@
189
190
  };
190
191
  }
191
192
  selectTabById(t, e) {
192
- let o = this._document.querySelector(`${n.TAB}[${w}="${t}"]`);
193
+ let o = this._document.querySelector(`${n.TAB}[${U}="${t}"]`);
193
194
  if (!o || !this.isValidTabElement(o)) return;
194
195
  let g = this.getTabDataFromHTMLElement(o);
195
196
  g && this._selectTab(g, o), e != null && e.scrollToElement && o.scrollIntoView();
@@ -198,9 +199,14 @@
198
199
  this._selectTab(t);
199
200
  }
200
201
  restoreTabs(t) {
201
- for (let [e, o] of Object.entries(t)) if (e) {
202
- let g = __spreadValues({ group: e }, o);
203
- this.selectTab(g);
202
+ this._isRestoringTabs = true;
203
+ try {
204
+ for (let [e, o] of Object.entries(t)) if (e) {
205
+ let g = __spreadValues({ group: e }, o);
206
+ this.selectTab(g);
207
+ }
208
+ } finally {
209
+ this._isRestoringTabs = false;
204
210
  }
205
211
  }
206
212
  getTabsFromLocalStorage() {
@@ -209,21 +215,22 @@
209
215
  getTabsFromSearchQuery() {
210
216
  let t = {}, e = new URLSearchParams(window.location.search);
211
217
  return e.has("tabs") && (e.get("tabs") || "").split(",").forEach((I) => {
212
- let a = I.split("_"), [c, i] = a, r = "regular";
213
- if (a.length === 3 && (r = a[2]), c && i && Object.values(R).includes(r)) {
214
- let A = i;
215
- t[c] = { key: A, variant: r };
218
+ let a = I.split("_"), [r, i] = a, c = "regular";
219
+ if (a.length === 3 && (c = a[2]), r && i && Object.values(O).includes(c)) {
220
+ let s = i;
221
+ t[r] = { key: s, variant: c };
216
222
  }
217
223
  }), t;
218
224
  }
219
225
  updateLocalStorageWithTabs(t) {
220
- this._options.saveTabsToLocalStorage && localStorage.setItem("tabsHistory", JSON.stringify(t));
226
+ this._options.saveTabsToLocalStorage && (this._isRestoringTabs || localStorage.setItem("tabsHistory", JSON.stringify(t)));
221
227
  }
222
228
  updateQueryParamWithTabs(t) {
223
- let e = new URLSearchParams(window.location.search), o = Object.entries(t).map(([I, { key: a, variant: c }]) => c === "regular" ? `${I}_${a}` : `${I}_${a}_${c}`);
224
- e.set("tabs", o.join(","));
225
- let g = `${window.location.origin}${window.location.pathname}?${e.toString()}`;
226
- window.history.replaceState({}, document.title, g);
229
+ if (this._isRestoringTabs) return;
230
+ let e = new URLSearchParams(window.location.search), o = Object.entries(t).map(([a, { key: r, variant: i }]) => i === "regular" ? `${a}_${r}` : `${a}_${r}_${i}`);
231
+ o.length > 0 ? e.set("tabs", o.join(",")) : e.delete("tabs");
232
+ let g = history.state || {}, I = new URL(window.location.href);
233
+ I.search = e.toString(), window.history.replaceState(__spreadValues({}, g), document.title, I.href);
227
234
  }
228
235
  getCurrentPageTabHistory(t) {
229
236
  return Object.fromEntries(Object.entries(t).filter(([e]) => this._currentPageTabGroups.includes(e)));
@@ -245,8 +252,8 @@
245
252
  let { group: o, key: g, variant: I } = t;
246
253
  if (!o) return;
247
254
  this.saveTabPreferred({ group: o, key: g, variant: I });
248
- let a = e && v(e), c = a && Q(e, a);
249
- this.updateHTML({ group: o, key: g, variant: I }, e, I) > 0 && (this.fireSelectTabEvent({ group: o, key: g, variant: I }, e == null ? void 0 : e.dataset.diplodocId), c && this.resetScroll(e, a, c));
255
+ let a = e && v(e), r = a && Q(e, a);
256
+ this.updateHTML({ group: o, key: g, variant: I }, e, I) > 0 && (this.fireSelectTabEvent({ group: o, key: g, variant: I }, e == null ? void 0 : e.dataset.diplodocId), r && this.resetScroll(e, a, r));
250
257
  }
251
258
  updateHTML(t, e, o) {
252
259
  switch (o) {
@@ -276,29 +283,29 @@
276
283
  }
277
284
  }
278
285
  updateHTMLRadio(t, e) {
279
- let { group: o, key: g } = t, { isForced: I, root: a } = this.didTabOpenForce(e), c = I ? `.yfm-vertical-tab[${O}="true"]` : "", i = this._document.querySelectorAll(`${n.TABS}[${B}="${o}"] ${n.TAB}[${G}="${g}"]${c}`);
280
- I && (a == null || a.removeAttribute(O));
281
- let r = 0;
282
- return i.forEach((A) => {
283
- let m = A.parentNode.children;
286
+ let { group: o, key: g } = t, { isForced: I, root: a } = this.didTabOpenForce(e), r = I ? `.yfm-vertical-tab[${R}="true"]` : "", i = this._document.querySelectorAll(`${n.TABS}[${B}="${o}"] ${n.TAB}[${G}="${g}"]${r}`);
287
+ I && (a == null || a.removeAttribute(R));
288
+ let c = 0;
289
+ return i.forEach((s) => {
290
+ let m = s.parentNode.children;
284
291
  for (let p = 0; p < m.length; p += 2) {
285
292
  let [d, b] = [m.item(p), m.item(p + 1)], u = d.children.item(0);
286
- if (d === A) {
293
+ if (d === s) {
287
294
  u.checked ? (d.classList.remove("active"), b == null || b.classList.remove("active"), u.removeAttribute("checked")) : (d.classList.add("active"), b == null || b.classList.add("active"), u.setAttribute("checked", "true"));
288
295
  continue;
289
296
  }
290
- u.hasAttribute("checked") && (d.classList.remove("active"), b == null || b.classList.remove("active"), u.removeAttribute("checked")), r++;
297
+ u.hasAttribute("checked") && (d.classList.remove("active"), b == null || b.classList.remove("active"), u.removeAttribute("checked")), c++;
291
298
  }
292
- }), r;
299
+ }), c;
293
300
  }
294
301
  updateHTMLRegular(t) {
295
302
  let { group: e, key: o } = t, g = this._document.querySelectorAll(`${n.TABS}[${B}="${e}"] ${n.TAB}[${G}="${o}"]`), I = 0;
296
303
  return g.forEach((a) => {
297
- let c = a;
298
- if (!this.isValidTabElement(c) || c.dataset.diplodocIsActive === "true") return;
304
+ let r = a;
305
+ if (!this.isValidTabElement(r) || r.dataset.diplodocIsActive === "true") return;
299
306
  I++;
300
- let i = a, r = i.parentNode, A = r == null ? void 0 : r.parentNode, s = Array.from((r == null ? void 0 : r.querySelectorAll(n.TAB)) || []), m = Array.from((A == null ? void 0 : A.children) || []).filter((d) => d.classList.contains(F)), p = s.indexOf(i);
301
- s.forEach((d, b) => {
307
+ let i = a, c = i.parentNode, s = c == null ? void 0 : c.parentNode, A = Array.from((c == null ? void 0 : c.querySelectorAll(n.TAB)) || []), m = Array.from((s == null ? void 0 : s.children) || []).filter((d) => d.classList.contains(F)), p = A.indexOf(i);
308
+ A.forEach((d, b) => {
302
309
  let u = m[b], T = b === p, S = d;
303
310
  S.dataset.diplodocIsActive = T ? "true" : "false", d.classList.toggle(l, T), d.setAttribute("aria-selected", T.toString()), d.setAttribute("tabindex", T ? "0" : "-1"), u.classList.toggle(l, T);
304
311
  });
@@ -307,14 +314,14 @@
307
314
  updateHTMLDropdown(t) {
308
315
  let { group: e, key: o } = t, g = this._document.querySelectorAll(`${n.TABS}[${B}="${e}"] ${n.TAB}[${G}="${o}"]`), I = 0;
309
316
  return g.forEach((a) => {
310
- let c = a.closest(`[${y}=dropdown]`);
311
- if (!(c != null && c.children)) return;
312
- let i = c.children.item(0), r = c.children.item(1);
317
+ let r = a.closest(`[${y}=dropdown]`);
318
+ if (!(r != null && r.children)) return;
319
+ let i = r.children.item(0), c = r.children.item(1);
313
320
  i == null || i.classList.remove(l);
314
- let A = Array.from((r == null ? void 0 : r.children) || []).indexOf(a) + 2;
315
- for (let s = 2; s < c.children.length; s++) {
316
- let m = c.children.item(s), p = r == null ? void 0 : r.children.item(s - 2);
317
- if (I++, A === s) {
321
+ let s = Array.from((c == null ? void 0 : c.children) || []).indexOf(a) + 2;
322
+ for (let A = 2; A < r.children.length; A++) {
323
+ let m = r.children.item(A), p = c == null ? void 0 : c.children.item(A - 2);
324
+ if (I++, s === A) {
318
325
  m == null || m.classList.add(l), p.classList.add(l), i.innerHTML = a.innerHTML, i.classList.add("filled");
319
326
  continue;
320
327
  }
@@ -324,15 +331,15 @@
324
331
  }
325
332
  updateHTMLAccordion(t, e) {
326
333
  let { group: o, key: g } = t, I = this._document.querySelectorAll(`${n.TABS}[${B}="${o}"] ${n.TAB}[${G}="${g}"]`), a = 0;
327
- return I.forEach((c) => {
328
- let i = c.closest(`[${y}=accordion]`);
329
- if (i != null && i.children) for (let r = 0; r < i.children.length; r += 2) {
330
- let A = i.children.item(r), s = i.children.item(r + 1);
331
- if (a++, c === A) {
332
- A == null || A.classList.toggle(l), s == null || s.classList.toggle(l);
334
+ return I.forEach((r) => {
335
+ let i = r.closest(`[${y}=accordion]`);
336
+ if (i != null && i.children) for (let c = 0; c < i.children.length; c += 2) {
337
+ let s = i.children.item(c), A = i.children.item(c + 1);
338
+ if (a++, r === s) {
339
+ s == null || s.classList.toggle(l), A == null || A.classList.toggle(l);
333
340
  continue;
334
341
  }
335
- A == null || A.classList.remove(l), s == null || s.classList.remove(l);
342
+ s == null || s.classList.remove(l), A == null || A.classList.remove(l);
336
343
  }
337
344
  }), e && !this.checkVisible(e) && setTimeout(() => {
338
345
  e.scrollIntoView({ block: "nearest" });
@@ -348,8 +355,8 @@
348
355
  });
349
356
  }
350
357
  resetScroll(t, e, o) {
351
- let g = Q(t, e), I = g.top - o.top, a = g.left - o.left, c = g.scrollTop - o.scrollTop, i = g.scrollLeft - o.scrollLeft;
352
- e.scrollTo(e.scrollLeft + a - i, e.scrollTop + I - c);
358
+ let g = Q(t, e), I = g.top - o.top, a = g.left - o.left, r = g.scrollTop - o.scrollTop, i = g.scrollLeft - o.scrollLeft;
359
+ e.scrollTo(e.scrollLeft + a - i, e.scrollTop + I - r);
353
360
  }
354
361
  didTabOpenForce(t) {
355
362
  if (!t) return {};
@@ -358,9 +365,9 @@
358
365
  return { root: e, isForced: o };
359
366
  }
360
367
  fireSelectTabEvent(t, e) {
361
- let { group: o, key: g, variant: I } = t, a = o.startsWith(U) ? { key: g, variant: I } : t;
362
- this._onSelectTabHandlers.forEach((c) => {
363
- c({ tab: a, currentTabId: e });
368
+ let { group: o, key: g, variant: I } = t, a = o.startsWith(L) ? { key: g, variant: I } : t;
369
+ this._onSelectTabHandlers.forEach((r) => {
370
+ r({ tab: a, currentTabId: e });
364
371
  });
365
372
  }
366
373
  getTabsType(t) {
@@ -371,27 +378,27 @@
371
378
  return !!this.getTabsType(t);
372
379
  }
373
380
  isElementDropdownSelect(t) {
374
- return t.classList.contains(L);
381
+ return t.classList.contains(w);
375
382
  }
376
383
  getTabDataFromHTMLElement(t) {
377
- var I, a, c;
384
+ var I, a, r;
378
385
  let e = this.getTabsType(t);
379
386
  if (e === "radio") {
380
- let i = t.dataset.diplodocVerticalTab ? t : t.parentElement, r = i.dataset.diplodocKey, A = (I = i.closest(n.TABS)) == null ? void 0 : I.dataset.diplodocGroup;
381
- return r && A ? { group: A, key: r, variant: "radio" } : null;
387
+ let i = t.dataset.diplodocVerticalTab ? t : t.parentElement, c = i.dataset.diplodocKey, s = (I = i.closest(n.TABS)) == null ? void 0 : I.dataset.diplodocGroup;
388
+ return c && s ? { group: s, key: c, variant: "radio" } : null;
382
389
  }
383
390
  if (e === "dropdown" || e === "accordion") {
384
- let i = t.dataset.diplodocKey, r = (a = t.closest(n.TABS)) == null ? void 0 : a.dataset.diplodocGroup;
385
- return i && r ? { group: r, key: i, variant: e } : null;
391
+ let i = t.dataset.diplodocKey, c = (a = t.closest(n.TABS)) == null ? void 0 : a.dataset.diplodocGroup;
392
+ return i && c ? { group: c, key: i, variant: e } : null;
386
393
  }
387
- let o = t.dataset.diplodocKey, g = (c = t.closest(n.TABS)) == null ? void 0 : c.dataset.diplodocGroup;
394
+ let o = t.dataset.diplodocKey, g = (r = t.closest(n.TABS)) == null ? void 0 : r.dataset.diplodocGroup;
388
395
  return o && g ? { group: g, key: o, variant: "regular" } : null;
389
396
  }
390
397
  getTabs(t) {
391
398
  var I, a;
392
399
  let e = (I = t.closest(n.TABS)) == null ? void 0 : I.dataset.diplodocGroup, o = (a = t.closest(n.TAB_LIST)) == null ? void 0 : a.querySelectorAll(n.TAB), g = [];
393
- return o.forEach((c) => {
394
- let i = c == null ? void 0 : c.dataset.diplodocKey;
400
+ return o.forEach((r) => {
401
+ let i = r == null ? void 0 : r.dataset.diplodocKey;
395
402
  i && g.push({ group: e, key: i, variant: "regular" });
396
403
  }), { tabs: g, nodes: o };
397
404
  }