@stencil/core 2.9.0 → 2.12.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.
Files changed (70) hide show
  1. package/cli/index.cjs +16 -5
  2. package/cli/index.js +16 -5
  3. package/cli/package.json +1 -1
  4. package/compiler/lib.dom.d.ts +263 -648
  5. package/compiler/lib.dom.iterable.d.ts +1 -5
  6. package/compiler/lib.es2015.core.d.ts +2 -2
  7. package/compiler/lib.es2015.iterable.d.ts +1 -1
  8. package/compiler/lib.es2015.symbol.wellknown.d.ts +10 -10
  9. package/compiler/lib.es2018.asynciterable.d.ts +1 -1
  10. package/compiler/lib.es2020.bigint.d.ts +1 -1
  11. package/compiler/lib.es2020.intl.d.ts +6 -7
  12. package/compiler/lib.es2020.symbol.wellknown.d.ts +1 -1
  13. package/compiler/lib.es2021.d.ts +24 -0
  14. package/compiler/lib.es2021.full.d.ts +25 -0
  15. package/compiler/lib.es2021.promise.d.ts +43 -0
  16. package/compiler/lib.es2021.string.d.ts +35 -0
  17. package/compiler/lib.es2021.weakref.d.ts +75 -0
  18. package/compiler/lib.es5.d.ts +9 -9
  19. package/compiler/lib.esnext.d.ts +1 -4
  20. package/compiler/lib.esnext.promise.d.ts +26 -26
  21. package/compiler/lib.esnext.string.d.ts +18 -18
  22. package/compiler/lib.esnext.weakref.d.ts +58 -58
  23. package/compiler/lib.webworker.d.ts +98 -153
  24. package/compiler/lib.webworker.iterable.d.ts +1 -1
  25. package/compiler/package.json +1 -1
  26. package/compiler/stencil.js +497 -725
  27. package/compiler/stencil.min.js +2 -2
  28. package/dependencies.json +6 -1
  29. package/dev-server/client/index.js +1 -1
  30. package/dev-server/client/package.json +1 -1
  31. package/dev-server/connector.html +2 -2
  32. package/dev-server/index.js +1 -1
  33. package/dev-server/package.json +1 -1
  34. package/dev-server/server-process.js +2 -2
  35. package/internal/app-data/package.json +1 -1
  36. package/internal/client/css-shim.js +1 -1
  37. package/internal/client/dom.js +1 -1
  38. package/internal/client/index.js +119 -102
  39. package/internal/client/package.json +1 -1
  40. package/internal/client/patch-browser.js +1 -1
  41. package/internal/client/patch-esm.js +1 -1
  42. package/internal/client/shadow-css.js +9 -10
  43. package/internal/hydrate/index.js +44 -40
  44. package/internal/hydrate/package.json +1 -1
  45. package/internal/hydrate/shadow-css.js +59 -62
  46. package/internal/index.js +1 -0
  47. package/internal/package.json +1 -1
  48. package/internal/stencil-public-compiler.d.ts +1 -1
  49. package/internal/testing/index.js +54 -47
  50. package/internal/testing/package.json +1 -1
  51. package/internal/testing/shadow-css.js +54 -57
  52. package/mock-doc/index.cjs +5 -2
  53. package/mock-doc/index.d.ts +6 -6
  54. package/mock-doc/index.js +5 -2
  55. package/mock-doc/package.json +1 -1
  56. package/package.json +17 -9
  57. package/screenshot/index.js +1 -1
  58. package/screenshot/package.json +1 -1
  59. package/sys/node/autoprefixer.js +2 -2
  60. package/sys/node/index.js +1 -1
  61. package/sys/node/package.json +1 -1
  62. package/sys/node/worker.js +1 -1
  63. package/testing/index.js +84 -73
  64. package/testing/jest/jest-environment.d.ts +1 -0
  65. package/testing/jest/jest-preprocessor.d.ts +56 -8
  66. package/testing/jest-preset.js +5 -0
  67. package/testing/mocks.d.ts +1 -5
  68. package/testing/package.json +1 -1
  69. package/testing/testing-sys.d.ts +6 -1
  70. package/screenshot/index.js.map +0 -1
