@digipair/skill-web-inputs 0.136.1 → 0.136.3

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/index.esm.js CHANGED
@@ -34,7 +34,7 @@ function _create_class$3(Constructor, protoProps, staticProps) {
34
34
  if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);
35
35
  return Constructor;
36
36
  }
37
- function _instanceof$2(left, right) {
37
+ function _instanceof$3(left, right) {
38
38
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
39
39
  return !!right[Symbol.hasInstance](left);
40
40
  } else {
@@ -87,7 +87,7 @@ var r$4 = function(t) {
87
87
  }, S$1 = function(s, o) {
88
88
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
89
89
  if (e$2) s.adoptedStyleSheets = o.map(function(t) {
90
- return _instanceof$2(t, CSSStyleSheet) ? t : t.styleSheet;
90
+ return _instanceof$3(t, CSSStyleSheet) ? t : t.styleSheet;
91
91
  });
92
92
  else try {
93
93
  for(var _iterator = o[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
@@ -112,7 +112,7 @@ var r$4 = function(t) {
112
112
  }, c$2 = e$2 ? function(t) {
113
113
  return t;
114
114
  } : function(t) {
115
- return _instanceof$2(t, CSSStyleSheet) ? function(t) {
115
+ return _instanceof$3(t, CSSStyleSheet) ? function(t) {
116
116
  var e = "";
117
117
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
118
118
  try {
@@ -356,7 +356,7 @@ function _create_super$2(Derived) {
356
356
  return _possible_constructor_return$2(this, result);
357
357
  };
358
358
  }
359
- function _ts_generator$1(thisArg, body) {
359
+ function _ts_generator$4(thisArg, body) {
360
360
  var f, y, t, g, _ = {
361
361
  label: 0,
362
362
  sent: function() {
@@ -491,7 +491,7 @@ var _Symbol, _a, _a1;
491
491
  }
492
492
  }, f$1 = function(t, s) {
493
493
  return !i$2(t, s);
494
- }, b = {
494
+ }, b$1 = {
495
495
  attribute: true,
496
496
  type: String,
497
497
  converter: u$1,
@@ -634,11 +634,12 @@ var y$1 = /*#__PURE__*/ function(HTMLElement1) {
634
634
  {
635
635
  key: "requestUpdate",
636
636
  value: function requestUpdate(t, s, i) {
637
+ var e = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, h = arguments.length > 4 ? arguments[4] : void 0;
637
638
  if (void 0 !== t) {
638
639
  var _this__$Ej;
639
- var e = this.constructor, h = this[t];
640
+ var r = this.constructor;
640
641
  var _i_hasChanged;
641
- if (i !== null && i !== void 0 ? i : i = e.getPropertyOptions(t), !(((_i_hasChanged = i.hasChanged) !== null && _i_hasChanged !== void 0 ? _i_hasChanged : f$1)(h, s) || i.useDefault && i.reflect && h === ((_this__$Ej = this._$Ej) === null || _this__$Ej === void 0 ? void 0 : _this__$Ej.get(t)) && !this.hasAttribute(e._$Eu(t, i)))) return;
642
+ if (false === e && (h = this[t]), i !== null && i !== void 0 ? i : i = r.getPropertyOptions(t), !(((_i_hasChanged = i.hasChanged) !== null && _i_hasChanged !== void 0 ? _i_hasChanged : f$1)(h, s) || i.useDefault && i.reflect && h === ((_this__$Ej = this._$Ej) === null || _this__$Ej === void 0 ? void 0 : _this__$Ej.get(t)) && !this.hasAttribute(r._$Eu(t, i)))) return;
642
643
  this.C(t, s, i);
643
644
  }
644
645
  false === this.isUpdatePending && (this._$ES = this._$EP());
@@ -658,7 +659,7 @@ var y$1 = /*#__PURE__*/ function(HTMLElement1) {
658
659
  var _this = this;
659
660
  return _async_to_generator(function() {
660
661
  var t, _$t, _tmp;
661
- return _ts_generator$1(this, function(_state) {
662
+ return _ts_generator$4(this, function(_state) {
662
663
  switch(_state.label){
663
664
  case 0:
664
665
  _this.isUpdatePending = true;
@@ -855,7 +856,7 @@ var y$1 = /*#__PURE__*/ function(HTMLElement1) {
855
856
  {
856
857
  key: "createProperty",
857
858
  value: function createProperty(t) {
858
- var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : b;
859
+ var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : b$1;
859
860
  if (s.state && (s.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t) && ((s = Object.create(s)).wrapped = true), this.elementProperties.set(t, s), !s.noAccessor) {
860
861
  var i = Symbol(), h = this.getPropertyDescriptor(t, i, s);
861
862
  void 0 !== h && e$1(this.prototype, t, h);
@@ -889,7 +890,7 @@ var y$1 = /*#__PURE__*/ function(HTMLElement1) {
889
890
  key: "getPropertyOptions",
890
891
  value: function getPropertyOptions(t) {
891
892
  var _this_elementProperties_get;
892
- return (_this_elementProperties_get = this.elementProperties.get(t)) !== null && _this_elementProperties_get !== void 0 ? _this_elementProperties_get : b;
893
+ return (_this_elementProperties_get = this.elementProperties.get(t)) !== null && _this_elementProperties_get !== void 0 ? _this_elementProperties_get : b$1;
893
894
  }
894
895
  },
895
896
  {
@@ -1021,7 +1022,7 @@ y$1.elementStyles = [], y$1.shadowRootOptions = {
1021
1022
  mode: "open"
1022
1023
  }, y$1[d$1("elementProperties")] = new Map, y$1[d$1("finalized")] = new Map, p$1 === null || p$1 === void 0 ? void 0 : p$1({
1023
1024
  ReactiveElement: y$1
1024
- }), ((_reactiveElementVersions = (_a1 = a$1).reactiveElementVersions) !== null && _reactiveElementVersions !== void 0 ? _reactiveElementVersions : _a1.reactiveElementVersions = []).push("2.1.1");
1025
+ }), ((_reactiveElementVersions = (_a1 = a$1).reactiveElementVersions) !== null && _reactiveElementVersions !== void 0 ? _reactiveElementVersions : _a1.reactiveElementVersions = []).push("2.1.2");
1025
1026
 
1026
1027
  /**
1027
1028
  * @license
@@ -1171,17 +1172,19 @@ function _create_super$1(Derived) {
1171
1172
  };
1172
1173
  }
1173
1174
  var _t;
1174
- var t$1 = globalThis, i$1 = t$1.trustedTypes, s$1 = i$1 ? i$1.createPolicy("lit-html", {
1175
+ var t$1 = globalThis, i$1 = function(t) {
1176
+ return t;
1177
+ }, s$1 = t$1.trustedTypes, e = s$1 ? s$1.createPolicy("lit-html", {
1175
1178
  createHTML: function(t) {
1176
1179
  return t;
1177
1180
  }
1178
- }) : void 0, e = "$lit$", h = "lit$".concat(Math.random().toFixed(9).slice(2), "$"), o$2 = "?" + h, n$1 = "<".concat(o$2, ">"), r$2 = document, l = function() {
1179
- return r$2.createComment("");
1180
- }, c = function(t) {
1181
+ }) : void 0, h = "$lit$", o$2 = "lit$".concat(Math.random().toFixed(9).slice(2), "$"), n$1 = "?" + o$2, r$2 = "<".concat(n$1, ">"), l = document, c = function() {
1182
+ return l.createComment("");
1183
+ }, a = function(t) {
1181
1184
  return null === t || "object" != (typeof t === "undefined" ? "undefined" : _type_of$4(t)) && "function" != typeof t;
1182
- }, a = Array.isArray, u = function(t) {
1183
- return a(t) || "function" == typeof (t === null || t === void 0 ? void 0 : t[Symbol.iterator]);
1184
- }, d = "[ \t\n\f\r]", f = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, v = /-->/g, _ = />/g, m = RegExp(">|".concat(d, "(?:([^\\s\"'>=/]+)(").concat(d, "*=").concat(d, "*(?:[^ \n\f\r\"'`<>=]|(\"|')|))|$)"), "g"), p = /'/g, g = /"/g, $ = /^(?:script|style|textarea|title)$/i, y = function(t) {
1185
+ }, u = Array.isArray, d = function(t) {
1186
+ return u(t) || "function" == typeof (t === null || t === void 0 ? void 0 : t[Symbol.iterator]);
1187
+ }, f = "[ \t\n\f\r]", v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m = />/g, p = RegExp(">|".concat(f, "(?:([^\\s\"'>=/]+)(").concat(f, "*=").concat(f, "*(?:[^ \n\f\r\"'`<>=]|(\"|')|))|$)"), "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, x = function(t) {
1185
1188
  return function(i) {
1186
1189
  for(var _len = arguments.length, s = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
1187
1190
  s[_key - 1] = arguments[_key];
@@ -1192,57 +1195,57 @@ var t$1 = globalThis, i$1 = t$1.trustedTypes, s$1 = i$1 ? i$1.createPolicy("lit-
1192
1195
  values: s
1193
1196
  };
1194
1197
  };
1195
- }, x = y(1), T = Symbol.for("lit-noChange"), E = Symbol.for("lit-nothing"), A = new WeakMap, C = r$2.createTreeWalker(r$2, 129);
1196
- function P(t, i) {
1197
- if (!a(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
1198
- return void 0 !== s$1 ? s$1.createHTML(i) : i;
1199
- }
1200
- var V = function(t, i) {
1201
- var s = t.length - 1, o = [];
1202
- var r, l = 2 === i ? "<svg>" : 3 === i ? "<math>" : "", c = f;
1198
+ }, b = x(1), E = Symbol.for("lit-noChange"), A = Symbol.for("lit-nothing"), C = new WeakMap, P = l.createTreeWalker(l, 129);
1199
+ function V(t, i) {
1200
+ if (!u(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
1201
+ return void 0 !== e ? e.createHTML(i) : i;
1202
+ }
1203
+ var N = function(t, i) {
1204
+ var s = t.length - 1, e = [];
1205
+ var n, l = 2 === i ? "<svg>" : 3 === i ? "<math>" : "", c = v;
1203
1206
  for(var _$i = 0; _$i < s; _$i++){
1204
1207
  var s1 = t[_$i];
1205
- var a = void 0, u = void 0, d = -1, y = 0;
1206
- for(; y < s1.length && (c.lastIndex = y, u = c.exec(s1), null !== u);)y = c.lastIndex, c === f ? "!--" === u[1] ? c = v : void 0 !== u[1] ? c = _ : void 0 !== u[2] ? ($.test(u[2]) && (r = RegExp("</" + u[2], "g")), c = m) : void 0 !== u[3] && (c = m) : c === m ? ">" === u[0] ? (c = r !== null && r !== void 0 ? r : f, d = -1) : void 0 === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = void 0 === u[3] ? m : '"' === u[3] ? g : p) : c === g || c === p ? c = m : c === v || c === _ ? c = f : (c = m, r = void 0);
1207
- var x = c === m && t[_$i + 1].startsWith("/>") ? " " : "";
1208
- l += c === f ? s1 + n$1 : d >= 0 ? (o.push(a), s1.slice(0, d) + e + s1.slice(d) + h + x) : s1 + h + (-2 === d ? _$i : x);
1208
+ var a = void 0, u = void 0, d = -1, f = 0;
1209
+ for(; f < s1.length && (c.lastIndex = f, u = c.exec(s1), null !== u);)f = c.lastIndex, c === v ? "!--" === u[1] ? c = _ : void 0 !== u[1] ? c = m : void 0 !== u[2] ? (y.test(u[2]) && (n = RegExp("</" + u[2], "g")), c = p) : void 0 !== u[3] && (c = p) : c === p ? ">" === u[0] ? (c = n !== null && n !== void 0 ? n : v, d = -1) : void 0 === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = void 0 === u[3] ? p : '"' === u[3] ? $ : g) : c === $ || c === g ? c = p : c === _ || c === m ? c = v : (c = p, n = void 0);
1210
+ var x = c === p && t[_$i + 1].startsWith("/>") ? " " : "";
1211
+ l += c === v ? s1 + r$2 : d >= 0 ? (e.push(a), s1.slice(0, d) + h + s1.slice(d) + o$2 + x) : s1 + o$2 + (-2 === d ? _$i : x);
1209
1212
  }
1210
1213
  return [
1211
- P(t, l + (t[s] || "<?>") + (2 === i ? "</svg>" : 3 === i ? "</math>" : "")),
1212
- o
1214
+ V(t, l + (t[s] || "<?>") + (2 === i ? "</svg>" : 3 === i ? "</math>" : "")),
1215
+ e
1213
1216
  ];
1214
1217
  };
1215
- var N = /*#__PURE__*/ function() {
1216
- function N(param, n) {
1217
- var t = param.strings, s = param._$litType$;
1218
- _class_call_check$1(this, N);
1218
+ var S = /*#__PURE__*/ function() {
1219
+ function S(param, e) {
1220
+ var t = param.strings, i = param._$litType$;
1221
+ _class_call_check$1(this, S);
1219
1222
  var r;
1220
1223
  this.parts = [];
1221
- var c = 0, a = 0;
1222
- var u = t.length - 1, d = this.parts, _V = _sliced_to_array$1(V(t, s), 2), f = _V[0], v = _V[1];
1223
- if (this.el = N.createElement(f, n), C.currentNode = this.el.content, 2 === s || 3 === s) {
1224
+ var l = 0, a = 0;
1225
+ var u = t.length - 1, d = this.parts, _N = _sliced_to_array$1(N(t, i), 2), f = _N[0], v = _N[1];
1226
+ if (this.el = S.createElement(f, e), P.currentNode = this.el.content, 2 === i || 3 === i) {
1224
1227
  var _t;
1225
1228
  var t1 = this.el.content.firstChild;
1226
1229
  (_t = t1).replaceWith.apply(_t, _to_consumable_array$8(t1.childNodes));
1227
1230
  }
1228
- for(; null !== (r = C.nextNode()) && d.length < u;){
1231
+ for(; null !== (r = P.nextNode()) && d.length < u;){
1229
1232
  if (1 === r.nodeType) {
1230
1233
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1231
1234
  if (r.hasAttributes()) try {
1232
1235
  for(var _iterator = r.getAttributeNames()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1233
1236
  var t2 = _step.value;
1234
- if (t2.endsWith(e)) {
1235
- var i1 = v[a++], s1 = r.getAttribute(t2).split(h), e1 = /([.?@])?(.*)/.exec(i1);
1237
+ if (t2.endsWith(h)) {
1238
+ var i1 = v[a++], s1 = r.getAttribute(t2).split(o$2), _$e = /([.?@])?(.*)/.exec(i1);
1236
1239
  d.push({
1237
1240
  type: 1,
1238
- index: c,
1239
- name: e1[2],
1241
+ index: l,
1242
+ name: _$e[2],
1240
1243
  strings: s1,
1241
- ctor: "." === e1[1] ? H : "?" === e1[1] ? I : "@" === e1[1] ? L : k
1244
+ ctor: "." === _$e[1] ? I : "?" === _$e[1] ? L : "@" === _$e[1] ? z : H
1242
1245
  }), r.removeAttribute(t2);
1243
- } else t2.startsWith(h) && (d.push({
1246
+ } else t2.startsWith(o$2) && (d.push({
1244
1247
  type: 6,
1245
- index: c
1248
+ index: l
1246
1249
  }), r.removeAttribute(t2));
1247
1250
  }
1248
1251
  } catch (err) {
@@ -1259,58 +1262,58 @@ var N = /*#__PURE__*/ function() {
1259
1262
  }
1260
1263
  }
1261
1264
  }
1262
- if ($.test(r.tagName)) {
1263
- var t3 = r.textContent.split(h), s2 = t3.length - 1;
1264
- if (s2 > 0) {
1265
- r.textContent = i$1 ? i$1.emptyScript : "";
1266
- for(var i2 = 0; i2 < s2; i2++)r.append(t3[i2], l()), C.nextNode(), d.push({
1265
+ if (y.test(r.tagName)) {
1266
+ var t3 = r.textContent.split(o$2), i2 = t3.length - 1;
1267
+ if (i2 > 0) {
1268
+ r.textContent = s$1 ? s$1.emptyScript : "";
1269
+ for(var s2 = 0; s2 < i2; s2++)r.append(t3[s2], c()), P.nextNode(), d.push({
1267
1270
  type: 2,
1268
- index: ++c
1271
+ index: ++l
1269
1272
  });
1270
- r.append(t3[s2], l());
1273
+ r.append(t3[i2], c());
1271
1274
  }
1272
1275
  }
1273
- } else if (8 === r.nodeType) if (r.data === o$2) d.push({
1276
+ } else if (8 === r.nodeType) if (r.data === n$1) d.push({
1274
1277
  type: 2,
1275
- index: c
1278
+ index: l
1276
1279
  });
1277
1280
  else {
1278
1281
  var t4 = -1;
1279
- for(; -1 !== (t4 = r.data.indexOf(h, t4 + 1));)d.push({
1282
+ for(; -1 !== (t4 = r.data.indexOf(o$2, t4 + 1));)d.push({
1280
1283
  type: 7,
1281
- index: c
1282
- }), t4 += h.length - 1;
1284
+ index: l
1285
+ }), t4 += o$2.length - 1;
1283
1286
  }
1284
- c++;
1287
+ l++;
1285
1288
  }
1286
1289
  }
1287
- _create_class$1(N, null, [
1290
+ _create_class$1(S, null, [
1288
1291
  {
1289
1292
  key: "createElement",
1290
1293
  value: function createElement(t, i) {
1291
- var s = r$2.createElement("template");
1294
+ var s = l.createElement("template");
1292
1295
  return s.innerHTML = t, s;
1293
1296
  }
1294
1297
  }
1295
1298
  ]);
1296
- return N;
1299
+ return S;
1297
1300
  }();
1298
- function S(t, i) {
1301
+ function M(t, i) {
1299
1302
  var s = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : t, e = arguments.length > 3 ? arguments[3] : void 0;
1300
1303
  var _s__$Co, _h__$AO;
1301
1304
  var _s;
1302
- if (i === T) return i;
1305
+ if (i === E) return i;
1303
1306
  var h = void 0 !== e ? (_s__$Co = s._$Co) === null || _s__$Co === void 0 ? void 0 : _s__$Co[e] : s._$Cl;
1304
- var o = c(i) ? void 0 : i._$litDirective$;
1307
+ var o = a(i) ? void 0 : i._$litDirective$;
1305
1308
  var __$Co;
1306
- return (h === null || h === void 0 ? void 0 : h.constructor) !== o && (h === null || h === void 0 ? void 0 : (_h__$AO = h._$AO) === null || _h__$AO === void 0 ? void 0 : _h__$AO.call(h, false), void 0 === o ? h = void 0 : (h = new o(t), h._$AT(t, s, e)), void 0 !== e ? ((__$Co = (_s = s)._$Co) !== null && __$Co !== void 0 ? __$Co : _s._$Co = [])[e] = h : s._$Cl = h), void 0 !== h && (i = S(t, h._$AS(t, i.values), h, e)), i;
1309
+ return (h === null || h === void 0 ? void 0 : h.constructor) !== o && (h === null || h === void 0 ? void 0 : (_h__$AO = h._$AO) === null || _h__$AO === void 0 ? void 0 : _h__$AO.call(h, false), void 0 === o ? h = void 0 : (h = new o(t), h._$AT(t, s, e)), void 0 !== e ? ((__$Co = (_s = s)._$Co) !== null && __$Co !== void 0 ? __$Co : _s._$Co = [])[e] = h : s._$Cl = h), void 0 !== h && (i = M(t, h._$AS(t, i.values), h, e)), i;
1307
1310
  }
1308
- var M = /*#__PURE__*/ function() {
1309
- function M(t, i) {
1310
- _class_call_check$1(this, M);
1311
+ var R = /*#__PURE__*/ function() {
1312
+ function R(t, i) {
1313
+ _class_call_check$1(this, R);
1311
1314
  this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
1312
1315
  }
1313
- _create_class$1(M, [
1316
+ _create_class$1(R, [
1314
1317
  {
1315
1318
  key: "parentNode",
1316
1319
  get: function get() {
@@ -1327,17 +1330,17 @@ var M = /*#__PURE__*/ function() {
1327
1330
  key: "u",
1328
1331
  value: function u(t) {
1329
1332
  var _t_creationScope;
1330
- var _this__$AD = this._$AD, _this__$AD_el = _this__$AD.el, i = _this__$AD_el.content, s = _this__$AD.parts, e = ((_t_creationScope = t === null || t === void 0 ? void 0 : t.creationScope) !== null && _t_creationScope !== void 0 ? _t_creationScope : r$2).importNode(i, true);
1331
- C.currentNode = e;
1332
- var h = C.nextNode(), o = 0, n = 0, l = s[0];
1333
- for(; void 0 !== l;){
1334
- if (o === l.index) {
1333
+ var _this__$AD = this._$AD, _this__$AD_el = _this__$AD.el, i = _this__$AD_el.content, s = _this__$AD.parts, e = ((_t_creationScope = t === null || t === void 0 ? void 0 : t.creationScope) !== null && _t_creationScope !== void 0 ? _t_creationScope : l).importNode(i, true);
1334
+ P.currentNode = e;
1335
+ var h = P.nextNode(), o = 0, n = 0, r = s[0];
1336
+ for(; void 0 !== r;){
1337
+ if (o === r.index) {
1335
1338
  var i1 = void 0;
1336
- 2 === l.type ? i1 = new R(h, h.nextSibling, this, t) : 1 === l.type ? i1 = new l.ctor(h, l.name, l.strings, this, t) : 6 === l.type && (i1 = new z(h, this, t)), this._$AV.push(i1), l = s[++n];
1339
+ 2 === r.type ? i1 = new k(h, h.nextSibling, this, t) : 1 === r.type ? i1 = new r.ctor(h, r.name, r.strings, this, t) : 6 === r.type && (i1 = new Z(h, this, t)), this._$AV.push(i1), r = s[++n];
1337
1340
  }
1338
- o !== (l === null || l === void 0 ? void 0 : l.index) && (h = C.nextNode(), o++);
1341
+ o !== (r === null || r === void 0 ? void 0 : r.index) && (h = P.nextNode(), o++);
1339
1342
  }
1340
- return C.currentNode = r$2, e;
1343
+ return P.currentNode = l, e;
1341
1344
  }
1342
1345
  },
1343
1346
  {
@@ -1367,15 +1370,15 @@ var M = /*#__PURE__*/ function() {
1367
1370
  }
1368
1371
  }
1369
1372
  ]);
1370
- return M;
1373
+ return R;
1371
1374
  }();
1372
- var R = /*#__PURE__*/ function() {
1373
- function R(t, i, s, e) {
1374
- _class_call_check$1(this, R);
1375
+ var k = /*#__PURE__*/ function() {
1376
+ function k(t, i, s, e) {
1377
+ _class_call_check$1(this, k);
1375
1378
  var _e_isConnected;
1376
- this.type = 2, this._$AH = E, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = (_e_isConnected = e === null || e === void 0 ? void 0 : e.isConnected) !== null && _e_isConnected !== void 0 ? _e_isConnected : true;
1379
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = (_e_isConnected = e === null || e === void 0 ? void 0 : e.isConnected) !== null && _e_isConnected !== void 0 ? _e_isConnected : true;
1377
1380
  }
1378
- _create_class$1(R, [
1381
+ _create_class$1(k, [
1379
1382
  {
1380
1383
  key: "_$AU",
1381
1384
  get: function get() {
@@ -1408,7 +1411,7 @@ var R = /*#__PURE__*/ function() {
1408
1411
  key: "_$AI",
1409
1412
  value: function _$AI(t) {
1410
1413
  var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this;
1411
- t = S(this, t, i), c(t) ? t === E || null == t || "" === t ? (this._$AH !== E && this._$AR(), this._$AH = E) : t !== this._$AH && t !== T && this._(t) : void 0 !== t._$litType$ ? this.$(t) : void 0 !== t.nodeType ? this.T(t) : u(t) ? this.k(t) : this._(t);
1414
+ t = M(this, t, i), a(t) ? t === A || null == t || "" === t ? (this._$AH !== A && this._$AR(), this._$AH = A) : t !== this._$AH && t !== E && this._(t) : void 0 !== t._$litType$ ? this.$(t) : void 0 !== t.nodeType ? this.T(t) : d(t) ? this.k(t) : this._(t);
1412
1415
  }
1413
1416
  },
1414
1417
  {
@@ -1426,17 +1429,17 @@ var R = /*#__PURE__*/ function() {
1426
1429
  {
1427
1430
  key: "_",
1428
1431
  value: function _(t) {
1429
- this._$AH !== E && c(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r$2.createTextNode(t)), this._$AH = t;
1432
+ this._$AH !== A && a(this._$AH) ? this._$AA.nextSibling.data = t : this.T(l.createTextNode(t)), this._$AH = t;
1430
1433
  }
1431
1434
  },
1432
1435
  {
1433
1436
  key: "$",
1434
1437
  value: function $(t) {
1435
1438
  var _this__$AH;
1436
- var i = t.values, s = t._$litType$, e = "number" == typeof s ? this._$AC(t) : (void 0 === s.el && (s.el = N.createElement(P(s.h, s.h[0]), this.options)), s);
1439
+ var i = t.values, s = t._$litType$, e = "number" == typeof s ? this._$AC(t) : (void 0 === s.el && (s.el = S.createElement(V(s.h, s.h[0]), this.options)), s);
1437
1440
  if (((_this__$AH = this._$AH) === null || _this__$AH === void 0 ? void 0 : _this__$AH._$AD) === e) this._$AH.p(i);
1438
1441
  else {
1439
- var _$t = new M(e, this), s1 = _$t.u(this.options);
1442
+ var _$t = new R(e, this), s1 = _$t.u(this.options);
1440
1443
  _$t.p(i), this.T(s1), this._$AH = _$t;
1441
1444
  }
1442
1445
  }
@@ -1444,21 +1447,21 @@ var R = /*#__PURE__*/ function() {
1444
1447
  {
1445
1448
  key: "_$AC",
1446
1449
  value: function _$AC(t) {
1447
- var i = A.get(t.strings);
1448
- return void 0 === i && A.set(t.strings, i = new N(t)), i;
1450
+ var i = C.get(t.strings);
1451
+ return void 0 === i && C.set(t.strings, i = new S(t)), i;
1449
1452
  }
1450
1453
  },
1451
1454
  {
1452
1455
  key: "k",
1453
- value: function k(t) {
1454
- a(this._$AH) || (this._$AH = [], this._$AR());
1456
+ value: function k1(t) {
1457
+ u(this._$AH) || (this._$AH = [], this._$AR());
1455
1458
  var i = this._$AH;
1456
1459
  var s, e = 0;
1457
1460
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1458
1461
  try {
1459
1462
  for(var _iterator = t[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1460
1463
  var h = _step.value;
1461
- e === i.length ? i.push(s = new R(this.O(l()), this.O(l()), this, this.options)) : s = i[e], s._$AI(h), e++;
1464
+ e === i.length ? i.push(s = new k(this.O(c()), this.O(c()), this, this.options)) : s = i[e], s._$AI(h), e++;
1462
1465
  }
1463
1466
  } catch (err) {
1464
1467
  _didIteratorError = true;
@@ -1480,11 +1483,11 @@ var R = /*#__PURE__*/ function() {
1480
1483
  {
1481
1484
  key: "_$AR",
1482
1485
  value: function _$AR() {
1483
- var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this._$AA.nextSibling, i = arguments.length > 1 ? arguments[1] : void 0;
1486
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this._$AA.nextSibling, s = arguments.length > 1 ? arguments[1] : void 0;
1484
1487
  var _this__$AP, _this;
1485
- for((_this__$AP = (_this = this)._$AP) === null || _this__$AP === void 0 ? void 0 : _this__$AP.call(_this, false, true, i); t !== this._$AB;){
1486
- var i1 = t.nextSibling;
1487
- t.remove(), t = i1;
1488
+ for((_this__$AP = (_this = this)._$AP) === null || _this__$AP === void 0 ? void 0 : _this__$AP.call(_this, false, true, s); t !== this._$AB;){
1489
+ var s1 = i$1(t).nextSibling;
1490
+ i$1(t).remove(), t = s1;
1488
1491
  }
1489
1492
  }
1490
1493
  },
@@ -1496,14 +1499,14 @@ var R = /*#__PURE__*/ function() {
1496
1499
  }
1497
1500
  }
1498
1501
  ]);
1499
- return R;
1502
+ return k;
1500
1503
  }();
1501
- var k = /*#__PURE__*/ function() {
1502
- function k(t, i, s, e, h) {
1503
- _class_call_check$1(this, k);
1504
- this.type = 1, this._$AH = E, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String), this.strings = s) : this._$AH = E;
1504
+ var H = /*#__PURE__*/ function() {
1505
+ function H(t, i, s, e, h) {
1506
+ _class_call_check$1(this, H);
1507
+ this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String), this.strings = s) : this._$AH = A;
1505
1508
  }
1506
- _create_class$1(k, [
1509
+ _create_class$1(H, [
1507
1510
  {
1508
1511
  key: "tagName",
1509
1512
  get: function get() {
@@ -1522,11 +1525,11 @@ var k = /*#__PURE__*/ function() {
1522
1525
  var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this, s = arguments.length > 2 ? arguments[2] : void 0, e = arguments.length > 3 ? arguments[3] : void 0;
1523
1526
  var h = this.strings;
1524
1527
  var o = false;
1525
- if (void 0 === h) t = S(this, t, i, 0), o = !c(t) || t !== this._$AH && t !== T, o && (this._$AH = t);
1528
+ if (void 0 === h) t = M(this, t, i, 0), o = !a(t) || t !== this._$AH && t !== E, o && (this._$AH = t);
1526
1529
  else {
1527
1530
  var e1 = t;
1528
1531
  var n, r;
1529
- for(t = h[0], n = 0; n < h.length - 1; n++)r = S(this, e1[s + n], i, n), r === T && (r = this._$AH[n]), o || (o = !c(r) || r !== this._$AH[n]), r === E ? t = E : t !== E && (t += (r !== null && r !== void 0 ? r : "") + h[n + 1]), this._$AH[n] = r;
1532
+ for(t = h[0], n = 0; n < h.length - 1; n++)r = M(this, e1[s + n], i, n), r === E && (r = this._$AH[n]), o || (o = !a(r) || r !== this._$AH[n]), r === A ? t = A : t !== A && (t += (r !== null && r !== void 0 ? r : "") + h[n + 1]), this._$AH[n] = r;
1530
1533
  }
1531
1534
  o && !e && this.j(t);
1532
1535
  }
@@ -1534,71 +1537,71 @@ var k = /*#__PURE__*/ function() {
1534
1537
  {
1535
1538
  key: "j",
1536
1539
  value: function j(t) {
1537
- t === E ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t !== null && t !== void 0 ? t : "");
1540
+ t === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t !== null && t !== void 0 ? t : "");
1538
1541
  }
1539
1542
  }
1540
1543
  ]);
1541
- return k;
1544
+ return H;
1542
1545
  }();
1543
- var H = /*#__PURE__*/ function(k) {
1544
- _inherits$1(H, k);
1545
- var _super = _create_super$1(H);
1546
- function H() {
1547
- _class_call_check$1(this, H);
1546
+ var I = /*#__PURE__*/ function(H) {
1547
+ _inherits$1(I, H);
1548
+ var _super = _create_super$1(I);
1549
+ function I() {
1550
+ _class_call_check$1(this, I);
1548
1551
  var _this;
1549
1552
  _this = _super.call.apply(_super, [
1550
1553
  this
1551
1554
  ].concat(Array.prototype.slice.call(arguments))), _this.type = 3;
1552
1555
  return _possible_constructor_return$1(_this);
1553
1556
  }
1554
- _create_class$1(H, [
1557
+ _create_class$1(I, [
1555
1558
  {
1556
1559
  key: "j",
1557
1560
  value: function j(t) {
1558
- this.element[this.name] = t === E ? void 0 : t;
1561
+ this.element[this.name] = t === A ? void 0 : t;
1559
1562
  }
1560
1563
  }
1561
1564
  ]);
1562
- return H;
1563
- }(k);
1564
- var I = /*#__PURE__*/ function(k) {
1565
- _inherits$1(I, k);
1566
- var _super = _create_super$1(I);
1567
- function I() {
1568
- _class_call_check$1(this, I);
1565
+ return I;
1566
+ }(H);
1567
+ var L = /*#__PURE__*/ function(H) {
1568
+ _inherits$1(L, H);
1569
+ var _super = _create_super$1(L);
1570
+ function L() {
1571
+ _class_call_check$1(this, L);
1569
1572
  var _this;
1570
1573
  _this = _super.call.apply(_super, [
1571
1574
  this
1572
1575
  ].concat(Array.prototype.slice.call(arguments))), _this.type = 4;
1573
1576
  return _possible_constructor_return$1(_this);
1574
1577
  }
1575
- _create_class$1(I, [
1578
+ _create_class$1(L, [
1576
1579
  {
1577
1580
  key: "j",
1578
1581
  value: function j(t) {
1579
- this.element.toggleAttribute(this.name, !!t && t !== E);
1582
+ this.element.toggleAttribute(this.name, !!t && t !== A);
1580
1583
  }
1581
1584
  }
1582
1585
  ]);
1583
- return I;
1584
- }(k);
1585
- var L = /*#__PURE__*/ function(k) {
1586
- _inherits$1(L, k);
1587
- var _super = _create_super$1(L);
1588
- function L(t, i, s, e, h) {
1589
- _class_call_check$1(this, L);
1586
+ return L;
1587
+ }(H);
1588
+ var z = /*#__PURE__*/ function(H) {
1589
+ _inherits$1(z, H);
1590
+ var _super = _create_super$1(z);
1591
+ function z(t, i, s, e, h) {
1592
+ _class_call_check$1(this, z);
1590
1593
  var _this;
1591
1594
  _this = _super.call(this, t, i, s, e, h), _this.type = 5;
1592
1595
  return _possible_constructor_return$1(_this);
1593
1596
  }
1594
- _create_class$1(L, [
1597
+ _create_class$1(z, [
1595
1598
  {
1596
1599
  key: "_$AI",
1597
1600
  value: function _$AI(t) {
1598
1601
  var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this;
1599
- var _S;
1600
- if ((t = (_S = S(this, t, i, 0)) !== null && _S !== void 0 ? _S : E) === T) return;
1601
- var s = this._$AH, e = t === E && s !== E || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, h = t !== E && (s === E || e);
1602
+ var _M;
1603
+ if ((t = (_M = M(this, t, i, 0)) !== null && _M !== void 0 ? _M : A) === E) return;
1604
+ var s = this._$AH, e = t === A && s !== A || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, h = t !== A && (s === A || e);
1602
1605
  e && this.element.removeEventListener(this.name, this, s), h && this.element.addEventListener(this.name, this, t), this._$AH = t;
1603
1606
  }
1604
1607
  },
@@ -1611,14 +1614,14 @@ var L = /*#__PURE__*/ function(k) {
1611
1614
  }
1612
1615
  }
1613
1616
  ]);
1614
- return L;
1615
- }(k);
1616
- var z = /*#__PURE__*/ function() {
1617
- function z(t, i, s) {
1618
- _class_call_check$1(this, z);
1617
+ return z;
1618
+ }(H);
1619
+ var Z = /*#__PURE__*/ function() {
1620
+ function Z(t, i, s) {
1621
+ _class_call_check$1(this, Z);
1619
1622
  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
1620
1623
  }
1621
- _create_class$1(z, [
1624
+ _create_class$1(Z, [
1622
1625
  {
1623
1626
  key: "_$AU",
1624
1627
  get: function get() {
@@ -1628,23 +1631,23 @@ var z = /*#__PURE__*/ function() {
1628
1631
  {
1629
1632
  key: "_$AI",
1630
1633
  value: function _$AI(t) {
1631
- S(this, t);
1634
+ M(this, t);
1632
1635
  }
1633
1636
  }
1634
1637
  ]);
1635
- return z;
1638
+ return Z;
1636
1639
  }();
1637
- var j = t$1.litHtmlPolyfillSupport;
1640
+ var B = t$1.litHtmlPolyfillSupport;
1638
1641
  var _litHtmlVersions;
1639
- j === null || j === void 0 ? void 0 : j(N, R), ((_litHtmlVersions = (_t = t$1).litHtmlVersions) !== null && _litHtmlVersions !== void 0 ? _litHtmlVersions : _t.litHtmlVersions = []).push("3.3.1");
1640
- var B = function(t, i, s) {
1642
+ B === null || B === void 0 ? void 0 : B(S, k), ((_litHtmlVersions = (_t = t$1).litHtmlVersions) !== null && _litHtmlVersions !== void 0 ? _litHtmlVersions : _t.litHtmlVersions = []).push("3.3.3");
1643
+ var D = function(t, i, s) {
1641
1644
  var _s_renderBefore;
1642
1645
  var e = (_s_renderBefore = s === null || s === void 0 ? void 0 : s.renderBefore) !== null && _s_renderBefore !== void 0 ? _s_renderBefore : i;
1643
1646
  var h = e._$litPart$;
1644
1647
  if (void 0 === h) {
1645
1648
  var _s_renderBefore1;
1646
1649
  var _$t = (_s_renderBefore1 = s === null || s === void 0 ? void 0 : s.renderBefore) !== null && _s_renderBefore1 !== void 0 ? _s_renderBefore1 : null;
1647
- e._$litPart$ = h = new R(i.insertBefore(l(), _$t), _$t, void 0, s !== null && s !== void 0 ? s : {});
1650
+ e._$litPart$ = h = new k(i.insertBefore(c(), _$t), _$t, void 0, s !== null && s !== void 0 ? s : {});
1648
1651
  }
1649
1652
  return h._$AI(t), h;
1650
1653
  };
@@ -1790,7 +1793,7 @@ var i = /*#__PURE__*/ function(t) {
1790
1793
  key: "update",
1791
1794
  value: function update(t) {
1792
1795
  var r = this.render();
1793
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), _get(_get_prototype_of(i.prototype), "update", this).call(this, t), this._$Do = B(r, this.renderRoot, this.renderOptions);
1796
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), _get(_get_prototype_of(i.prototype), "update", this).call(this, t), this._$Do = D(r, this.renderRoot, this.renderOptions);
1794
1797
  }
1795
1798
  },
1796
1799
  {
@@ -1810,7 +1813,7 @@ var i = /*#__PURE__*/ function(t) {
1810
1813
  {
1811
1814
  key: "render",
1812
1815
  value: function render() {
1813
- return T;
1816
+ return E;
1814
1817
  }
1815
1818
  }
1816
1819
  ]);
@@ -1824,7 +1827,7 @@ o$1 === null || o$1 === void 0 ? void 0 : o$1({
1824
1827
  LitElement: i
1825
1828
  });
1826
1829
  var _litElementVersions;
1827
- ((_litElementVersions = (_s = s).litElementVersions) !== null && _litElementVersions !== void 0 ? _litElementVersions : _s.litElementVersions = []).push("4.2.1");
1830
+ ((_litElementVersions = (_s = s).litElementVersions) !== null && _litElementVersions !== void 0 ? _litElementVersions : _s.litElementVersions = []).push("4.2.2");
1828
1831
 
1829
1832
  /**
1830
1833
  * @license
@@ -1861,7 +1864,7 @@ function _type_of$2(obj) {
1861
1864
  return {
1862
1865
  set: function set(r) {
1863
1866
  var n = _$e.get.call(this);
1864
- _$e.set.call(this, r), this.requestUpdate(o1, n, _$t);
1867
+ _$e.set.call(this, r), this.requestUpdate(o1, n, _$t, true, r);
1865
1868
  },
1866
1869
  init: function init(e) {
1867
1870
  return void 0 !== e && this.C(o1, void 0, _$t, e), e;
@@ -1872,7 +1875,7 @@ function _type_of$2(obj) {
1872
1875
  var o2 = r.name;
1873
1876
  return function r(r) {
1874
1877
  var n = this[o2];
1875
- _$e.call(this, r), this.requestUpdate(o2, n, _$t);
1878
+ _$e.call(this, r), this.requestUpdate(o2, n, _$t, true, r);
1876
1879
  };
1877
1880
  }
1878
1881
  throw Error("Unsupported decorator location: " + n);
@@ -2011,7 +2014,7 @@ class InputFileElement extends i {
2011
2014
  input.click();
2012
2015
  }
2013
2016
  render() {
2014
- return x`
2017
+ return b`
2015
2018
  <section
2016
2019
  class="download ${this.state}"
2017
2020
  @click=${()=>[
@@ -2019,8 +2022,8 @@ class InputFileElement extends i {
2019
2022
  'loaded'
2020
2023
  ].indexOf(this.state) >= 0 ? this.loadFile() : void 0}
2021
2024
  >
2022
- ${this.state === 'loaded' ? x` <ui5-icon name="attachment"></ui5-icon>
2023
- <p>${this.label}<br />${this._content}</p>` : x` <ui5-icon name="add-document"></ui5-icon>
2025
+ ${this.state === 'loaded' ? b` <ui5-icon name="attachment"></ui5-icon>
2026
+ <p>${this.label}<br />${this._content}</p>` : b` <ui5-icon name="add-document"></ui5-icon>
2024
2027
  <p>${this.label}</p>`}
2025
2028
  </section>
2026
2029
  `;
@@ -2125,7 +2128,7 @@ class InputJsonElement extends i {
2125
2128
  input.click();
2126
2129
  }
2127
2130
  render() {
2128
- return x`
2131
+ return b`
2129
2132
  <section
2130
2133
  class="download ${this.state}"
2131
2134
  @click=${()=>[
@@ -2133,8 +2136,8 @@ class InputJsonElement extends i {
2133
2136
  'loaded'
2134
2137
  ].indexOf(this.state) >= 0 ? this.loadFile() : void 0}
2135
2138
  >
2136
- ${this.state === 'loaded' ? x` <ui5-icon name="attachment"></ui5-icon>
2137
- <p>${this.label}<br />${this._content}</p>` : x` <ui5-icon name="add-document"></ui5-icon>
2139
+ ${this.state === 'loaded' ? b` <ui5-icon name="attachment"></ui5-icon>
2140
+ <p>${this.label}<br />${this._content}</p>` : b` <ui5-icon name="add-document"></ui5-icon>
2138
2141
  <p>${this.label}</p>`}
2139
2142
  </section>
2140
2143
  `;
@@ -2239,7 +2242,7 @@ class InputTextElement extends i {
2239
2242
  input.click();
2240
2243
  }
2241
2244
  render() {
2242
- return x`
2245
+ return b`
2243
2246
  <section
2244
2247
  class="download ${this.state}"
2245
2248
  @click=${()=>[
@@ -2247,8 +2250,8 @@ class InputTextElement extends i {
2247
2250
  'loaded'
2248
2251
  ].indexOf(this.state) >= 0 ? this.loadFile() : void 0}
2249
2252
  >
2250
- ${this.state === 'loaded' ? x` <ui5-icon name="attachment"></ui5-icon>
2251
- <p>${this.label}<br />${this._content}</p>` : x` <ui5-icon name="add-document"></ui5-icon>
2253
+ ${this.state === 'loaded' ? b` <ui5-icon name="attachment"></ui5-icon>
2254
+ <p>${this.label}<br />${this._content}</p>` : b` <ui5-icon name="add-document"></ui5-icon>
2252
2255
  <p>${this.label}</p>`}
2253
2256
  </section>
2254
2257
  `;
@@ -2313,7 +2316,7 @@ class DomAttributeElement extends i {
2313
2316
  }
2314
2317
  }
2315
2318
  render() {
2316
- return x``;
2319
+ return b``;
2317
2320
  }
2318
2321
  constructor(...args){
2319
2322
  super(...args);
@@ -2405,7 +2408,7 @@ var libraryName = "CssSelectorGenerator";
2405
2408
  ].concat(_to_consumable_array$7(args)));
2406
2409
  }
2407
2410
 
2408
- function _instanceof$1(left, right) {
2411
+ function _instanceof$2(left, right) {
2409
2412
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
2410
2413
  return !!right[Symbol.hasInstance](left);
2411
2414
  } else {
@@ -2432,8 +2435,14 @@ var DEFAULT_OPTIONS = {
2432
2435
  root: null,
2433
2436
  maxCombinations: Number.POSITIVE_INFINITY,
2434
2437
  maxCandidates: Number.POSITIVE_INFINITY,
2435
- useScope: false
2438
+ useScope: false,
2439
+ ignoreGeneratedClassNames: false
2436
2440
  };
2441
+ /**
2442
+ * Makes sure the input is converted to a boolean value.
2443
+ */ function sanitizeBoolean(input) {
2444
+ return !!input;
2445
+ }
2437
2446
  /**
2438
2447
  * Makes sure returned value is a list containing only valid selector types.
2439
2448
  * @param input
@@ -2448,7 +2457,7 @@ var DEFAULT_OPTIONS = {
2448
2457
  /**
2449
2458
  * Checks whether provided value is of type RegExp.
2450
2459
  */ function isRegExp(input) {
2451
- return _instanceof$1(input, RegExp);
2460
+ return _instanceof$2(input, RegExp);
2452
2461
  }
2453
2462
  /**
2454
2463
  * Checks whether provided value is usable in whitelist or blacklist.
@@ -2469,8 +2478,9 @@ var DEFAULT_OPTIONS = {
2469
2478
  }
2470
2479
  /**
2471
2480
  * Checks whether provided value is valid Node.
2481
+ * Uses nodeType check instead of instanceof to work across iframe boundaries.
2472
2482
  */ function isNode(input) {
2473
- return _instanceof$1(input, Node);
2483
+ return input != null && (typeof input === "undefined" ? "undefined" : _type_of(input)) === "object" && "nodeType" in input && typeof input.nodeType === "number";
2474
2484
  }
2475
2485
  /**
2476
2486
  * Checks whether provided value is valid ParentNode.
@@ -2518,12 +2528,14 @@ var DEFAULT_OPTIONS = {
2518
2528
  whitelist: sanitizeCssSelectorMatchList(options.whitelist),
2519
2529
  blacklist: sanitizeCssSelectorMatchList(options.blacklist),
2520
2530
  root: sanitizeRoot(options.root, element),
2521
- combineWithinSelector: !!options.combineWithinSelector,
2522
- combineBetweenSelectors: !!options.combineBetweenSelectors,
2523
- includeTag: !!options.includeTag,
2531
+ combineWithinSelector: sanitizeBoolean(options.combineWithinSelector),
2532
+ combineBetweenSelectors: sanitizeBoolean(options.combineBetweenSelectors),
2533
+ includeTag: sanitizeBoolean(options.includeTag),
2524
2534
  maxCombinations: sanitizeMaxNumber(options.maxCombinations),
2525
2535
  maxCandidates: sanitizeMaxNumber(options.maxCandidates),
2526
- useScope: !!options.useScope
2536
+ useScope: sanitizeBoolean(options.useScope),
2537
+ maxResults: sanitizeMaxNumber(options.maxResults),
2538
+ ignoreGeneratedClassNames: sanitizeBoolean(options.ignoreGeneratedClassNames)
2527
2539
  };
2528
2540
  }
2529
2541
 
@@ -2640,9 +2652,11 @@ function _unsupported_iterable_to_array$7(o, minLen) {
2640
2652
  root = root !== null && root !== void 0 ? root : getRootNode(element);
2641
2653
  var result = [];
2642
2654
  var parent = element;
2643
- while(isElement(parent) && parent !== root){
2644
- result.push(parent);
2645
- parent = parent.parentElement;
2655
+ while(parent && parent !== root){
2656
+ if (isElement(parent)) {
2657
+ result.push(parent);
2658
+ }
2659
+ parent = parent.parentNode;
2646
2660
  }
2647
2661
  return result;
2648
2662
  }
@@ -2753,7 +2767,7 @@ var attributeBlacklistMatch = createPatternMatcher([
2753
2767
  }
2754
2768
  /**
2755
2769
  * Get attribute selectors for an element.
2756
- */ function getElementAttributeSelectors(element) {
2770
+ */ function getElementAttributeSelectors(element, _options) {
2757
2771
  var validAttributes = Array.from(element.attributes).filter(function(attributeNode) {
2758
2772
  return isValidAttributeNode(attributeNode, element);
2759
2773
  }).map(sanitizeAttributeData);
@@ -2761,31 +2775,121 @@ var attributeBlacklistMatch = createPatternMatcher([
2761
2775
  }
2762
2776
  /**
2763
2777
  * Get attribute selectors matching all elements.
2764
- */ function getAttributeSelectors(elements) {
2765
- var elementSelectors = elements.map(getElementAttributeSelectors);
2778
+ */ function getAttributeSelectors(elements, options) {
2779
+ var elementSelectors = elements.map(function(el) {
2780
+ return getElementAttributeSelectors(el);
2781
+ });
2766
2782
  return getIntersection(elementSelectors);
2767
2783
  }
2768
2784
 
2785
+ var WORD_LIKE_PATTERN = /^[a-z_-]{3,}$/i;
2786
+ var CONSONANT_PATTERN = /[bcdfghjklmnpqrstvwxyz]{4,}/i;
2787
+ /**
2788
+ * Checks if a class name appears to be human-readable (word-like)
2789
+ * rather than a generated hash from CSS-in-JS libraries.
2790
+ *
2791
+ * Heuristics:
2792
+ * 1. Must match basic pattern: letters, hyphens, and underscores, at least 3 chars
2793
+ * 2. Split on hyphens, underscores (one or more), or camelCase boundaries
2794
+ * 3. Each word segment must be > 2 characters
2795
+ * 4. No word can have 4+ consecutive consonants
2796
+ *
2797
+ * Examples:
2798
+ * - Word-like: "button", "nav", "nav-container", "userProfile", "block__element--modifier"
2799
+ * - Generated: "css-abc123", "sc-xyz", "abc", "xyz", "button_primary" (single underscore)
2800
+ */ function isWordLikeClassName(className) {
2801
+ if (!WORD_LIKE_PATTERN.test(className)) {
2802
+ return false;
2803
+ }
2804
+ // Reject single underscores (only allow double underscores for BEM)
2805
+ if (className.includes("_") && !className.includes("__")) {
2806
+ return false;
2807
+ }
2808
+ // Reject common CSS-in-JS library prefixes
2809
+ if (/^(css|sc|jsx|emotion|makeStyles|MuiButton|MuiBox)-/i.test(className)) {
2810
+ return false;
2811
+ }
2812
+ // Split on hyphens, double-underscores, or camelCase boundaries (lowercase->uppercase)
2813
+ // This handles: kebab-case, BEM (block__element--modifier), camelCase, PascalCase
2814
+ var words = className.split(RegExp("--|__|[-]|(?<=[a-z])(?=[A-Z])")).filter(function(word) {
2815
+ return word.length > 0;
2816
+ });
2817
+ // Must have at least one actual word (not just separators)
2818
+ if (words.length === 0) {
2819
+ return false;
2820
+ }
2821
+ // For single-word class names (no separators), require at least 4 chars
2822
+ // to avoid false positives with short hashes like "abc", "xyz"
2823
+ if (words.length === 1 && words[0].length < 4) {
2824
+ return false;
2825
+ }
2826
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2827
+ try {
2828
+ for(var _iterator = words[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2829
+ var word = _step.value;
2830
+ // Each word segment must be > 2 characters
2831
+ if (word.length <= 2) {
2832
+ return false;
2833
+ }
2834
+ // No word can have 4+ consecutive consonants
2835
+ if (CONSONANT_PATTERN.test(word)) {
2836
+ return false;
2837
+ }
2838
+ }
2839
+ } catch (err) {
2840
+ _didIteratorError = true;
2841
+ _iteratorError = err;
2842
+ } finally{
2843
+ try {
2844
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
2845
+ _iterator.return();
2846
+ }
2847
+ } finally{
2848
+ if (_didIteratorError) {
2849
+ throw _iteratorError;
2850
+ }
2851
+ }
2852
+ }
2853
+ return true;
2854
+ }
2769
2855
  /**
2770
2856
  * Get class selectors for an element.
2771
- */ function getElementClassSelectors(element) {
2857
+ */ function getElementClassSelectors(element, options) {
2772
2858
  var _a;
2773
- return ((_a = element.getAttribute("class")) !== null && _a !== void 0 ? _a : "").trim().split(/\s+/).filter(function(item) {
2859
+ var classNames = ((_a = element.getAttribute("class")) !== null && _a !== void 0 ? _a : "").trim().split(/\s+/).filter(function(item) {
2774
2860
  return !INVALID_CLASS_RE.test(item);
2775
- }).map(function(item) {
2861
+ });
2862
+ var filteredClassNames = classNames;
2863
+ // Apply generated class name filtering if enabled
2864
+ if (options === null || options === void 0 ? void 0 : options.ignoreGeneratedClassNames) {
2865
+ // Check whitelist to preserve whitelisted generated classes
2866
+ var matchWhitelist = createPatternMatcher(options.whitelist);
2867
+ filteredClassNames = classNames.filter(function(className) {
2868
+ var selector = ".".concat(sanitizeSelectorItem(className));
2869
+ // If whitelisted, always include
2870
+ if (matchWhitelist(selector)) {
2871
+ return true;
2872
+ }
2873
+ // Otherwise, check if it's word-like
2874
+ return isWordLikeClassName(className);
2875
+ });
2876
+ }
2877
+ return filteredClassNames.map(function(item) {
2776
2878
  return ".".concat(sanitizeSelectorItem(item));
2777
2879
  });
2778
2880
  }
2779
2881
  /**
2780
2882
  * Get class selectors matching all elements.
2781
- */ function getClassSelectors(elements) {
2782
- var elementSelectors = elements.map(getElementClassSelectors);
2883
+ */ function getClassSelectors(elements, options) {
2884
+ var elementSelectors = elements.map(function(el) {
2885
+ return getElementClassSelectors(el, options);
2886
+ });
2783
2887
  return getIntersection(elementSelectors);
2784
2888
  }
2785
2889
 
2786
2890
  /**
2787
2891
  * Get ID selector for an element.
2788
- * */ function getElementIdSelectors(element) {
2892
+ * */ function getElementIdSelectors(element, _options) {
2789
2893
  var _a;
2790
2894
  var id = (_a = element.getAttribute("id")) !== null && _a !== void 0 ? _a : "";
2791
2895
  var selector = "#".concat(sanitizeSelectorItem(id));
@@ -2800,29 +2904,32 @@ var attributeBlacklistMatch = createPatternMatcher([
2800
2904
  }
2801
2905
  /**
2802
2906
  * Get ID selector for an element.
2803
- */ function getIdSelector(elements) {
2907
+ */ function getIdSelector(elements, options) {
2804
2908
  return elements.length === 0 || elements.length > 1 ? [] : getElementIdSelectors(elements[0]);
2805
2909
  }
2806
2910
 
2807
2911
  /**
2808
2912
  * Get nth-child selector for an element.
2809
- */ function getElementNthChildSelector(element) {
2913
+ */ function getElementNthChildSelector(element, _options) {
2810
2914
  var parent = element.parentNode;
2811
- if (parent) {
2812
- var siblings = Array.from(parent.childNodes).filter(isElement);
2813
- var elementIndex = siblings.indexOf(element);
2814
- if (elementIndex > -1) {
2815
- return [
2816
- ":nth-child(".concat(String(elementIndex + 1), ")")
2817
- ];
2915
+ var siblings = parent && "children" in parent ? parent.children : null;
2916
+ if (siblings) {
2917
+ for(var i = 0; i < siblings.length; i++){
2918
+ if (siblings[i] === element) {
2919
+ return [
2920
+ ":nth-child(".concat(String(i + 1), ")")
2921
+ ];
2922
+ }
2818
2923
  }
2819
2924
  }
2820
2925
  return [];
2821
2926
  }
2822
2927
  /**
2823
2928
  * Get nth-child selector matching all elements.
2824
- */ function getNthChildSelector(elements) {
2825
- return getIntersection(elements.map(getElementNthChildSelector));
2929
+ */ function getNthChildSelector(elements, options) {
2930
+ return getIntersection(elements.map(function(el) {
2931
+ return getElementNthChildSelector(el);
2932
+ }));
2826
2933
  }
2827
2934
 
2828
2935
  function _array_like_to_array$5(arr, len) {
@@ -2852,15 +2959,17 @@ function _unsupported_iterable_to_array$5(o, minLen) {
2852
2959
  }
2853
2960
  /**
2854
2961
  * Get tag selector for an element.
2855
- */ function getElementTagSelectors(element) {
2962
+ */ function getElementTagSelectors(element, _options) {
2856
2963
  return [
2857
2964
  sanitizeSelectorItem(element.tagName.toLowerCase())
2858
2965
  ];
2859
2966
  }
2860
2967
  /**
2861
2968
  * Get tag selector for list of elements.
2862
- */ function getTagSelector(elements) {
2863
- var selectors = _to_consumable_array$4(new Set(flattenArray(elements.map(getElementTagSelectors))));
2969
+ */ function getTagSelector(elements, options) {
2970
+ var selectors = _to_consumable_array$4(new Set(flattenArray(elements.map(function(el) {
2971
+ return getElementTagSelectors(el);
2972
+ }))));
2864
2973
  return selectors.length === 0 || selectors.length > 1 ? [] : [
2865
2974
  selectors[0]
2866
2975
  ];
@@ -2868,11 +2977,12 @@ function _unsupported_iterable_to_array$5(o, minLen) {
2868
2977
 
2869
2978
  /**
2870
2979
  * Get nth-of-type selector for an element.
2871
- */ function getElementNthOfTypeSelector(element) {
2980
+ */ function getElementNthOfTypeSelector(element, _options) {
2872
2981
  var tag = getTagSelector([
2873
2982
  element
2874
2983
  ])[0];
2875
- var parentElement = element.parentElement;
2984
+ var parent = element.parentNode;
2985
+ var parentElement = parent && "children" in parent ? parent : null;
2876
2986
  if (parentElement) {
2877
2987
  var siblings = Array.from(parentElement.children).filter(function(element) {
2878
2988
  return element.tagName.toLowerCase() === tag;
@@ -2888,8 +2998,10 @@ function _unsupported_iterable_to_array$5(o, minLen) {
2888
2998
  }
2889
2999
  /**
2890
3000
  * Get Nth-of-type selector matching all elements.
2891
- */ function getNthOfTypeSelector(elements) {
2892
- return getIntersection(elements.map(getElementNthOfTypeSelector));
3001
+ */ function getNthOfTypeSelector(elements, options) {
3002
+ return getIntersection(elements.map(function(el) {
3003
+ return getElementNthOfTypeSelector(el);
3004
+ }));
2893
3005
  }
2894
3006
 
2895
3007
  function _array_like_to_array$4(arr, len) {
@@ -2917,7 +3029,7 @@ function _unsupported_iterable_to_array$4(o, minLen) {
2917
3029
  if (n === "Map" || n === "Set") return Array.from(n);
2918
3030
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$4(o, minLen);
2919
3031
  }
2920
- function _ts_generator(thisArg, body) {
3032
+ function _ts_generator$3(thisArg, body) {
2921
3033
  var f, y, t, g, _ = {
2922
3034
  label: 0,
2923
3035
  sent: function() {
@@ -3015,7 +3127,7 @@ function _ts_generator(thisArg, body) {
3015
3127
  function powerSetGenerator() {
3016
3128
  var input, _ref, _ref_maxResults, maxResults, resultCounter, offsets, result;
3017
3129
  var _arguments = arguments;
3018
- return _ts_generator(this, function(_state) {
3130
+ return _ts_generator$3(this, function(_state) {
3019
3131
  switch(_state.label){
3020
3132
  case 0:
3021
3133
  input = _arguments.length > 0 && _arguments[0] !== void 0 ? _arguments[0] : [], _ref = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, _ref_maxResults = _ref.maxResults, maxResults = _ref_maxResults === void 0 ? Number.POSITIVE_INFINITY : _ref_maxResults;
@@ -3150,24 +3262,165 @@ function _unsupported_iterable_to_array$3(o, minLen) {
3150
3262
  if (n === "Map" || n === "Set") return Array.from(n);
3151
3263
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$3(o, minLen);
3152
3264
  }
3153
- function getCartesianProduct() {
3154
- var input = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
3155
- var result = [];
3156
- Object.entries(input).forEach(function(param) {
3157
- var _param = _sliced_to_array(param, 2), key = _param[0], values = _param[1];
3158
- result = values.flatMap(function(value) {
3159
- if (result.length === 0) {
3265
+ function _ts_generator$2(thisArg, body) {
3266
+ var f, y, t, g, _ = {
3267
+ label: 0,
3268
+ sent: function() {
3269
+ if (t[0] & 1) throw t[1];
3270
+ return t[1];
3271
+ },
3272
+ trys: [],
3273
+ ops: []
3274
+ };
3275
+ return g = {
3276
+ next: verb(0),
3277
+ "throw": verb(1),
3278
+ "return": verb(2)
3279
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
3280
+ return this;
3281
+ }), g;
3282
+ function verb(n) {
3283
+ return function(v) {
3284
+ return step([
3285
+ n,
3286
+ v
3287
+ ]);
3288
+ };
3289
+ }
3290
+ function step(op) {
3291
+ if (f) throw new TypeError("Generator is already executing.");
3292
+ while(_)try {
3293
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
3294
+ if (y = 0, t) op = [
3295
+ op[0] & 2,
3296
+ t.value
3297
+ ];
3298
+ switch(op[0]){
3299
+ case 0:
3300
+ case 1:
3301
+ t = op;
3302
+ break;
3303
+ case 4:
3304
+ _.label++;
3305
+ return {
3306
+ value: op[1],
3307
+ done: false
3308
+ };
3309
+ case 5:
3310
+ _.label++;
3311
+ y = op[1];
3312
+ op = [
3313
+ 0
3314
+ ];
3315
+ continue;
3316
+ case 7:
3317
+ op = _.ops.pop();
3318
+ _.trys.pop();
3319
+ continue;
3320
+ default:
3321
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
3322
+ _ = 0;
3323
+ continue;
3324
+ }
3325
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
3326
+ _.label = op[1];
3327
+ break;
3328
+ }
3329
+ if (op[0] === 6 && _.label < t[1]) {
3330
+ _.label = t[1];
3331
+ t = op;
3332
+ break;
3333
+ }
3334
+ if (t && _.label < t[2]) {
3335
+ _.label = t[2];
3336
+ _.ops.push(op);
3337
+ break;
3338
+ }
3339
+ if (t[2]) _.ops.pop();
3340
+ _.trys.pop();
3341
+ continue;
3342
+ }
3343
+ op = body.call(thisArg, _);
3344
+ } catch (e) {
3345
+ op = [
3346
+ 6,
3347
+ e
3348
+ ];
3349
+ y = 0;
3350
+ } finally{
3351
+ f = t = 0;
3352
+ }
3353
+ if (op[0] & 5) throw op[1];
3354
+ return {
3355
+ value: op[0] ? op[1] : void 0,
3356
+ done: true
3357
+ };
3358
+ }
3359
+ }
3360
+ function cartesianProductGenerator() {
3361
+ var input, entries, stack, item, index, partial, _entries_index, key, values, i;
3362
+ var _arguments = arguments;
3363
+ return _ts_generator$2(this, function(_state) {
3364
+ switch(_state.label){
3365
+ case 0:
3366
+ input = _arguments.length > 0 && _arguments[0] !== void 0 ? _arguments[0] : {};
3367
+ entries = Object.entries(input);
3368
+ if (entries.length === 0) return [
3369
+ 2
3370
+ ];
3371
+ // Use iterative stack-based approach to yield results one at a time
3372
+ // This avoids recursion overhead while maintaining lazy evaluation
3373
+ stack = [
3374
+ {
3375
+ index: entries.length - 1,
3376
+ partial: {}
3377
+ }
3378
+ ];
3379
+ _state.label = 1;
3380
+ case 1:
3381
+ if (!(stack.length > 0)) return [
3382
+ 3,
3383
+ 4
3384
+ ];
3385
+ item = stack.pop();
3386
+ if (!item) return [
3387
+ 3,
3388
+ 4
3389
+ ];
3390
+ index = item.index, partial = item.partial;
3391
+ if (!(index < 0)) return [
3392
+ 3,
3393
+ 3
3394
+ ];
3160
3395
  return [
3161
- _define_property({}, key, value)
3396
+ 4,
3397
+ partial
3162
3398
  ];
3163
- } else {
3164
- return result.map(function(memo) {
3165
- return Object.assign(Object.assign({}, memo), _define_property({}, key, value));
3166
- });
3167
- }
3168
- });
3399
+ case 2:
3400
+ _state.sent();
3401
+ return [
3402
+ 3,
3403
+ 1
3404
+ ];
3405
+ case 3:
3406
+ _entries_index = _sliced_to_array(entries[index], 2), key = _entries_index[0], values = _entries_index[1];
3407
+ // Push in reverse order so we process in correct order
3408
+ for(i = values.length - 1; i >= 0; i--){
3409
+ stack.push({
3410
+ index: index - 1,
3411
+ partial: Object.assign(Object.assign({}, partial), _define_property({}, key, values[i]))
3412
+ });
3413
+ }
3414
+ return [
3415
+ 3,
3416
+ 1
3417
+ ];
3418
+ case 4:
3419
+ return [
3420
+ 2
3421
+ ];
3422
+ }
3169
3423
  });
3170
- return result;
3171
3424
  }
3172
3425
 
3173
3426
  function _array_like_to_array$2(arr, len) {
@@ -3178,7 +3431,7 @@ function _array_like_to_array$2(arr, len) {
3178
3431
  function _array_without_holes$2(arr) {
3179
3432
  if (Array.isArray(arr)) return _array_like_to_array$2(arr);
3180
3433
  }
3181
- function _instanceof(left, right) {
3434
+ function _instanceof$1(left, right) {
3182
3435
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
3183
3436
  return !!right[Symbol.hasInstance](left);
3184
3437
  } else {
@@ -3202,21 +3455,130 @@ function _unsupported_iterable_to_array$2(o, minLen) {
3202
3455
  if (n === "Map" || n === "Set") return Array.from(n);
3203
3456
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
3204
3457
  }
3205
- var ESCAPED_COLON = ":".charCodeAt(0).toString(16).toUpperCase();
3206
- // Square brackets need to be escaped, but eslint has a problem with that.
3207
- /* eslint-disable-next-line no-useless-escape */ var SPECIAL_CHARACTERS_RE = /[ !"#$%&'()\[\]{|}<>*+,./;=?@^`~\\]/;
3208
- /**
3209
- * Escapes special characters used by CSS selector items.
3210
- */ function sanitizeSelectorItem() {
3211
- var input = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
3212
- // This should not be necessary, but just to be sure, let's keep the legacy sanitizer in place, for backwards compatibility.
3213
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3214
- return CSS ? CSS.escape(input) : legacySanitizeSelectorItem(input);
3215
- }
3216
- /**
3217
- * Legacy version of escaping utility, originally used for IE11-. Should
3218
- * probably be replaced by a polyfill:
3219
- * https://github.com/mathiasbynens/CSS.escape
3458
+ function _ts_generator$1(thisArg, body) {
3459
+ var f, y, t, g, _ = {
3460
+ label: 0,
3461
+ sent: function() {
3462
+ if (t[0] & 1) throw t[1];
3463
+ return t[1];
3464
+ },
3465
+ trys: [],
3466
+ ops: []
3467
+ };
3468
+ return g = {
3469
+ next: verb(0),
3470
+ "throw": verb(1),
3471
+ "return": verb(2)
3472
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
3473
+ return this;
3474
+ }), g;
3475
+ function verb(n) {
3476
+ return function(v) {
3477
+ return step([
3478
+ n,
3479
+ v
3480
+ ]);
3481
+ };
3482
+ }
3483
+ function step(op) {
3484
+ if (f) throw new TypeError("Generator is already executing.");
3485
+ while(_)try {
3486
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
3487
+ if (y = 0, t) op = [
3488
+ op[0] & 2,
3489
+ t.value
3490
+ ];
3491
+ switch(op[0]){
3492
+ case 0:
3493
+ case 1:
3494
+ t = op;
3495
+ break;
3496
+ case 4:
3497
+ _.label++;
3498
+ return {
3499
+ value: op[1],
3500
+ done: false
3501
+ };
3502
+ case 5:
3503
+ _.label++;
3504
+ y = op[1];
3505
+ op = [
3506
+ 0
3507
+ ];
3508
+ continue;
3509
+ case 7:
3510
+ op = _.ops.pop();
3511
+ _.trys.pop();
3512
+ continue;
3513
+ default:
3514
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
3515
+ _ = 0;
3516
+ continue;
3517
+ }
3518
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
3519
+ _.label = op[1];
3520
+ break;
3521
+ }
3522
+ if (op[0] === 6 && _.label < t[1]) {
3523
+ _.label = t[1];
3524
+ t = op;
3525
+ break;
3526
+ }
3527
+ if (t && _.label < t[2]) {
3528
+ _.label = t[2];
3529
+ _.ops.push(op);
3530
+ break;
3531
+ }
3532
+ if (t[2]) _.ops.pop();
3533
+ _.trys.pop();
3534
+ continue;
3535
+ }
3536
+ op = body.call(thisArg, _);
3537
+ } catch (e) {
3538
+ op = [
3539
+ 6,
3540
+ e
3541
+ ];
3542
+ y = 0;
3543
+ } finally{
3544
+ f = t = 0;
3545
+ }
3546
+ if (op[0] & 5) throw op[1];
3547
+ return {
3548
+ value: op[0] ? op[1] : void 0,
3549
+ done: true
3550
+ };
3551
+ }
3552
+ }
3553
+ function _ts_values(o) {
3554
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3555
+ if (m) return m.call(o);
3556
+ if (o && typeof o.length === "number") return {
3557
+ next: function() {
3558
+ if (o && i >= o.length) o = void 0;
3559
+ return {
3560
+ value: o && o[i++],
3561
+ done: !o
3562
+ };
3563
+ }
3564
+ };
3565
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
3566
+ }
3567
+ var ESCAPED_COLON = ":".charCodeAt(0).toString(16).toUpperCase();
3568
+ // Square brackets need to be escaped, but eslint has a problem with that.
3569
+ /* eslint-disable-next-line no-useless-escape */ var SPECIAL_CHARACTERS_RE = /[ !"#$%&'()\[\]{|}<>*+,./;=?@^`~\\]/;
3570
+ /**
3571
+ * Escapes special characters used by CSS selector items.
3572
+ */ function sanitizeSelectorItem() {
3573
+ var input = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
3574
+ // This should not be necessary, but just to be sure, let's keep the legacy sanitizer in place, for backwards compatibility.
3575
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3576
+ return CSS ? CSS.escape(input) : legacySanitizeSelectorItem(input);
3577
+ }
3578
+ /**
3579
+ * Legacy version of escaping utility, originally used for IE11-. Should
3580
+ * probably be replaced by a polyfill:
3581
+ * https://github.com/mathiasbynens/CSS.escape
3220
3582
  */ function legacySanitizeSelectorItem() {
3221
3583
  var input = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
3222
3584
  return input.split("").map(function(character) {
@@ -3249,14 +3611,14 @@ var ELEMENT_SELECTOR_TYPE_GETTERS = {
3249
3611
  };
3250
3612
  /**
3251
3613
  * Creates selector of given type for single element.
3252
- */ function getElementSelectorsByType(element, selectorType) {
3253
- return ELEMENT_SELECTOR_TYPE_GETTERS[selectorType](element);
3614
+ */ function getElementSelectorsByType(element, selectorType, options) {
3615
+ return ELEMENT_SELECTOR_TYPE_GETTERS[selectorType](element, options);
3254
3616
  }
3255
3617
  /**
3256
3618
  * Returns list of selectors of given type for the element.
3257
- */ function getSelectorsByType(elements, selector_type) {
3619
+ */ function getSelectorsByType(elements, selector_type, options) {
3258
3620
  var getter = SELECTOR_TYPE_GETTERS[selector_type];
3259
- return getter(elements);
3621
+ return getter(elements, options);
3260
3622
  }
3261
3623
  /**
3262
3624
  * Remove blacklisted selectors from list.
@@ -3283,12 +3645,81 @@ var ELEMENT_SELECTOR_TYPE_GETTERS = {
3283
3645
  });
3284
3646
  }
3285
3647
  /**
3286
- * Returns list of unique selectors applicable to given element.
3287
- */ function getAllSelectors(elements, root, options) {
3288
- var selectors_list = getSelectorsList(elements, options);
3289
- var type_combinations = getTypeCombinations(selectors_list, options);
3290
- var all_selectors = flattenArray(type_combinations);
3291
- return _to_consumable_array$2(new Set(all_selectors));
3648
+ * Yields list of unique selectors applicable to given element.
3649
+ */ function allSelectorsGenerator(elements, options) {
3650
+ var yieldedSelectors, selectors_list, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, selector, err;
3651
+ return _ts_generator$1(this, function(_state) {
3652
+ switch(_state.label){
3653
+ case 0:
3654
+ yieldedSelectors = new Set();
3655
+ selectors_list = getSelectorsList(elements, options);
3656
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3657
+ _state.label = 1;
3658
+ case 1:
3659
+ _state.trys.push([
3660
+ 1,
3661
+ 6,
3662
+ 7,
3663
+ 8
3664
+ ]);
3665
+ _iterator = selectorTypeCombinationsGenerator(selectors_list, options)[Symbol.iterator]();
3666
+ _state.label = 2;
3667
+ case 2:
3668
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
3669
+ 3,
3670
+ 5
3671
+ ];
3672
+ selector = _step.value;
3673
+ if (!!yieldedSelectors.has(selector)) return [
3674
+ 3,
3675
+ 4
3676
+ ];
3677
+ yieldedSelectors.add(selector);
3678
+ return [
3679
+ 4,
3680
+ selector
3681
+ ];
3682
+ case 3:
3683
+ _state.sent();
3684
+ _state.label = 4;
3685
+ case 4:
3686
+ _iteratorNormalCompletion = true;
3687
+ return [
3688
+ 3,
3689
+ 2
3690
+ ];
3691
+ case 5:
3692
+ return [
3693
+ 3,
3694
+ 8
3695
+ ];
3696
+ case 6:
3697
+ err = _state.sent();
3698
+ _didIteratorError = true;
3699
+ _iteratorError = err;
3700
+ return [
3701
+ 3,
3702
+ 8
3703
+ ];
3704
+ case 7:
3705
+ try {
3706
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3707
+ _iterator.return();
3708
+ }
3709
+ } finally{
3710
+ if (_didIteratorError) {
3711
+ throw _iteratorError;
3712
+ }
3713
+ }
3714
+ return [
3715
+ 7
3716
+ ];
3717
+ case 8:
3718
+ return [
3719
+ 2
3720
+ ];
3721
+ }
3722
+ });
3292
3723
  }
3293
3724
  /**
3294
3725
  * Creates object containing all selector types and their potential values.
@@ -3297,12 +3728,14 @@ var ELEMENT_SELECTOR_TYPE_GETTERS = {
3297
3728
  var matchBlacklist = createPatternMatcher(blacklist);
3298
3729
  var matchWhitelist = createPatternMatcher(whitelist);
3299
3730
  var reducer = function(data, selector_type) {
3300
- var selectors_by_type = getSelectorsByType(elements, selector_type);
3731
+ var selectors_by_type = getSelectorsByType(elements, selector_type, options);
3301
3732
  var filtered_selectors = filterSelectors(selectors_by_type, matchBlacklist, matchWhitelist);
3302
3733
  var found_selectors = orderSelectors(filtered_selectors, matchWhitelist);
3303
- data[selector_type] = combineWithinSelector ? getPowerSet(found_selectors, {
3734
+ // Use Array.from with a length limit to avoid materializing huge power sets
3735
+ // This provides lazy evaluation while respecting maxCombinations
3736
+ data[selector_type] = combineWithinSelector ? Array.from(powerSetGenerator(found_selectors, {
3304
3737
  maxResults: maxCombinations
3305
- }) : found_selectors.map(function(item) {
3738
+ })) : found_selectors.map(function(item) {
3306
3739
  return [
3307
3740
  item
3308
3741
  ];
@@ -3345,25 +3778,167 @@ var ELEMENT_SELECTOR_TYPE_GETTERS = {
3345
3778
  }
3346
3779
  /**
3347
3780
  * Generates list of combined CSS selectors.
3348
- */ function getTypeCombinations(selectors_list, options) {
3349
- return combineSelectorTypes(options).map(function(item) {
3350
- return constructSelectors(item, selectors_list);
3351
- }).filter(function(item) {
3352
- return item.length > 0;
3781
+ */ function selectorTypeCombinationsGenerator(selectors_list, options) {
3782
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, err;
3783
+ return _ts_generator$1(this, function(_state) {
3784
+ switch(_state.label){
3785
+ case 0:
3786
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3787
+ _state.label = 1;
3788
+ case 1:
3789
+ _state.trys.push([
3790
+ 1,
3791
+ 6,
3792
+ 7,
3793
+ 8
3794
+ ]);
3795
+ _iterator = combineSelectorTypes(options)[Symbol.iterator]();
3796
+ _state.label = 2;
3797
+ case 2:
3798
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
3799
+ 3,
3800
+ 5
3801
+ ];
3802
+ item = _step.value;
3803
+ return [
3804
+ 5,
3805
+ _ts_values(constructedSelectorsGenerator(item, selectors_list))
3806
+ ];
3807
+ case 3:
3808
+ _state.sent();
3809
+ _state.label = 4;
3810
+ case 4:
3811
+ _iteratorNormalCompletion = true;
3812
+ return [
3813
+ 3,
3814
+ 2
3815
+ ];
3816
+ case 5:
3817
+ return [
3818
+ 3,
3819
+ 8
3820
+ ];
3821
+ case 6:
3822
+ err = _state.sent();
3823
+ _didIteratorError = true;
3824
+ _iteratorError = err;
3825
+ return [
3826
+ 3,
3827
+ 8
3828
+ ];
3829
+ case 7:
3830
+ try {
3831
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3832
+ _iterator.return();
3833
+ }
3834
+ } finally{
3835
+ if (_didIteratorError) {
3836
+ throw _iteratorError;
3837
+ }
3838
+ }
3839
+ return [
3840
+ 7
3841
+ ];
3842
+ case 8:
3843
+ return [
3844
+ 2
3845
+ ];
3846
+ }
3353
3847
  });
3354
3848
  }
3355
3849
  /**
3356
3850
  * Generates all variations of possible selectors from provided data.
3357
- */ function constructSelectors(selector_types, selectors_by_type) {
3358
- var data = {};
3359
- selector_types.forEach(function(selector_type) {
3360
- var selector_variants = selectors_by_type[selector_type];
3361
- if (selector_variants && selector_variants.length > 0) {
3362
- data[selector_type] = selector_variants;
3851
+ */ function constructedSelectorsGenerator(selector_types, selectors_by_type) {
3852
+ var data, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, selector_type, selector_variants, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, combination, err;
3853
+ return _ts_generator$1(this, function(_state) {
3854
+ switch(_state.label){
3855
+ case 0:
3856
+ data = {};
3857
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3858
+ try {
3859
+ for(_iterator = selector_types[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3860
+ selector_type = _step.value;
3861
+ selector_variants = selectors_by_type[selector_type];
3862
+ if (selector_variants && selector_variants.length > 0) {
3863
+ data[selector_type] = selector_variants;
3864
+ }
3865
+ }
3866
+ } catch (err) {
3867
+ _didIteratorError = true;
3868
+ _iteratorError = err;
3869
+ } finally{
3870
+ try {
3871
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3872
+ _iterator.return();
3873
+ }
3874
+ } finally{
3875
+ if (_didIteratorError) {
3876
+ throw _iteratorError;
3877
+ }
3878
+ }
3879
+ }
3880
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
3881
+ _state.label = 1;
3882
+ case 1:
3883
+ _state.trys.push([
3884
+ 1,
3885
+ 6,
3886
+ 7,
3887
+ 8
3888
+ ]);
3889
+ _iterator1 = cartesianProductGenerator(data)[Symbol.iterator]();
3890
+ _state.label = 2;
3891
+ case 2:
3892
+ if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
3893
+ 3,
3894
+ 5
3895
+ ];
3896
+ combination = _step1.value;
3897
+ return [
3898
+ 4,
3899
+ constructSelector(combination)
3900
+ ];
3901
+ case 3:
3902
+ _state.sent();
3903
+ _state.label = 4;
3904
+ case 4:
3905
+ _iteratorNormalCompletion1 = true;
3906
+ return [
3907
+ 3,
3908
+ 2
3909
+ ];
3910
+ case 5:
3911
+ return [
3912
+ 3,
3913
+ 8
3914
+ ];
3915
+ case 6:
3916
+ err = _state.sent();
3917
+ _didIteratorError1 = true;
3918
+ _iteratorError1 = err;
3919
+ return [
3920
+ 3,
3921
+ 8
3922
+ ];
3923
+ case 7:
3924
+ try {
3925
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
3926
+ _iterator1.return();
3927
+ }
3928
+ } finally{
3929
+ if (_didIteratorError1) {
3930
+ throw _iteratorError1;
3931
+ }
3932
+ }
3933
+ return [
3934
+ 7
3935
+ ];
3936
+ case 8:
3937
+ return [
3938
+ 2
3939
+ ];
3363
3940
  }
3364
3941
  });
3365
- var combinations = getCartesianProduct(data);
3366
- return combinations.map(constructSelector);
3367
3942
  }
3368
3943
  /**
3369
3944
  * Creates selector for given selector type. Combines several parts if needed.
@@ -3396,86 +3971,416 @@ var ELEMENT_SELECTOR_TYPE_GETTERS = {
3396
3971
  /**
3397
3972
  * Generates a list of selector candidates that can potentially match target
3398
3973
  * element.
3399
- */ function generateCandidates(selectors, rootSelector) {
3400
- return rootSelector === "" ? selectors : generateCandidateCombinations(selectors, rootSelector);
3401
- }
3402
- /**
3403
- * Tries to find a unique CSS selector for element within given parent.
3404
- */ function getSelectorWithinRoot(elements, root) {
3405
- var rootSelector = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "", options = arguments.length > 3 ? arguments[3] : void 0;
3406
- var elementSelectors = getAllSelectors(elements, root, options);
3407
- var selectorCandidates = generateCandidates(elementSelectors, rootSelector);
3408
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3409
- try {
3410
- for(var _iterator = selectorCandidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3411
- var candidateSelector = _step.value;
3412
- if (testSelector(elements, candidateSelector, root)) {
3413
- return candidateSelector;
3414
- }
3415
- }
3416
- } catch (err) {
3417
- _didIteratorError = true;
3418
- _iteratorError = err;
3419
- } finally{
3420
- try {
3421
- if (!_iteratorNormalCompletion && _iterator.return != null) {
3422
- _iterator.return();
3423
- }
3424
- } finally{
3425
- if (_didIteratorError) {
3426
- throw _iteratorError;
3427
- }
3428
- }
3429
- }
3430
- return null;
3431
- }
3432
- /**
3433
- * Climbs through parents of the element and tries to find the one that is
3434
- * identifiable by unique CSS selector.
3435
- */ function getClosestIdentifiableParent(elements, root) {
3436
- var rootSelector = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "", options = arguments.length > 3 ? arguments[3] : void 0;
3437
- if (elements.length === 0) {
3438
- return null;
3439
- }
3440
- var candidatesList = [
3441
- elements.length > 1 ? elements : []
3442
- ].concat(_to_consumable_array$2(getParents(elements, root).map(function(element) {
3443
- return [
3444
- element
3445
- ];
3446
- })));
3447
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3448
- try {
3449
- for(var _iterator = candidatesList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3450
- var currentElements = _step.value;
3451
- var result = getSelectorWithinRoot(currentElements, root, rootSelector, options);
3452
- if (result) {
3453
- return {
3454
- foundElements: currentElements,
3455
- selector: result
3456
- };
3457
- }
3974
+ */ function candidatesGenerator(selectors, rootSelector) {
3975
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, selector, err;
3976
+ return _ts_generator$1(this, function(_state) {
3977
+ switch(_state.label){
3978
+ case 0:
3979
+ if (!(rootSelector === "")) return [
3980
+ 3,
3981
+ 2
3982
+ ];
3983
+ return [
3984
+ 5,
3985
+ _ts_values(selectors)
3986
+ ];
3987
+ case 1:
3988
+ _state.sent();
3989
+ return [
3990
+ 3,
3991
+ 10
3992
+ ];
3993
+ case 2:
3994
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3995
+ _state.label = 3;
3996
+ case 3:
3997
+ _state.trys.push([
3998
+ 3,
3999
+ 8,
4000
+ 9,
4001
+ 10
4002
+ ]);
4003
+ _iterator = selectors[Symbol.iterator]();
4004
+ _state.label = 4;
4005
+ case 4:
4006
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
4007
+ 3,
4008
+ 7
4009
+ ];
4010
+ selector = _step.value;
4011
+ return [
4012
+ 5,
4013
+ _ts_values(generateCandidateCombinations([
4014
+ selector
4015
+ ], rootSelector))
4016
+ ];
4017
+ case 5:
4018
+ _state.sent();
4019
+ _state.label = 6;
4020
+ case 6:
4021
+ _iteratorNormalCompletion = true;
4022
+ return [
4023
+ 3,
4024
+ 4
4025
+ ];
4026
+ case 7:
4027
+ return [
4028
+ 3,
4029
+ 10
4030
+ ];
4031
+ case 8:
4032
+ err = _state.sent();
4033
+ _didIteratorError = true;
4034
+ _iteratorError = err;
4035
+ return [
4036
+ 3,
4037
+ 10
4038
+ ];
4039
+ case 9:
4040
+ try {
4041
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
4042
+ _iterator.return();
4043
+ }
4044
+ } finally{
4045
+ if (_didIteratorError) {
4046
+ throw _iteratorError;
4047
+ }
4048
+ }
4049
+ return [
4050
+ 7
4051
+ ];
4052
+ case 10:
4053
+ return [
4054
+ 2
4055
+ ];
3458
4056
  }
3459
- } catch (err) {
3460
- _didIteratorError = true;
3461
- _iteratorError = err;
3462
- } finally{
3463
- try {
3464
- if (!_iteratorNormalCompletion && _iterator.return != null) {
3465
- _iterator.return();
3466
- }
3467
- } finally{
3468
- if (_didIteratorError) {
3469
- throw _iteratorError;
3470
- }
4057
+ });
4058
+ }
4059
+ /**
4060
+ * Tries to find unique CSS selectors for element within given parent.
4061
+ */ function selectorWithinRootGenerator(elements, root) {
4062
+ var rootSelector, options, elementSelectorsIterator, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, candidateSelector, err;
4063
+ var _arguments = arguments;
4064
+ return _ts_generator$1(this, function(_state) {
4065
+ switch(_state.label){
4066
+ case 0:
4067
+ rootSelector = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : "", options = _arguments.length > 3 ? _arguments[3] : void 0;
4068
+ elementSelectorsIterator = allSelectorsGenerator(elements, options);
4069
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
4070
+ _state.label = 1;
4071
+ case 1:
4072
+ _state.trys.push([
4073
+ 1,
4074
+ 6,
4075
+ 7,
4076
+ 8
4077
+ ]);
4078
+ _iterator = candidatesGenerator(elementSelectorsIterator, rootSelector)[Symbol.iterator]();
4079
+ _state.label = 2;
4080
+ case 2:
4081
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
4082
+ 3,
4083
+ 5
4084
+ ];
4085
+ candidateSelector = _step.value;
4086
+ if (!testSelector(elements, candidateSelector, root)) return [
4087
+ 3,
4088
+ 4
4089
+ ];
4090
+ return [
4091
+ 4,
4092
+ candidateSelector
4093
+ ];
4094
+ case 3:
4095
+ _state.sent();
4096
+ _state.label = 4;
4097
+ case 4:
4098
+ _iteratorNormalCompletion = true;
4099
+ return [
4100
+ 3,
4101
+ 2
4102
+ ];
4103
+ case 5:
4104
+ return [
4105
+ 3,
4106
+ 8
4107
+ ];
4108
+ case 6:
4109
+ err = _state.sent();
4110
+ _didIteratorError = true;
4111
+ _iteratorError = err;
4112
+ return [
4113
+ 3,
4114
+ 8
4115
+ ];
4116
+ case 7:
4117
+ try {
4118
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
4119
+ _iterator.return();
4120
+ }
4121
+ } finally{
4122
+ if (_didIteratorError) {
4123
+ throw _iteratorError;
4124
+ }
4125
+ }
4126
+ return [
4127
+ 7
4128
+ ];
4129
+ case 8:
4130
+ // TODO remove the `undefined` return value when the main function is rewritten to use the generator directly
4131
+ return [
4132
+ 2
4133
+ ];
3471
4134
  }
3472
- }
3473
- return null;
4135
+ });
4136
+ }
4137
+ /**
4138
+ * Climbs through parents of the element and finds the ones that are identifiable by unique CSS selector.
4139
+ */ function closestIdentifiableParentGenerator(elements, root) {
4140
+ var rootSelector, options, candidatesList, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, currentElements, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, selectorWithinRoot, err, err;
4141
+ var _arguments = arguments;
4142
+ return _ts_generator$1(this, function(_state) {
4143
+ switch(_state.label){
4144
+ case 0:
4145
+ rootSelector = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : "", options = _arguments.length > 3 ? _arguments[3] : void 0;
4146
+ if (elements.length === 0) {
4147
+ return [
4148
+ 2,
4149
+ null
4150
+ ];
4151
+ }
4152
+ candidatesList = [
4153
+ elements.length > 1 ? elements : []
4154
+ ].concat(_to_consumable_array$2(getParents(elements, root).map(function(element) {
4155
+ return [
4156
+ element
4157
+ ];
4158
+ })));
4159
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
4160
+ _state.label = 1;
4161
+ case 1:
4162
+ _state.trys.push([
4163
+ 1,
4164
+ 12,
4165
+ 13,
4166
+ 14
4167
+ ]);
4168
+ _iterator = candidatesList[Symbol.iterator]();
4169
+ _state.label = 2;
4170
+ case 2:
4171
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
4172
+ 3,
4173
+ 11
4174
+ ];
4175
+ currentElements = _step.value;
4176
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
4177
+ _state.label = 3;
4178
+ case 3:
4179
+ _state.trys.push([
4180
+ 3,
4181
+ 8,
4182
+ 9,
4183
+ 10
4184
+ ]);
4185
+ _iterator1 = selectorWithinRootGenerator(currentElements, root, rootSelector, options)[Symbol.iterator]();
4186
+ _state.label = 4;
4187
+ case 4:
4188
+ if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
4189
+ 3,
4190
+ 7
4191
+ ];
4192
+ selectorWithinRoot = _step1.value;
4193
+ return [
4194
+ 4,
4195
+ {
4196
+ foundElements: currentElements,
4197
+ selector: selectorWithinRoot
4198
+ }
4199
+ ];
4200
+ case 5:
4201
+ _state.sent();
4202
+ _state.label = 6;
4203
+ case 6:
4204
+ _iteratorNormalCompletion1 = true;
4205
+ return [
4206
+ 3,
4207
+ 4
4208
+ ];
4209
+ case 7:
4210
+ return [
4211
+ 3,
4212
+ 10
4213
+ ];
4214
+ case 8:
4215
+ err = _state.sent();
4216
+ _didIteratorError1 = true;
4217
+ _iteratorError1 = err;
4218
+ return [
4219
+ 3,
4220
+ 10
4221
+ ];
4222
+ case 9:
4223
+ try {
4224
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
4225
+ _iterator1.return();
4226
+ }
4227
+ } finally{
4228
+ if (_didIteratorError1) {
4229
+ throw _iteratorError1;
4230
+ }
4231
+ }
4232
+ return [
4233
+ 7
4234
+ ];
4235
+ case 10:
4236
+ _iteratorNormalCompletion = true;
4237
+ return [
4238
+ 3,
4239
+ 2
4240
+ ];
4241
+ case 11:
4242
+ return [
4243
+ 3,
4244
+ 14
4245
+ ];
4246
+ case 12:
4247
+ err = _state.sent();
4248
+ _didIteratorError = true;
4249
+ _iteratorError = err;
4250
+ return [
4251
+ 3,
4252
+ 14
4253
+ ];
4254
+ case 13:
4255
+ try {
4256
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
4257
+ _iterator.return();
4258
+ }
4259
+ } finally{
4260
+ if (_didIteratorError) {
4261
+ throw _iteratorError;
4262
+ }
4263
+ }
4264
+ return [
4265
+ 7
4266
+ ];
4267
+ case 14:
4268
+ return [
4269
+ 2
4270
+ ];
4271
+ }
4272
+ });
4273
+ }
4274
+ /**
4275
+ * Recursively travels through parents, finds the ones that are identifiable and then tries to find a unique selector within that context.
4276
+ */ function selectorGenerator(param) {
4277
+ var elements, root, _param_rootSelector, rootSelector, options, currentRoot, partialSelector, shouldContinue, foundAny, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, foundElements, selector, err;
4278
+ return _ts_generator$1(this, function(_state) {
4279
+ switch(_state.label){
4280
+ case 0:
4281
+ elements = param.elements, root = param.root, _param_rootSelector = param.rootSelector, rootSelector = _param_rootSelector === void 0 ? "" : _param_rootSelector, options = param.options;
4282
+ currentRoot = root;
4283
+ partialSelector = rootSelector;
4284
+ shouldContinue = true;
4285
+ _state.label = 1;
4286
+ case 1:
4287
+ if (!shouldContinue) return [
4288
+ 3,
4289
+ 11
4290
+ ];
4291
+ foundAny = false;
4292
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
4293
+ _state.label = 2;
4294
+ case 2:
4295
+ _state.trys.push([
4296
+ 2,
4297
+ 8,
4298
+ 9,
4299
+ 10
4300
+ ]);
4301
+ _iterator = closestIdentifiableParentGenerator(elements, currentRoot, partialSelector, options)[Symbol.iterator]();
4302
+ _state.label = 3;
4303
+ case 3:
4304
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
4305
+ 3,
4306
+ 7
4307
+ ];
4308
+ item = _step.value;
4309
+ foundElements = item.foundElements, selector = item.selector;
4310
+ foundAny = true;
4311
+ if (!testSelector(elements, selector, root)) return [
4312
+ 3,
4313
+ 5
4314
+ ];
4315
+ return [
4316
+ 4,
4317
+ selector
4318
+ ];
4319
+ case 4:
4320
+ _state.sent();
4321
+ return [
4322
+ 3,
4323
+ 6
4324
+ ];
4325
+ case 5:
4326
+ // First non-matching selector - use its parent for next iteration
4327
+ currentRoot = foundElements[0];
4328
+ partialSelector = selector;
4329
+ return [
4330
+ 3,
4331
+ 7
4332
+ ]; // Try from this parent in next iteration
4333
+ case 6:
4334
+ _iteratorNormalCompletion = true;
4335
+ return [
4336
+ 3,
4337
+ 3
4338
+ ];
4339
+ case 7:
4340
+ return [
4341
+ 3,
4342
+ 10
4343
+ ];
4344
+ case 8:
4345
+ err = _state.sent();
4346
+ _didIteratorError = true;
4347
+ _iteratorError = err;
4348
+ return [
4349
+ 3,
4350
+ 10
4351
+ ];
4352
+ case 9:
4353
+ try {
4354
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
4355
+ _iterator.return();
4356
+ }
4357
+ } finally{
4358
+ if (_didIteratorError) {
4359
+ throw _iteratorError;
4360
+ }
4361
+ }
4362
+ return [
4363
+ 7
4364
+ ];
4365
+ case 10:
4366
+ if (!foundAny) {
4367
+ shouldContinue = false;
4368
+ }
4369
+ return [
4370
+ 3,
4371
+ 1
4372
+ ];
4373
+ case 11:
4374
+ return [
4375
+ 2
4376
+ ];
4377
+ }
4378
+ });
3474
4379
  }
3475
4380
  /**
3476
4381
  * Converts input into list of elements, removing duplicates and non-elements.
3477
4382
  */ function sanitizeSelectorNeedle(needle) {
3478
- if (_instanceof(needle, NodeList) || _instanceof(needle, HTMLCollection)) {
4383
+ if (_instanceof$1(needle, NodeList) || _instanceof$1(needle, HTMLCollection)) {
3479
4384
  needle = Array.from(needle);
3480
4385
  }
3481
4386
  var elements = (Array.isArray(needle) ? needle : [
@@ -3564,6 +4469,13 @@ function _array_like_to_array(arr, len) {
3564
4469
  function _array_without_holes(arr) {
3565
4470
  if (Array.isArray(arr)) return _array_like_to_array(arr);
3566
4471
  }
4472
+ function _instanceof(left, right) {
4473
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
4474
+ return !!right[Symbol.hasInstance](left);
4475
+ } else {
4476
+ return left instanceof right;
4477
+ }
4478
+ }
3567
4479
  function _iterable_to_array(iter) {
3568
4480
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
3569
4481
  }
@@ -3585,18 +4497,22 @@ function _unsupported_iterable_to_array(o, minLen) {
3585
4497
  * Creates fallback selector for single element.
3586
4498
  */ function getElementFallbackSelector(element, root) {
3587
4499
  var parentElements = getElementParents(element, root).reverse();
3588
- var elementsData = parentElements.map(function(element) {
4500
+ var isShadowRoot = _instanceof(root, ShadowRoot);
4501
+ var elementsData = parentElements.map(function(element, index) {
3589
4502
  var _a;
3590
4503
  var elementData = createElementData(element, [
3591
4504
  CSS_SELECTOR_TYPE.nthchild
3592
- ], OPERATOR.CHILD);
4505
+ ], // do not use child combinator for the first element in ShadowRoot
4506
+ isShadowRoot && index === 0 ? OPERATOR.NONE : OPERATOR.CHILD);
3593
4507
  ((_a = elementData.selectors.nthchild) !== null && _a !== void 0 ? _a : []).forEach(function(selectorData) {
3594
4508
  selectorData.include = true;
3595
4509
  });
3596
4510
  return elementData;
3597
4511
  });
4512
+ // Don't use :scope prefix for ShadowRoot since it doesn't work correctly
4513
+ var prefix = isShadowRoot ? "" : root ? ":scope" : ":root";
3598
4514
  return [
3599
- root ? ":scope" : ":root"
4515
+ prefix
3600
4516
  ].concat(_to_consumable_array(elementsData.map(constructElementSelector))).join("");
3601
4517
  }
3602
4518
  /**
@@ -3607,39 +4523,236 @@ function _unsupported_iterable_to_array(o, minLen) {
3607
4523
  }).join(SELECTOR_SEPARATOR);
3608
4524
  }
3609
4525
 
4526
+ function _ts_generator(thisArg, body) {
4527
+ var f, y, t, g, _ = {
4528
+ label: 0,
4529
+ sent: function() {
4530
+ if (t[0] & 1) throw t[1];
4531
+ return t[1];
4532
+ },
4533
+ trys: [],
4534
+ ops: []
4535
+ };
4536
+ return g = {
4537
+ next: verb(0),
4538
+ "throw": verb(1),
4539
+ "return": verb(2)
4540
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
4541
+ return this;
4542
+ }), g;
4543
+ function verb(n) {
4544
+ return function(v) {
4545
+ return step([
4546
+ n,
4547
+ v
4548
+ ]);
4549
+ };
4550
+ }
4551
+ function step(op) {
4552
+ if (f) throw new TypeError("Generator is already executing.");
4553
+ while(_)try {
4554
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
4555
+ if (y = 0, t) op = [
4556
+ op[0] & 2,
4557
+ t.value
4558
+ ];
4559
+ switch(op[0]){
4560
+ case 0:
4561
+ case 1:
4562
+ t = op;
4563
+ break;
4564
+ case 4:
4565
+ _.label++;
4566
+ return {
4567
+ value: op[1],
4568
+ done: false
4569
+ };
4570
+ case 5:
4571
+ _.label++;
4572
+ y = op[1];
4573
+ op = [
4574
+ 0
4575
+ ];
4576
+ continue;
4577
+ case 7:
4578
+ op = _.ops.pop();
4579
+ _.trys.pop();
4580
+ continue;
4581
+ default:
4582
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
4583
+ _ = 0;
4584
+ continue;
4585
+ }
4586
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
4587
+ _.label = op[1];
4588
+ break;
4589
+ }
4590
+ if (op[0] === 6 && _.label < t[1]) {
4591
+ _.label = t[1];
4592
+ t = op;
4593
+ break;
4594
+ }
4595
+ if (t && _.label < t[2]) {
4596
+ _.label = t[2];
4597
+ _.ops.push(op);
4598
+ break;
4599
+ }
4600
+ if (t[2]) _.ops.pop();
4601
+ _.trys.pop();
4602
+ continue;
4603
+ }
4604
+ op = body.call(thisArg, _);
4605
+ } catch (e) {
4606
+ op = [
4607
+ 6,
4608
+ e
4609
+ ];
4610
+ y = 0;
4611
+ } finally{
4612
+ f = t = 0;
4613
+ }
4614
+ if (op[0] & 5) throw op[1];
4615
+ return {
4616
+ value: op[0] ? op[1] : void 0,
4617
+ done: true
4618
+ };
4619
+ }
4620
+ }
4621
+ var __rest = undefined && undefined.__rest || function(s, e) {
4622
+ var t = {};
4623
+ for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
4624
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
4625
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
4626
+ }
4627
+ return t;
4628
+ };
3610
4629
  /**
3611
4630
  * Generates unique CSS selector for an element.
3612
4631
  */ function getCssSelector$1(needle) {
3613
4632
  var custom_options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
3614
- var _a;
3615
- var elements = sanitizeSelectorNeedle(needle);
3616
- var options = sanitizeOptions(elements[0], custom_options);
3617
- var root = (_a = options.root) !== null && _a !== void 0 ? _a : getRootNode(elements[0]);
3618
- var partialSelector = "";
3619
- var currentRoot = root;
3620
- /**
3621
- * Utility function to make subsequent calls shorter.
3622
- */ function updateIdentifiableParent() {
3623
- return getClosestIdentifiableParent(elements, currentRoot, partialSelector, options);
3624
- }
3625
- var closestIdentifiableParent = updateIdentifiableParent();
3626
- while(closestIdentifiableParent){
3627
- var foundElements = closestIdentifiableParent.foundElements, selector = closestIdentifiableParent.selector;
3628
- if (testSelector(elements, selector, root)) {
3629
- return selector;
3630
- }
3631
- currentRoot = foundElements[0];
3632
- partialSelector = selector;
3633
- closestIdentifiableParent = updateIdentifiableParent();
3634
- }
3635
- // if failed to find single selector matching all elements, try to find
3636
- // selector for each standalone element and join them together
3637
- if (elements.length > 1) {
3638
- return elements.map(function(element) {
3639
- return getCssSelector$1(element, options);
3640
- }).join(SELECTOR_SEPARATOR);
3641
- }
3642
- return getFallbackSelector(elements, options.useScope ? root : undefined);
4633
+ var options = Object.assign(Object.assign({}, custom_options), {
4634
+ maxResults: 1
4635
+ });
4636
+ var generator = cssSelectorGenerator(needle, options);
4637
+ var firstResult = generator.next();
4638
+ return firstResult.value;
4639
+ }
4640
+ /**
4641
+ * Generates unique CSS selector for an element.
4642
+ */ function cssSelectorGenerator(needle) {
4643
+ var custom_options, _a, elements, options, root, foundResults, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, selector, err, elementOptions, rootWasProvided;
4644
+ var _arguments = arguments;
4645
+ return _ts_generator(this, function(_state) {
4646
+ switch(_state.label){
4647
+ case 0:
4648
+ custom_options = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
4649
+ elements = sanitizeSelectorNeedle(needle);
4650
+ options = sanitizeOptions(elements[0], custom_options);
4651
+ root = (_a = options.root) !== null && _a !== void 0 ? _a : getRootNode(elements[0]);
4652
+ foundResults = 0;
4653
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
4654
+ _state.label = 1;
4655
+ case 1:
4656
+ _state.trys.push([
4657
+ 1,
4658
+ 6,
4659
+ 7,
4660
+ 8
4661
+ ]);
4662
+ _iterator = selectorGenerator({
4663
+ elements: elements,
4664
+ options: options,
4665
+ root: root,
4666
+ rootSelector: ""
4667
+ })[Symbol.iterator]();
4668
+ _state.label = 2;
4669
+ case 2:
4670
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
4671
+ 3,
4672
+ 5
4673
+ ];
4674
+ selector = _step.value;
4675
+ return [
4676
+ 4,
4677
+ selector
4678
+ ];
4679
+ case 3:
4680
+ _state.sent();
4681
+ foundResults++;
4682
+ if (foundResults >= options.maxResults) {
4683
+ return [
4684
+ 2
4685
+ ];
4686
+ }
4687
+ _state.label = 4;
4688
+ case 4:
4689
+ _iteratorNormalCompletion = true;
4690
+ return [
4691
+ 3,
4692
+ 2
4693
+ ];
4694
+ case 5:
4695
+ return [
4696
+ 3,
4697
+ 8
4698
+ ];
4699
+ case 6:
4700
+ err = _state.sent();
4701
+ _didIteratorError = true;
4702
+ _iteratorError = err;
4703
+ return [
4704
+ 3,
4705
+ 8
4706
+ ];
4707
+ case 7:
4708
+ try {
4709
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
4710
+ _iterator.return();
4711
+ }
4712
+ } finally{
4713
+ if (_didIteratorError) {
4714
+ throw _iteratorError;
4715
+ }
4716
+ }
4717
+ return [
4718
+ 7
4719
+ ];
4720
+ case 8:
4721
+ if (!(elements.length > 1)) return [
4722
+ 3,
4723
+ 10
4724
+ ];
4725
+ custom_options.maxResults, elementOptions = __rest(custom_options, [
4726
+ "maxResults"
4727
+ ]);
4728
+ return [
4729
+ 4,
4730
+ elements.map(function(element) {
4731
+ return getCssSelector$1(element, elementOptions);
4732
+ }).join(SELECTOR_SEPARATOR)
4733
+ ];
4734
+ case 9:
4735
+ _state.sent();
4736
+ foundResults++;
4737
+ if (foundResults >= options.maxResults) {
4738
+ return [
4739
+ 2
4740
+ ];
4741
+ }
4742
+ _state.label = 10;
4743
+ case 10:
4744
+ rootWasProvided = custom_options.root !== undefined;
4745
+ return [
4746
+ 4,
4747
+ getFallbackSelector(elements, options.useScope || rootWasProvided ? root : undefined)
4748
+ ];
4749
+ case 11:
4750
+ _state.sent();
4751
+ return [
4752
+ 2
4753
+ ];
4754
+ }
4755
+ });
3643
4756
  }
3644
4757
 
3645
4758
  function unescapeCSS(cssEscapedString) {
@@ -3775,7 +4888,7 @@ class ElementElement extends i {
3775
4888
  }
3776
4889
  }
3777
4890
  render() {
3778
- return x`
4891
+ return b`
3779
4892
  <section
3780
4893
  class="digipair-input ${this.state}"
3781
4894
  @click=${()=>[
@@ -3783,17 +4896,17 @@ class ElementElement extends i {
3783
4896
  'loaded'
3784
4897
  ].indexOf(this.state) >= 0 ? this.loadElement() : void 0}
3785
4898
  >
3786
- ${this.state === 'loaded' ? x`
4899
+ ${this.state === 'loaded' ? b`
3787
4900
  <ui5-icon name="attachment"></ui5-icon>
3788
4901
  <p>${this.label}<br />${this._content}</p>
3789
- ` : this.state === 'selecting' ? x` <ui5-icon name="locate-me"></ui5-icon>
4902
+ ` : this.state === 'selecting' ? b` <ui5-icon name="locate-me"></ui5-icon>
3790
4903
  <p>
3791
- ${this.label}${document.querySelector('.digipair-input-element-selecting') ? x`<br />$(${getCssSelector(document.querySelector('.digipair-input-element-selecting'), {
4904
+ ${this.label}${document.querySelector('.digipair-input-element-selecting') ? b`<br />$(${getCssSelector(document.querySelector('.digipair-input-element-selecting'), {
3792
4905
  blacklist: [
3793
4906
  '.digipair-input-element-selecting'
3794
4907
  ]
3795
- })})` : E}
3796
- </p>` : x` <ui5-icon name="add-document"></ui5-icon>
4908
+ })})` : A}
4909
+ </p>` : b` <ui5-icon name="add-document"></ui5-icon>
3797
4910
  <p>${this.label}</p>`}
3798
4911
  </section>
3799
4912
  `;
@@ -3853,7 +4966,7 @@ class FetchElement extends i {
3853
4966
  }));
3854
4967
  }
3855
4968
  render() {
3856
- return x``;
4969
+ return b``;
3857
4970
  }
3858
4971
  constructor(...args){
3859
4972
  super(...args);
@@ -3878,7 +4991,7 @@ FetchElement = __decorate([
3878
4991
 
3879
4992
  class HiddenElement extends i {
3880
4993
  render() {
3881
- return x``;
4994
+ return b``;
3882
4995
  }
3883
4996
  constructor(...args){
3884
4997
  super(...args);