@@ -1,10 +1,10 @@
1
- const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColonHostRe = new RegExp("(-shadowcsshost" + _parenSuffix, "gim"), _cssColonHostContextRe = new RegExp("(-shadowcsscontext" + _parenSuffix, "gim"), _cssColonSlottedRe = new RegExp("(-shadowcssslotted" + _parenSuffix, "gim"), _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/, _shadowDOMSelectorsRe = [ /::shadow/g, /::content/g ], _polyfillHostRe = /-shadowcsshost/gim, _colonHostRe = /:host/gim, _colonSlottedRe = /::slotted/gim, _colonHostContextRe = /:host-context/gim, _commentRe = /\/\*\s*[\s\S]*?\*\//g, _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g, _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g, _curlyRe = /([{}])/g, processRules = (e, t) => {
2
- const s = escapeBlocks(e);
3
- let o = 0;
4
- return s.escapedString.replace(_ruleRe, ((...e) => {
1
+ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColonHostRe = new RegExp("(-shadowcsshost" + _parenSuffix, "gim"), _cssColonHostContextRe = new RegExp("(-shadowcsscontext" + _parenSuffix, "gim"), _cssColonSlottedRe = new RegExp("(-shadowcssslotted" + _parenSuffix, "gim"), _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/, _shadowDOMSelectorsRe = [ /::shadow/g, /::content/g ], _polyfillHostRe = /-shadowcsshost/gim, _colonHostRe = /:host/gim, _colonSlottedRe = /::slotted/gim, _colonHostContextRe = /:host-context/gim, _commentRe = /\/\*\s*[\s\S]*?\*\//g, _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g, _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g, _curlyRe = /([{}])/g, _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/, processRules = (e, t) => {
2
+ const o = escapeBlocks(e);
3
+ let s = 0;
4
+ return o.escapedString.replace(_ruleRe, ((...e) => {
5
5
  const c = e[2];
6
6
  let r = "", n = e[4], l = "";
7
- n && n.startsWith("{%BLOCK%") && (r = s.blocks[o++], n = n.substring("%BLOCK%".length + 1),
7
+ n && n.startsWith("{%BLOCK%") && (r = o.blocks[s++], n = n.substring("%BLOCK%".length + 1),
8
8
  l = "{");
9
9
  const a = t({
10
10
  selector: c,
@@ -13,111 +13,108 @@ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColo
13
13
  return `${e[1]}${a.selector}${e[3]}${l}${a.content}${n}`;
14
14
  }));
15
15
  }, escapeBlocks = e => {
16
- const t = e.split(_curlyRe), s = [], o = [];
16
+ const t = e.split(_curlyRe), o = [], s = [];
17
17
  let c = 0, r = [];
18
18
  for (let e = 0; e < t.length; e++) {
19
19
  const n = t[e];
20
- "}" === n && c--, c > 0 ? r.push(n) : (r.length > 0 && (o.push(r.join("")), s.push("%BLOCK%"),
21
- r = []), s.push(n)), "{" === n && c++;
20
+ "}" === n && c--, c > 0 ? r.push(n) : (r.length > 0 && (s.push(r.join("")), o.push("%BLOCK%"),
21
+ r = []), o.push(n)), "{" === n && c++;
22
22
  }
23
- return r.length > 0 && (o.push(r.join("")), s.push("%BLOCK%")), {
24
- escapedString: s.join(""),
25
- blocks: o
23
+ return r.length > 0 && (s.push(r.join("")), o.push("%BLOCK%")), {
24
+ escapedString: o.join(""),
25
+ blocks: s
26
26
  };
27
- }, convertColonRule = (e, t, s) => e.replace(t, ((...e) => {
27
+ }, convertColonRule = (e, t, o) => e.replace(t, ((...e) => {
28
28
  if (e[2]) {
29
- const t = e[2].split(","), o = [];
29
+ const t = e[2].split(","), s = [];
30
30
  for (let c = 0; c < t.length; c++) {
31
31
  const r = t[c].trim();
32
32
  if (!r) break;
33
- o.push(s("-shadowcsshost-no-combinator", r, e[3]));
33
+ s.push(o("-shadowcsshost-no-combinator", r, e[3]));
34
34
  }
35
- return o.join(",");
35
+ return s.join(",");
36
36
  }
37
37
  return "-shadowcsshost-no-combinator" + e[3];
38
- })), colonHostPartReplacer = (e, t, s) => e + t.replace("-shadowcsshost", "") + s, colonHostContextPartReplacer = (e, t, s) => t.indexOf("-shadowcsshost") > -1 ? colonHostPartReplacer(e, t, s) : e + t + s + ", " + t + " " + e + s, scopeSelectors = (e, t, s, o, c) => processRules(e, (e => {
38
+ })), colonHostPartReplacer = (e, t, o) => e + t.replace("-shadowcsshost", "") + o, colonHostContextPartReplacer = (e, t, o) => t.indexOf("-shadowcsshost") > -1 ? colonHostPartReplacer(e, t, o) : e + t + o + ", " + t + " " + e + o, injectScopingSelector = (e, t) => e.replace(_selectorPartsRe, ((e, o = "", s, c = "", r = "") => o + t + c + r)), scopeSelectors = (e, t, o, s, c) => processRules(e, (e => {
39
39
  let c = e.selector, r = e.content;
40
- return "@" !== e.selector[0] ? c = ((e, t, s, o) => e.split(",").map((e => o && e.indexOf("." + o) > -1 ? e.trim() : ((e, t) => !(e => (e = e.replace(/\[/g, "\\[").replace(/\]/g, "\\]"),
41
- new RegExp("^(" + e + ")([>\\s~+[.,{:][\\s\\S]*)?$", "m")))(t).test(e))(e, t) ? ((e, t, s) => {
42
- const o = "." + (t = t.replace(/\[is=([^\]]*)\]/g, ((e, ...t) => t[0]))), c = e => {
40
+ return "@" !== e.selector[0] ? c = ((e, t, o, s) => e.split(",").map((e => s && e.indexOf("." + s) > -1 ? e.trim() : ((e, t) => !(e => (e = e.replace(/\[/g, "\\[").replace(/\]/g, "\\]"),
41
+ new RegExp("^(" + e + ")([>\\s~+[.,{:][\\s\\S]*)?$", "m")))(t).test(e))(e, t) ? ((e, t, o) => {
42
+ const s = "." + (t = t.replace(/\[is=([^\]]*)\]/g, ((e, ...t) => t[0]))), c = e => {
43
43
  let c = e.trim();
44
44
  if (!c) return "";
45
- if (e.indexOf("-shadowcsshost-no-combinator") > -1) c = ((e, t, s) => {
45
+ if (e.indexOf("-shadowcsshost-no-combinator") > -1) c = ((e, t, o) => {
46
46
  if (_polyfillHostRe.lastIndex = 0, _polyfillHostRe.test(e)) {
47
- const t = `.${s}`;
48
- return e.replace(_polyfillHostNoCombinatorRe, ((e, s) => s.replace(/([^:]*)(:*)(.*)/, ((e, s, o, c) => s + t + o + c)))).replace(_polyfillHostRe, t + " ");
47
+ const t = `.${o}`;
48
+ return e.replace(_polyfillHostNoCombinatorRe, ((e, o) => injectScopingSelector(o, t))).replace(_polyfillHostRe, t + " ");
49
49
  }
50
50
  return t + " " + e;
51
- })(e, t, s); else {
51
+ })(e, t, o); else {
52
52
  const t = e.replace(_polyfillHostRe, "");
53
- if (t.length > 0) {
54
- const e = t.match(/([^:]*)(:*)(.*)/);
55
- e && (c = e[1] + o + e[2] + e[3]);
56
- }
53
+ t.length > 0 && (c = injectScopingSelector(t, s));
57
54
  }
58
55
  return c;
59
56
  }, r = (e => {
60
57
  const t = [];
61
- let s, o = 0;
62
- return s = (e = e.replace(/(\[[^\]]*\])/g, ((e, s) => {
63
- const c = `__ph-${o}__`;
64
- return t.push(s), o++, c;
65
- }))).replace(/(:nth-[-\w]+)(\([^)]+\))/g, ((e, s, c) => {
66
- const r = `__ph-${o}__`;
67
- return t.push(c), o++, s + r;
58
+ let o, s = 0;
59
+ return o = (e = e.replace(/(\[[^\]]*\])/g, ((e, o) => {
60
+ const c = `__ph-${s}__`;
61
+ return t.push(o), s++, c;
62
+ }))).replace(/(:nth-[-\w]+)(\([^)]+\))/g, ((e, o, c) => {
63
+ const r = `__ph-${s}__`;
64
+ return t.push(c), s++, o + r;
68
65
  })), {
69
- content: s,
66
+ content: o,
70
67
  placeholders: t
71
68
  };
72
69
  })(e);
73
70
  let n, l = "", a = 0;
74
- const p = /( |>|\+|~(?!=))\s*/g;
75
- let i = !((e = r.content).indexOf("-shadowcsshost-no-combinator") > -1);
76
- for (;null !== (n = p.exec(e)); ) {
77
- const t = n[1], s = e.slice(a, n.index).trim();
78
- i = i || s.indexOf("-shadowcsshost-no-combinator") > -1, l += `${i ? c(s) : s} ${t} `,
79
- a = p.lastIndex;
71
+ const i = /( |>|\+|~(?!=))\s*/g;
72
+ let p = !((e = r.content).indexOf("-shadowcsshost-no-combinator") > -1);
73
+ for (;null !== (n = i.exec(e)); ) {
74
+ const t = n[1], o = e.slice(a, n.index).trim();
75
+ p = p || o.indexOf("-shadowcsshost-no-combinator") > -1, l += `${p ? c(o) : o} ${t} `,
76
+ a = i.lastIndex;
80
77
  }
81
78
  const h = e.substring(a);
82
- return i = i || h.indexOf("-shadowcsshost-no-combinator") > -1, l += i ? c(h) : h,
79
+ return p = p || h.indexOf("-shadowcsshost-no-combinator") > -1, l += p ? c(h) : h,
83
80
  u = r.placeholders, l.replace(/__ph-(\d+)__/g, ((e, t) => u[+t]));
84
81
  var u;
85
- })(e, t, s).trim() : e.trim())).join(", "))(e.selector, t, s, o) : (e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document")) && (r = scopeSelectors(e.content, t, s, o)),
82
+ })(e, t, o).trim() : e.trim())).join(", "))(e.selector, t, o, s) : (e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document")) && (r = scopeSelectors(e.content, t, o, s)),
86
83
  {
87
84
  selector: c.replace(/\s{2,}/g, " ").trim(),
88
85
  content: r
89
86
  };
90
- })), scopeCss = (e, t, s) => {
91
- const o = t + "-h", c = t + "-s", r = e.match(_commentWithHashRe) || [];
87
+ })), scopeCss = (e, t, o) => {
88
+ const s = t + "-h", c = t + "-s", r = e.match(_commentWithHashRe) || [];
92
89
  e = e.replace(_commentRe, "");
93
90
  const n = [];
94
- if (s) {
91
+ if (o) {
95
92
  const t = e => {
96
- const t = `/*!@___${n.length}___*/`, s = `/*!@${e.selector}*/`;
93
+ const t = `/*!@___${n.length}___*/`, o = `/*!@${e.selector}*/`;
97
94
  return n.push({
98
95
  placeholder: t,
99
- comment: s
96
+ comment: o
100
97
  }), e.selector = t + e.selector, e;
101
98
  };
102
99
  e = processRules(e, (e => "@" !== e.selector[0] ? t(e) : e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document") ? (e.content = processRules(e.content, t),
103
100
  e) : e));
104
101
  }
105
- const l = ((e, t, s, o, c) => {
102
+ const l = ((e, t, o, s, c) => {
106
103
  const r = ((e, t) => {
107
- const s = "." + t + " > ", o = [];
104
+ const o = "." + t + " > ", s = [];
108
105
  return e = e.replace(_cssColonSlottedRe, ((...e) => {
109
106
  if (e[2]) {
110
- const t = e[2].trim(), c = e[3], r = s + t + c;
107
+ const t = e[2].trim(), c = e[3], r = o + t + c;
111
108
  let n = "";
112
109
  for (let t = e[4] - 1; t >= 0; t--) {
113
- const s = e[5][t];
114
- if ("}" === s || "," === s) break;
115
- n = s + n;
110
+ const o = e[5][t];
111
+ if ("}" === o || "," === o) break;
112
+ n = o + n;
116
113
  }
117
114
  const l = n + r, a = `${n.trimRight()}${r.trim()}`;
118
115
  if (l.trim() !== a.trim()) {
119
116
  const e = `${a}, ${l}`;
120
- o.push({
117
+ s.push({
121
118
  orgSelector: l,
122
119
  updatedSelector: e
123
120
  });
@@ -126,18 +123,18 @@ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColo
126
123
  }
127
124
  return "-shadowcsshost-no-combinator" + e[3];
128
125
  })), {
129
- selectors: o,
126
+ selectors: s,
130
127
  cssText: e
131
128
  };
132
- })(e = (e => convertColonRule(e, _cssColonHostContextRe, colonHostContextPartReplacer))(e = (e => convertColonRule(e, _cssColonHostRe, colonHostPartReplacer))(e = e.replace(_colonHostContextRe, "-shadowcsscontext").replace(_colonHostRe, "-shadowcsshost").replace(_colonSlottedRe, "-shadowcssslotted"))), o);
129
+ })(e = (e => convertColonRule(e, _cssColonHostContextRe, colonHostContextPartReplacer))(e = (e => convertColonRule(e, _cssColonHostRe, colonHostPartReplacer))(e = e.replace(_colonHostContextRe, "-shadowcsscontext").replace(_colonHostRe, "-shadowcsshost").replace(_colonSlottedRe, "-shadowcssslotted"))), s);
133
130
  return e = (e => _shadowDOMSelectorsRe.reduce(((e, t) => e.replace(t, " ")), e))(e = r.cssText),
134
- t && (e = scopeSelectors(e, t, s, o)), {
135
- cssText: (e = (e = e.replace(/-shadowcsshost-no-combinator/g, `.${s}`)).replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ")).trim(),
131
+ t && (e = scopeSelectors(e, t, o, s)), {
132
+ cssText: (e = (e = e.replace(/-shadowcsshost-no-combinator/g, `.${o}`)).replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ")).trim(),
136
133
  slottedSelectors: r.selectors
137
134
  };
138
- })(e, t, o, c);
139
- return e = [ l.cssText, ...r ].join("\n"), s && n.forEach((({placeholder: t, comment: s}) => {
140
- e = e.replace(t, s);
135
+ })(e, t, s, c);
136
+ return e = [ l.cssText, ...r ].join("\n"), o && n.forEach((({placeholder: t, comment: o}) => {
137
+ e = e.replace(t, o);
141
138
  })), l.slottedSelectors.forEach((t => {
142
139
  e = e.replace(t.orgSelector, t.updatedSelector);
143
140
  })), e;
package/internal/index.js CHANGED
@@ -1 +1,2 @@
1
1
  export * from '@stencil/core/internal/client';
2
+ //# sourceMappingURL=default.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/internal",
3
- "version": "2.9.0",
3
+ "version": "2.12.0",
4
4
  "description": "Stencil internals only to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -43,7 +43,7 @@ export interface StencilConfig {
43
43
  * However, it's still common to have styles which should be "global" across all components and the website.
44
44
  * A global CSS file is often useful to set CSS Variables.
45
45
  *
46
- * Additonally, the globalStyle config is can be used to precompile styles with Sass, PostCss, etc.
46
+ * Additonally, the globalStyle config can be used to precompile styles with Sass, PostCss, etc.
47
47
  * Below is an example folder structure containing a webapp's global sass file, named app.css.
48
48
  */
49
49
  globalStyle?: string;
@@ -582,7 +582,8 @@ const callRender = (e, t, a) => {
582
582
  s.attributeChangedCallback = function(e, t, o) {
583
583
  plt.jmp((() => {
584
584
  const t = a.get(e);
585
- this.hasOwnProperty(t) && (o = this[t], delete this[t]), this[t] = (null !== o || "boolean" != typeof this[t]) && o;
585
+ if (this.hasOwnProperty(t)) o = this[t], delete this[t]; else if (s.hasOwnProperty(t) && "number" == typeof this[t] && this[t] == o) return;
586
+ this[t] = (null !== o || "boolean" != typeof this[t]) && o;
586
587
  }));
587
588
  }, e.observedAttributes = o.filter((([e, t]) => 15 & t[0])).map((([e, o]) => {
588
589
  const s = o[1] || e;
@@ -704,6 +705,14 @@ const callRender = (e, t, a) => {
704
705
  },
705
706
  disconnectedCallback() {
706
707
  disconnectedCallback(this), appData.BUILD.disconnectedCallback && s && s.call(this);
708
+ },
709
+ __attachShadow() {
710
+ exports.supportsShadow ? appData.BUILD.shadowDelegatesFocus ? this.attachShadow({
711
+ mode: "open",
712
+ delegatesFocus: !!(16 & a.$flags$)
713
+ }) : this.attachShadow({
714
+ mode: "open"
715
+ }) : this.shadowRoot = this;
707
716
  }
708
717
  }), e.is = a.$tagName$, proxyComponent(e, a, 3);
709
718
  }, patchCloneNode = e => {
@@ -865,11 +874,7 @@ Object.defineProperty(exports, "Env", {
865
874
  isServer: !0,
866
875
  isTesting: !0
867
876
  }, exports.Context = Context, exports.Fragment = (e, t) => t, exports.Host = Host,
868
- exports.addHostEventListeners = addHostEventListeners, exports.attachShadow = e => {
869
- exports.supportsShadow ? e.attachShadow({
870
- mode: "open"
871
- }) : e.shadowRoot = e;
872
- }, exports.bootstrapLazy = (e, t = {}) => {
877
+ exports.addHostEventListeners = addHostEventListeners, exports.bootstrapLazy = (e, t = {}) => {
873
878
  appData.BUILD.profile && performance.mark && performance.mark("st:app:start"), (() => {
874
879
  if (appData.BUILD.devTools) {
875
880
  const e = win.stencil = win.stencil || {}, t = e.inspect;
@@ -922,47 +927,49 @@ exports.addHostEventListeners = addHostEventListeners, exports.attachShadow = e
922
927
  if (Object.assign(plt, t), plt.$resourcesUrl$ = new URL(t.resourcesUrl || "./", doc.baseURI).href,
923
928
  appData.BUILD.asyncQueue && t.syncQueue && (plt.$flags$ |= 4), appData.BUILD.hydrateClientSide && (plt.$flags$ |= 2),
924
929
  appData.BUILD.hydrateClientSide && appData.BUILD.shadowDom) for (;m < d.length; m++) registerStyle(d[m].getAttribute("sty-id"), d[m].innerHTML.replace(/\/\*!@([^\/]+)\*\/[^\{]+\{/g, "$1{"));
925
- e.map((e => e[1].map((a => {
926
- const l = {
927
- $flags$: a[0],
928
- $tagName$: a[1],
929
- $members$: a[2],
930
- $listeners$: a[3]
931
- };
932
- appData.BUILD.member && (l.$members$ = a[2]), appData.BUILD.hostListener && (l.$listeners$ = a[3]),
933
- appData.BUILD.reflect && (l.$attrsToReflect$ = []), appData.BUILD.watchCallback && (l.$watchers$ = {}),
934
- appData.BUILD.shadowDom && !exports.supportsShadow && 1 & l.$flags$ && (l.$flags$ |= 8);
935
- const r = appData.BUILD.transformTagName && t.transformTagName ? t.transformTagName(l.$tagName$) : l.$tagName$, p = class extends HTMLElement {
936
- constructor(e) {
937
- super(e), registerHost(e = this, l), appData.BUILD.shadowDom && 1 & l.$flags$ && (exports.supportsShadow ? appData.BUILD.shadowDelegatesFocus ? e.attachShadow({
938
- mode: "open",
939
- delegatesFocus: !!(16 & l.$flags$)
940
- }) : e.attachShadow({
941
- mode: "open"
942
- }) : appData.BUILD.hydrateServerSide || "shadowRoot" in e || (e.shadowRoot = e)),
943
- appData.BUILD.slotChildNodesFix && patchChildSlotNodes(e, l);
944
- }
945
- connectedCallback() {
946
- c && (clearTimeout(c), c = null), $ ? i.push(this) : plt.jmp((() => connectedCallback(this)));
947
- }
948
- disconnectedCallback() {
949
- plt.jmp((() => disconnectedCallback(this)));
950
- }
951
- componentOnReady() {
952
- return getHostRef(this).$onReadyPromise$;
953
- }
954
- };
955
- appData.BUILD.cloneNodeFix && patchCloneNode(p.prototype), appData.BUILD.appendChildSlotFix && patchSlotAppendChild(p.prototype),
956
- appData.BUILD.hotModuleReplacement && (p.prototype["s-hmr"] = function(e) {
957
- ((e, t, a) => {
958
- const o = getHostRef(e);
959
- o.$flags$ = 1, e["s-hmr-load"] = () => {
960
- delete e["s-hmr-load"];
961
- }, initializeComponent(e, o, t);
962
- })(this, l);
963
- }), appData.BUILD.scopedSlotTextContentFix && patchTextContent(p.prototype, l),
964
- l.$lazyBundleId$ = e[0], s.includes(r) || n.get(r) || (o.push(r), n.define(r, proxyComponent(p, l, 1)));
965
- })))), appData.BUILD.invisiblePrehydration && (appData.BUILD.hydratedClass || appData.BUILD.hydratedAttribute) && (p.innerHTML = o + "{visibility:hidden}.hydrated{visibility:inherit}",
930
+ e.map((e => {
931
+ e[1].map((a => {
932
+ const l = {
933
+ $flags$: a[0],
934
+ $tagName$: a[1],
935
+ $members$: a[2],
936
+ $listeners$: a[3]
937
+ };
938
+ appData.BUILD.member && (l.$members$ = a[2]), appData.BUILD.hostListener && (l.$listeners$ = a[3]),
939
+ appData.BUILD.reflect && (l.$attrsToReflect$ = []), appData.BUILD.watchCallback && (l.$watchers$ = {}),
940
+ appData.BUILD.shadowDom && !exports.supportsShadow && 1 & l.$flags$ && (l.$flags$ |= 8);
941
+ const r = appData.BUILD.transformTagName && t.transformTagName ? t.transformTagName(l.$tagName$) : l.$tagName$, p = class extends HTMLElement {
942
+ constructor(e) {
943
+ super(e), registerHost(e = this, l), appData.BUILD.shadowDom && 1 & l.$flags$ && (exports.supportsShadow ? appData.BUILD.shadowDelegatesFocus ? e.attachShadow({
944
+ mode: "open",
945
+ delegatesFocus: !!(16 & l.$flags$)
946
+ }) : e.attachShadow({
947
+ mode: "open"
948
+ }) : appData.BUILD.hydrateServerSide || "shadowRoot" in e || (e.shadowRoot = e)),
949
+ appData.BUILD.slotChildNodesFix && patchChildSlotNodes(e, l);
950
+ }
951
+ connectedCallback() {
952
+ c && (clearTimeout(c), c = null), $ ? i.push(this) : plt.jmp((() => connectedCallback(this)));
953
+ }
954
+ disconnectedCallback() {
955
+ plt.jmp((() => disconnectedCallback(this)));
956
+ }
957
+ componentOnReady() {
958
+ return getHostRef(this).$onReadyPromise$;
959
+ }
960
+ };
961
+ appData.BUILD.cloneNodeFix && patchCloneNode(p.prototype), appData.BUILD.appendChildSlotFix && patchSlotAppendChild(p.prototype),
962
+ appData.BUILD.hotModuleReplacement && (p.prototype["s-hmr"] = function(e) {
963
+ ((e, t, a) => {
964
+ const o = getHostRef(e);
965
+ o.$flags$ = 1, e["s-hmr-load"] = () => {
966
+ delete e["s-hmr-load"];
967
+ }, initializeComponent(e, o, t);
968
+ })(this, l);
969
+ }), appData.BUILD.scopedSlotTextContentFix && patchTextContent(p.prototype, l),
970
+ l.$lazyBundleId$ = e[0], s.includes(r) || n.get(r) || (o.push(r), n.define(r, proxyComponent(p, l, 1)));
971
+ }));
972
+ })), appData.BUILD.invisiblePrehydration && (appData.BUILD.hydratedClass || appData.BUILD.hydratedAttribute) && (p.innerHTML = o + "{visibility:hidden}.hydrated{visibility:inherit}",
966
973
  p.setAttribute("data-styles", ""), l.insertBefore(p, r ? r.nextSibling : l.firstChild)),
967
974
  $ = !1, i.length ? i.map((e => e.connectedCallback())) : appData.BUILD.profile ? plt.jmp((() => c = setTimeout(appDidLoad, 30, "timeout"))) : plt.jmp((() => c = setTimeout(appDidLoad, 30))),
968
975
  a();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/internal/testing",
3
- "version": "2.9.0",
3
+ "version": "2.12.0",
4
4
  "description": "Stencil internal testing platform to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
5
5
  "main": "./index.js",
6
6
  "private": true
@@ -1,10 +1,10 @@
1
- const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColonHostRe = new RegExp("(-shadowcsshost" + _parenSuffix, "gim"), _cssColonHostContextRe = new RegExp("(-shadowcsscontext" + _parenSuffix, "gim"), _cssColonSlottedRe = new RegExp("(-shadowcssslotted" + _parenSuffix, "gim"), _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/, _shadowDOMSelectorsRe = [ /::shadow/g, /::content/g ], _polyfillHostRe = /-shadowcsshost/gim, _colonHostRe = /:host/gim, _colonSlottedRe = /::slotted/gim, _colonHostContextRe = /:host-context/gim, _commentRe = /\/\*\s*[\s\S]*?\*\//g, _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g, _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g, _curlyRe = /([{}])/g, processRules = (e, t) => {
2
- const s = escapeBlocks(e);
3
- let o = 0;
4
- return s.escapedString.replace(_ruleRe, ((...e) => {
1
+ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColonHostRe = new RegExp("(-shadowcsshost" + _parenSuffix, "gim"), _cssColonHostContextRe = new RegExp("(-shadowcsscontext" + _parenSuffix, "gim"), _cssColonSlottedRe = new RegExp("(-shadowcssslotted" + _parenSuffix, "gim"), _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/, _shadowDOMSelectorsRe = [ /::shadow/g, /::content/g ], _polyfillHostRe = /-shadowcsshost/gim, _colonHostRe = /:host/gim, _colonSlottedRe = /::slotted/gim, _colonHostContextRe = /:host-context/gim, _commentRe = /\/\*\s*[\s\S]*?\*\//g, _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g, _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g, _curlyRe = /([{}])/g, _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/, processRules = (e, t) => {
2
+ const o = escapeBlocks(e);
3
+ let s = 0;
4
+ return o.escapedString.replace(_ruleRe, ((...e) => {
5
5
  const c = e[2];
6
6
  let r = "", n = e[4], l = "";
7
- n && n.startsWith("{%BLOCK%") && (r = s.blocks[o++], n = n.substring("%BLOCK%".length + 1),
7
+ n && n.startsWith("{%BLOCK%") && (r = o.blocks[s++], n = n.substring("%BLOCK%".length + 1),
8
8
  l = "{");
9
9
  const a = t({
10
10
  selector: c,
@@ -13,60 +13,57 @@ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColo
13
13
  return `${e[1]}${a.selector}${e[3]}${l}${a.content}${n}`;
14
14
  }));
15
15
  }, escapeBlocks = e => {
16
- const t = e.split(_curlyRe), s = [], o = [];
16
+ const t = e.split(_curlyRe), o = [], s = [];
17
17
  let c = 0, r = [];
18
18
  for (let e = 0; e < t.length; e++) {
19
19
  const n = t[e];
20
- "}" === n && c--, c > 0 ? r.push(n) : (r.length > 0 && (o.push(r.join("")), s.push("%BLOCK%"),
21
- r = []), s.push(n)), "{" === n && c++;
20
+ "}" === n && c--, c > 0 ? r.push(n) : (r.length > 0 && (s.push(r.join("")), o.push("%BLOCK%"),
21
+ r = []), o.push(n)), "{" === n && c++;
22
22
  }
23
- return r.length > 0 && (o.push(r.join("")), s.push("%BLOCK%")), {
24
- escapedString: s.join(""),
25
- blocks: o
23
+ return r.length > 0 && (s.push(r.join("")), o.push("%BLOCK%")), {
24
+ escapedString: o.join(""),
25
+ blocks: s
26
26
  };
27
- }, convertColonRule = (e, t, s) => e.replace(t, ((...e) => {
27
+ }, convertColonRule = (e, t, o) => e.replace(t, ((...e) => {
28
28
  if (e[2]) {
29
- const t = e[2].split(","), o = [];
29
+ const t = e[2].split(","), s = [];
30
30
  for (let c = 0; c < t.length; c++) {
31
31
  const r = t[c].trim();
32
32
  if (!r) break;
33
- o.push(s("-shadowcsshost-no-combinator", r, e[3]));
33
+ s.push(o("-shadowcsshost-no-combinator", r, e[3]));
34
34
  }
35
- return o.join(",");
35
+ return s.join(",");
36
36
  }
37
37
  return "-shadowcsshost-no-combinator" + e[3];
38
- })), colonHostPartReplacer = (e, t, s) => e + t.replace("-shadowcsshost", "") + s, colonHostContextPartReplacer = (e, t, s) => t.indexOf("-shadowcsshost") > -1 ? colonHostPartReplacer(e, t, s) : e + t + s + ", " + t + " " + e + s, scopeSelectors = (e, t, s, o, c) => processRules(e, (e => {
38
+ })), colonHostPartReplacer = (e, t, o) => e + t.replace("-shadowcsshost", "") + o, colonHostContextPartReplacer = (e, t, o) => t.indexOf("-shadowcsshost") > -1 ? colonHostPartReplacer(e, t, o) : e + t + o + ", " + t + " " + e + o, injectScopingSelector = (e, t) => e.replace(_selectorPartsRe, ((e, o = "", s, c = "", r = "") => o + t + c + r)), scopeSelectors = (e, t, o, s, c) => processRules(e, (e => {
39
39
  let c = e.selector, r = e.content;
40
- return "@" !== e.selector[0] ? c = ((e, t, s, o) => e.split(",").map((e => o && e.indexOf("." + o) > -1 ? e.trim() : ((e, t) => !(e => (e = e.replace(/\[/g, "\\[").replace(/\]/g, "\\]"),
41
- new RegExp("^(" + e + ")([>\\s~+[.,{:][\\s\\S]*)?$", "m")))(t).test(e))(e, t) ? ((e, t, s) => {
42
- const o = "." + (t = t.replace(/\[is=([^\]]*)\]/g, ((e, ...t) => t[0]))), c = e => {
40
+ return "@" !== e.selector[0] ? c = ((e, t, o, s) => e.split(",").map((e => s && e.indexOf("." + s) > -1 ? e.trim() : ((e, t) => !(e => (e = e.replace(/\[/g, "\\[").replace(/\]/g, "\\]"),
41
+ new RegExp("^(" + e + ")([>\\s~+[.,{:][\\s\\S]*)?$", "m")))(t).test(e))(e, t) ? ((e, t, o) => {
42
+ const s = "." + (t = t.replace(/\[is=([^\]]*)\]/g, ((e, ...t) => t[0]))), c = e => {
43
43
  let c = e.trim();
44
44
  if (!c) return "";
45
- if (e.indexOf("-shadowcsshost-no-combinator") > -1) c = ((e, t, s) => {
45
+ if (e.indexOf("-shadowcsshost-no-combinator") > -1) c = ((e, t, o) => {
46
46
  if (_polyfillHostRe.lastIndex = 0, _polyfillHostRe.test(e)) {
47
- const t = `.${s}`;
48
- return e.replace(_polyfillHostNoCombinatorRe, ((e, s) => s.replace(/([^:]*)(:*)(.*)/, ((e, s, o, c) => s + t + o + c)))).replace(_polyfillHostRe, t + " ");
47
+ const t = `.${o}`;
48
+ return e.replace(_polyfillHostNoCombinatorRe, ((e, o) => injectScopingSelector(o, t))).replace(_polyfillHostRe, t + " ");
49
49
  }
50
50
  return t + " " + e;
51
- })(e, t, s); else {
51
+ })(e, t, o); else {
52
52
  const t = e.replace(_polyfillHostRe, "");
53
- if (t.length > 0) {
54
- const e = t.match(/([^:]*)(:*)(.*)/);
55
- e && (c = e[1] + o + e[2] + e[3]);
56
- }
53
+ t.length > 0 && (c = injectScopingSelector(t, s));
57
54
  }
58
55
  return c;
59
56
  }, r = (e => {
60
57
  const t = [];
61
- let s, o = 0;
62
- return s = (e = e.replace(/(\[[^\]]*\])/g, ((e, s) => {
63
- const c = `__ph-${o}__`;
64
- return t.push(s), o++, c;
65
- }))).replace(/(:nth-[-\w]+)(\([^)]+\))/g, ((e, s, c) => {
66
- const r = `__ph-${o}__`;
67
- return t.push(c), o++, s + r;
58
+ let o, s = 0;
59
+ return o = (e = e.replace(/(\[[^\]]*\])/g, ((e, o) => {
60
+ const c = `__ph-${s}__`;
61
+ return t.push(o), s++, c;
62
+ }))).replace(/(:nth-[-\w]+)(\([^)]+\))/g, ((e, o, c) => {
63
+ const r = `__ph-${s}__`;
64
+ return t.push(c), s++, o + r;
68
65
  })), {
69
- content: s,
66
+ content: o,
70
67
  placeholders: t
71
68
  };
72
69
  })(e);
@@ -74,52 +71,52 @@ const _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)", _cssColo
74
71
  const i = /( |>|\+|~(?!=))\s*/g;
75
72
  let p = !((e = r.content).indexOf("-shadowcsshost-no-combinator") > -1);
76
73
  for (;null !== (n = i.exec(e)); ) {
77
- const t = n[1], s = e.slice(a, n.index).trim();
78
- p = p || s.indexOf("-shadowcsshost-no-combinator") > -1, l += `${p ? c(s) : s} ${t} `,
74
+ const t = n[1], o = e.slice(a, n.index).trim();
75
+ p = p || o.indexOf("-shadowcsshost-no-combinator") > -1, l += `${p ? c(o) : o} ${t} `,
79
76
  a = i.lastIndex;
80
77
  }
81
78
  const h = e.substring(a);
82
79
  return p = p || h.indexOf("-shadowcsshost-no-combinator") > -1, l += p ? c(h) : h,
83
80
  u = r.placeholders, l.replace(/__ph-(\d+)__/g, ((e, t) => u[+t]));
84
81
  var u;
85
- })(e, t, s).trim() : e.trim())).join(", "))(e.selector, t, s, o) : (e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document")) && (r = scopeSelectors(e.content, t, s, o)),
82
+ })(e, t, o).trim() : e.trim())).join(", "))(e.selector, t, o, s) : (e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document")) && (r = scopeSelectors(e.content, t, o, s)),
86
83
  {
87
84
  selector: c.replace(/\s{2,}/g, " ").trim(),
88
85
  content: r
89
86
  };
90
87
  }));
91
88
 
92
- exports.scopeCss = (e, t, s) => {
93
- const o = t + "-h", c = t + "-s", r = e.match(_commentWithHashRe) || [];
89
+ exports.scopeCss = (e, t, o) => {
90
+ const s = t + "-h", c = t + "-s", r = e.match(_commentWithHashRe) || [];
94
91
  e = e.replace(_commentRe, "");
95
92
  const n = [];
96
- if (s) {
93
+ if (o) {
97
94
  const t = e => {
98
- const t = `/*!@___${n.length}___*/`, s = `/*!@${e.selector}*/`;
95
+ const t = `/*!@___${n.length}___*/`, o = `/*!@${e.selector}*/`;
99
96
  return n.push({
100
97
  placeholder: t,
101
- comment: s
98
+ comment: o
102
99
  }), e.selector = t + e.selector, e;
103
100
  };
104
101
  e = processRules(e, (e => "@" !== e.selector[0] ? t(e) : e.selector.startsWith("@media") || e.selector.startsWith("@supports") || e.selector.startsWith("@page") || e.selector.startsWith("@document") ? (e.content = processRules(e.content, t),
105
102
  e) : e));
106
103
  }
107
- const l = ((e, t, s, o, c) => {
104
+ const l = ((e, t, o, s, c) => {
108
105
  const r = ((e, t) => {
109
- const s = "." + t + " > ", o = [];
106
+ const o = "." + t + " > ", s = [];
110
107
  return e = e.replace(_cssColonSlottedRe, ((...e) => {
111
108
  if (e[2]) {
112
- const t = e[2].trim(), c = e[3], r = s + t + c;
109
+ const t = e[2].trim(), c = e[3], r = o + t + c;
113
110
  let n = "";
114
111
  for (let t = e[4] - 1; t >= 0; t--) {
115
- const s = e[5][t];
116
- if ("}" === s || "," === s) break;
117
- n = s + n;
112
+ const o = e[5][t];
113
+ if ("}" === o || "," === o) break;
114
+ n = o + n;
118
115
  }
119
116
  const l = n + r, a = `${n.trimRight()}${r.trim()}`;
120
117
  if (l.trim() !== a.trim()) {
121
118
  const e = `${a}, ${l}`;
122
- o.push({
119
+ s.push({
123
120
  orgSelector: l,
124
121
  updatedSelector: e
125
122
  });
@@ -128,18 +125,18 @@ exports.scopeCss = (e, t, s) => {
128
125
  }
129
126
  return "-shadowcsshost-no-combinator" + e[3];
130
127
  })), {
131
- selectors: o,
128
+ selectors: s,
132
129
  cssText: e
133
130
  };
134
- })(e = (e => convertColonRule(e, _cssColonHostContextRe, colonHostContextPartReplacer))(e = (e => convertColonRule(e, _cssColonHostRe, colonHostPartReplacer))(e = e.replace(_colonHostContextRe, "-shadowcsscontext").replace(_colonHostRe, "-shadowcsshost").replace(_colonSlottedRe, "-shadowcssslotted"))), o);
131
+ })(e = (e => convertColonRule(e, _cssColonHostContextRe, colonHostContextPartReplacer))(e = (e => convertColonRule(e, _cssColonHostRe, colonHostPartReplacer))(e = e.replace(_colonHostContextRe, "-shadowcsscontext").replace(_colonHostRe, "-shadowcsshost").replace(_colonSlottedRe, "-shadowcssslotted"))), s);
135
132
  return e = (e => _shadowDOMSelectorsRe.reduce(((e, t) => e.replace(t, " ")), e))(e = r.cssText),
136
- t && (e = scopeSelectors(e, t, s, o)), {
137
- cssText: (e = (e = e.replace(/-shadowcsshost-no-combinator/g, `.${s}`)).replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ")).trim(),
133
+ t && (e = scopeSelectors(e, t, o, s)), {
134
+ cssText: (e = (e = e.replace(/-shadowcsshost-no-combinator/g, `.${o}`)).replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ")).trim(),
138
135
  slottedSelectors: r.selectors
139
136
  };
140
- })(e, t, o, c);
141
- return e = [ l.cssText, ...r ].join("\n"), s && n.forEach((({placeholder: t, comment: s}) => {
142
- e = e.replace(t, s);
137
+ })(e, t, s, c);
138
+ return e = [ l.cssText, ...r ].join("\n"), o && n.forEach((({placeholder: t, comment: o}) => {
139
+ e = e.replace(t, o);
143
140
  })), l.slottedSelectors.forEach((t => {
144
141
  e = e.replace(t.orgSelector, t.updatedSelector);
145
142
  })), e;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil Mock Doc (CommonJS) v2.9.0 | MIT Licensed | https://stenciljs.com
2
+ Stencil Mock Doc (CommonJS) v2.12.0 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  var mockDoc = (function(exports) {
5
5
  'use strict';
@@ -547,7 +547,7 @@ class MockCSSStyleDeclaration {
547
547
  const splt = rule.split(':');
548
548
  if (splt.length > 1) {
549
549
  const prop = splt[0].trim();
550
- const value = splt[1].trim();
550
+ const value = splt.slice(1).join(':').trim();
551
551
  if (prop !== '' && value !== '') {
552
552
  this._styles.set(jsCaseToCssCase(prop), value);
553
553
  }
@@ -1510,6 +1510,9 @@ class MockNode {
1510
1510
  return null;
1511
1511
  }
1512
1512
  contains(otherNode) {
1513
+ if (otherNode === this) {
1514
+ return true;
1515
+ }
1513
1516
  return this.childNodes.includes(otherNode);
1514
1517
  }
1515
1518
  removeChild(childNode) {