@dso-toolkit/core 28.0.2 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/cjs/dso-alert.cjs.entry.js +2 -2
  2. package/dist/cjs/dso-attachments-counter.cjs.entry.js +2 -2
  3. package/dist/cjs/dso-autosuggest.cjs.entry.js +3 -3
  4. package/dist/cjs/dso-badge.cjs.entry.js +2 -2
  5. package/dist/cjs/dso-banner.cjs.entry.js +2 -2
  6. package/dist/cjs/dso-date-picker.cjs.entry.js +2 -2
  7. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +47 -7
  8. package/dist/cjs/dso-highlight-box.cjs.entry.js +2 -2
  9. package/dist/cjs/dso-icon.cjs.entry.js +9 -3
  10. package/dist/cjs/dso-info_3.cjs.entry.js +4 -4
  11. package/dist/cjs/dso-label.cjs.entry.js +2 -2
  12. package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
  13. package/dist/cjs/dso-map-controls.cjs.entry.js +2 -2
  14. package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
  15. package/dist/cjs/dso-ozon-content.cjs.entry.js +325 -4
  16. package/dist/cjs/dso-progress-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/dso-progress-indicator.cjs.entry.js +2 -2
  18. package/dist/cjs/dso-toolkit.cjs.js +2 -2
  19. package/dist/cjs/dso-tooltip.cjs.entry.js +55 -23
  20. package/dist/cjs/{index-be0edad4.js → index-fcdfdd38.js} +94 -34
  21. package/dist/cjs/loader.cjs.js +2 -2
  22. package/dist/cjs/{v4-14140ff3.js → v4-8e8d6fbc.js} +0 -0
  23. package/dist/collection/collection-manifest.json +1 -1
  24. package/dist/collection/components/icon/icon.css +1 -0
  25. package/dist/collection/components/icon/icon.js +2 -0
  26. package/dist/collection/components/ozon-content/ozon-content.transformer.js +11 -2
  27. package/dist/collection/icon/dso-icon-sass-function.js +2 -2
  28. package/dist/custom-elements/index.js +447 -48
  29. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  30. package/dist/dso-toolkit/p-08427682.entry.js +1 -0
  31. package/dist/dso-toolkit/p-0a7cb861.entry.js +1 -0
  32. package/dist/dso-toolkit/p-12f7e7d7.entry.js +5 -0
  33. package/dist/dso-toolkit/{p-ad90fe4d.js → p-19b890a3.js} +0 -0
  34. package/dist/dso-toolkit/p-262858dd.entry.js +1 -0
  35. package/dist/dso-toolkit/p-2c6e9460.entry.js +1 -0
  36. package/dist/dso-toolkit/p-2e7d535c.entry.js +1 -0
  37. package/dist/dso-toolkit/p-94500196.entry.js +1 -0
  38. package/dist/dso-toolkit/p-968d9e1d.entry.js +1 -0
  39. package/dist/dso-toolkit/p-a2357726.entry.js +1 -0
  40. package/dist/dso-toolkit/p-a40eeb32.js +1 -0
  41. package/dist/dso-toolkit/p-ae6209c6.entry.js +1 -0
  42. package/dist/dso-toolkit/p-b5b946de.entry.js +1 -0
  43. package/dist/dso-toolkit/p-c5acf7e2.entry.js +1 -0
  44. package/dist/dso-toolkit/p-c9c1bc8f.entry.js +1 -0
  45. package/dist/dso-toolkit/p-d748df48.entry.js +1 -0
  46. package/dist/dso-toolkit/p-dff52fb0.entry.js +1 -0
  47. package/dist/dso-toolkit/p-e4269e02.entry.js +1 -0
  48. package/dist/dso-toolkit/p-e7700d9e.entry.js +1 -0
  49. package/dist/dso-toolkit/p-eadba8c3.entry.js +1 -0
  50. package/dist/esm/dso-alert.entry.js +2 -2
  51. package/dist/esm/dso-attachments-counter.entry.js +2 -2
  52. package/dist/esm/dso-autosuggest.entry.js +3 -3
  53. package/dist/esm/dso-badge.entry.js +2 -2
  54. package/dist/esm/dso-banner.entry.js +2 -2
  55. package/dist/esm/dso-date-picker.entry.js +2 -2
  56. package/dist/esm/dso-dropdown-menu.entry.js +47 -7
  57. package/dist/esm/dso-highlight-box.entry.js +2 -2
  58. package/dist/esm/dso-icon.entry.js +9 -3
  59. package/dist/esm/dso-info_3.entry.js +4 -4
  60. package/dist/esm/dso-label.entry.js +2 -2
  61. package/dist/esm/dso-map-base-layers.entry.js +2 -2
  62. package/dist/esm/dso-map-controls.entry.js +2 -2
  63. package/dist/esm/dso-map-overlays.entry.js +2 -2
  64. package/dist/esm/dso-ozon-content.entry.js +325 -4
  65. package/dist/esm/dso-progress-bar.entry.js +2 -2
  66. package/dist/esm/dso-progress-indicator.entry.js +2 -2
  67. package/dist/esm/dso-toolkit.js +2 -2
  68. package/dist/esm/dso-tooltip.entry.js +55 -23
  69. package/dist/esm/{index-dd97a66d.js → index-61410be2.js} +94 -34
  70. package/dist/esm/loader.js +2 -2
  71. package/dist/esm/{v4-929670b7.js → v4-fa4bb814.js} +0 -0
  72. package/dist/types/components/alert/alert.template.d.ts +2 -2
  73. package/dist/types/components/attachments-counter/attachments-counter.template.d.ts +1 -1
  74. package/dist/types/components/autosuggest/autosuggest.template.d.ts +1 -1
  75. package/dist/types/components/badge/badge.template.d.ts +1 -1
  76. package/dist/types/components/banner/banner.template.d.ts +1 -1
  77. package/dist/types/components/date-picker/date-picker.template.d.ts +3 -3
  78. package/dist/types/components/dropdown-menu/dropdown-menu.template.d.ts +1 -1
  79. package/dist/types/components/highlight-box/highlight-box.template.d.ts +1 -1
  80. package/dist/types/components/icon/icon.template.d.ts +1 -1
  81. package/dist/types/components/info/info.template.d.ts +1 -1
  82. package/dist/types/components/info-button/info-button.template.d.ts +1 -1
  83. package/dist/types/components/label/label.template.d.ts +1 -1
  84. package/dist/types/components/map-controls/map-controls.template.d.ts +1 -1
  85. package/dist/types/components/ozon-content/ozon-content.template.d.ts +1 -1
  86. package/dist/types/components/ozon-content/ozon-content.transformer.d.ts +1 -0
  87. package/dist/types/components/progress-bar/progress-bar.template.d.ts +1 -1
  88. package/dist/types/components/progress-indicator/progress-indicator.template.d.ts +1 -1
  89. package/dist/types/components/selectable/selectable.template.d.ts +1 -1
  90. package/dist/types/components/tooltip/tooltip.template.d.ts +1 -1
  91. package/dist/types/stencil-public-runtime.d.ts +190 -182
  92. package/loader/index.d.ts +0 -1
  93. package/package.json +34 -32
  94. package/dist/dso-toolkit/p-060ce2e1.entry.js +0 -1
  95. package/dist/dso-toolkit/p-15d08205.entry.js +0 -1
  96. package/dist/dso-toolkit/p-20493f89.entry.js +0 -1
  97. package/dist/dso-toolkit/p-215b881c.entry.js +0 -1
  98. package/dist/dso-toolkit/p-4403a2b4.entry.js +0 -1
  99. package/dist/dso-toolkit/p-5a0a919b.entry.js +0 -1
  100. package/dist/dso-toolkit/p-636dd53f.entry.js +0 -1
  101. package/dist/dso-toolkit/p-6499f8f7.entry.js +0 -1
  102. package/dist/dso-toolkit/p-8f381afb.entry.js +0 -1
  103. package/dist/dso-toolkit/p-939f358e.entry.js +0 -1
  104. package/dist/dso-toolkit/p-9721d73f.entry.js +0 -1
  105. package/dist/dso-toolkit/p-97fb0d06.entry.js +0 -1
  106. package/dist/dso-toolkit/p-a17d1e9c.entry.js +0 -1
  107. package/dist/dso-toolkit/p-a7ca7cc4.entry.js +0 -1
  108. package/dist/dso-toolkit/p-aae83ed4.entry.js +0 -1
  109. package/dist/dso-toolkit/p-acf8e697.js +0 -1
  110. package/dist/dso-toolkit/p-f0aba566.entry.js +0 -1
  111. package/dist/dso-toolkit/p-f451295c.entry.js +0 -5
  112. package/dist/dso-toolkit/p-f7d6fd8a.entry.js +0 -1
@@ -1,8 +1,8 @@
1
- import { r as registerInstance, h } from './index-dd97a66d.js';
1
+ import { r as registerInstance, h } from './index-61410be2.js';
2
2
 
3
3
  const progressBarCss = ":host{display:block}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.progress{background-color:#fff;border:1px solid #39870c;height:16px;margin-bottom:calc(16px + 1em);position:relative}.progress .progress-bar{background-color:#39870c;color:#fff;float:left;font-size:14px;height:100%;line-height:16px;text-align:center;width:0%}.progress .progress-bar>span:not(.sr-only){color:#191919;left:0;position:absolute;top:calc(100% + 8px)}";
4
4
 
5
- const ProgressBar = class {
5
+ let ProgressBar = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  this.min = 0;
@@ -1,8 +1,8 @@
1
- import { r as registerInstance, h, H as Host } from './index-dd97a66d.js';
1
+ import { r as registerInstance, h, H as Host } from './index-61410be2.js';
2
2
 
3
3
  const progressIndicatorCss = "*,*::after,*::before{box-sizing:border-box}.dso-progress-indicator-spinner{display:inline-block;margin:0;position:relative;vertical-align:middle}span.dso-progress-indicator-label{margin-left:16px;vertical-align:middle}:host{display:block}:host([block]){align-items:center;display:flex;justify-content:center}:host([size=small]) .dso-progress-indicator-spinner,:host(:not([size=medium]):not([size=large])) .dso-progress-indicator-spinner{height:24px;width:24px}:host([size=small]):host([block]),:host(:not([size=medium]):not([size=large])):host([block]){padding:12px 16px}:host([size=medium]) .dso-progress-indicator-spinner{height:32px;width:32px}:host([size=medium]):host([block]){padding:16px}:host([size=large]) .dso-progress-indicator-spinner{height:48px;width:48px}:host([size=large]):host([block]){padding:24px 16px}";
4
4
 
5
- const Progressindicator = class {
5
+ let Progressindicator = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  }
@@ -1,7 +1,7 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-dd97a66d.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-61410be2.js';
2
2
 
3
3
  /*
4
- Stencil Client Patch Browser v2.5.2 | MIT Licensed | https://stenciljs.com
4
+ Stencil Client Patch Browser v2.9.0 | MIT Licensed | https://stenciljs.com
5
5
  */
6
6
  const patchBrowser = () => {
7
7
  const importMeta = import.meta.url;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host, g as getElement } from './index-dd97a66d.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-61410be2.js';
2
2
  import { c as clsx } from './clsx.m-071989db.js';
3
3
 
4
4
  var top = 'top';
@@ -157,17 +157,39 @@ function getBasePlacement(placement) {
157
157
  return placement.split('-')[0];
158
158
  }
159
159
 
160
- function getBoundingClientRect(element) {
160
+ // import { isHTMLElement } from './instanceOf';
161
+ function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars
162
+ includeScale) {
163
+
161
164
  var rect = element.getBoundingClientRect();
165
+ var scaleX = 1;
166
+ var scaleY = 1; // FIXME:
167
+ // `offsetWidth` returns an integer while `getBoundingClientRect`
168
+ // returns a float. This results in `scaleX` or `scaleY` being
169
+ // non-1 when it should be for elements that aren't a full pixel in
170
+ // width or height.
171
+ // if (isHTMLElement(element) && includeScale) {
172
+ // const offsetHeight = element.offsetHeight;
173
+ // const offsetWidth = element.offsetWidth;
174
+ // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
175
+ // // Fallback to 1 in case both values are `0`
176
+ // if (offsetWidth > 0) {
177
+ // scaleX = rect.width / offsetWidth || 1;
178
+ // }
179
+ // if (offsetHeight > 0) {
180
+ // scaleY = rect.height / offsetHeight || 1;
181
+ // }
182
+ // }
183
+
162
184
  return {
163
- width: rect.width,
164
- height: rect.height,
165
- top: rect.top,
166
- right: rect.right,
167
- bottom: rect.bottom,
168
- left: rect.left,
169
- x: rect.left,
170
- y: rect.top
185
+ width: rect.width / scaleX,
186
+ height: rect.height / scaleY,
187
+ top: rect.top / scaleY,
188
+ right: rect.right / scaleX,
189
+ bottom: rect.bottom / scaleY,
190
+ left: rect.left / scaleX,
191
+ x: rect.left / scaleX,
192
+ y: rect.top / scaleY
171
193
  };
172
194
  }
173
195
 
@@ -422,6 +444,10 @@ const arrow$1 = {
422
444
  requiresIfExists: ['preventOverflow']
423
445
  };
424
446
 
447
+ function getVariation(placement) {
448
+ return placement.split('-')[1];
449
+ }
450
+
425
451
  var unsetSides = {
426
452
  top: 'auto',
427
453
  right: 'auto',
@@ -448,6 +474,7 @@ function mapToStyles(_ref2) {
448
474
  var popper = _ref2.popper,
449
475
  popperRect = _ref2.popperRect,
450
476
  placement = _ref2.placement,
477
+ variation = _ref2.variation,
451
478
  offsets = _ref2.offsets,
452
479
  position = _ref2.position,
453
480
  gpuAcceleration = _ref2.gpuAcceleration,
@@ -474,7 +501,7 @@ function mapToStyles(_ref2) {
474
501
  if (offsetParent === getWindow(popper)) {
475
502
  offsetParent = getDocumentElement(popper);
476
503
 
477
- if (getComputedStyle(offsetParent).position !== 'static') {
504
+ if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
478
505
  heightProp = 'scrollHeight';
479
506
  widthProp = 'scrollWidth';
480
507
  }
@@ -483,14 +510,14 @@ function mapToStyles(_ref2) {
483
510
 
484
511
  offsetParent = offsetParent;
485
512
 
486
- if (placement === top) {
513
+ if (placement === top || (placement === left || placement === right) && variation === end) {
487
514
  sideY = bottom; // $FlowFixMe[prop-missing]
488
515
 
489
516
  y -= offsetParent[heightProp] - popperRect.height;
490
517
  y *= gpuAcceleration ? 1 : -1;
491
518
  }
492
519
 
493
- if (placement === left) {
520
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
494
521
  sideX = right; // $FlowFixMe[prop-missing]
495
522
 
496
523
  x -= offsetParent[widthProp] - popperRect.width;
@@ -505,7 +532,7 @@ function mapToStyles(_ref2) {
505
532
  if (gpuAcceleration) {
506
533
  var _Object$assign;
507
534
 
508
- return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
535
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
509
536
  }
510
537
 
511
538
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
@@ -523,6 +550,7 @@ function computeStyles(_ref4) {
523
550
 
524
551
  var commonStyles = {
525
552
  placement: getBasePlacement(state.placement),
553
+ variation: getVariation(state.placement),
526
554
  popper: state.elements.popper,
527
555
  popperRect: state.rects.popper,
528
556
  gpuAcceleration: gpuAcceleration
@@ -825,10 +853,6 @@ function getClippingRect(element, boundary, rootBoundary) {
825
853
  return clippingRect;
826
854
  }
827
855
 
828
- function getVariation(placement) {
829
- return placement.split('-')[1];
830
- }
831
-
832
856
  function computeOffsets(_ref) {
833
857
  var reference = _ref.reference,
834
858
  element = _ref.element,
@@ -914,11 +938,10 @@ function detectOverflow(state, options) {
914
938
  padding = _options$padding === void 0 ? 0 : _options$padding;
915
939
  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
916
940
  var altContext = elementContext === popper ? reference : popper;
917
- var referenceElement = state.elements.reference;
918
941
  var popperRect = state.rects.popper;
919
942
  var element = state.elements[altBoundary ? altContext : elementContext];
920
943
  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
921
- var referenceClientRect = getBoundingClientRect(referenceElement);
944
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
922
945
  var popperOffsets = computeOffsets({
923
946
  reference: referenceClientRect,
924
947
  element: popperRect,
@@ -1395,16 +1418,24 @@ function getNodeScroll(node) {
1395
1418
  }
1396
1419
  }
1397
1420
 
1421
+ function isElementScaled(element) {
1422
+ var rect = element.getBoundingClientRect();
1423
+ var scaleX = rect.width / element.offsetWidth || 1;
1424
+ var scaleY = rect.height / element.offsetHeight || 1;
1425
+ return scaleX !== 1 || scaleY !== 1;
1426
+ } // Returns the composite rect of an element relative to its offsetParent.
1398
1427
  // Composite means it takes into account transforms as well as layout.
1399
1428
 
1429
+
1400
1430
  function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
1401
1431
  if (isFixed === void 0) {
1402
1432
  isFixed = false;
1403
1433
  }
1404
1434
 
1435
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
1436
+ isHTMLElement(offsetParent) && isElementScaled(offsetParent);
1405
1437
  var documentElement = getDocumentElement(offsetParent);
1406
1438
  var rect = getBoundingClientRect(elementOrVirtualElement);
1407
- var isOffsetParentAnElement = isHTMLElement(offsetParent);
1408
1439
  var scroll = {
1409
1440
  scrollLeft: 0,
1410
1441
  scrollTop: 0
@@ -1558,7 +1589,8 @@ function popperGenerator(generatorOptions) {
1558
1589
  var isDestroyed = false;
1559
1590
  var instance = {
1560
1591
  state: state,
1561
- setOptions: function setOptions(options) {
1592
+ setOptions: function setOptions(setOptionsAction) {
1593
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
1562
1594
  cleanupModifierEffects();
1563
1595
  state.options = Object.assign({}, defaultOptions, state.options, options);
1564
1596
  state.scrollParents = {
@@ -1711,7 +1743,7 @@ const tooltipCss = ":host(:not([hidden])){display:block}*,*::after,*::before{box
1711
1743
 
1712
1744
  // Keep const in sync with $tooltip-transition-duration in @dso-toolkit/sources/tooltip.scss tooltip_root() mixin
1713
1745
  const transitionDuration = 150;
1714
- const Tooltip = class {
1746
+ let Tooltip = class {
1715
1747
  constructor(hostRef) {
1716
1748
  registerInstance(this, hostRef);
1717
1749
  /**
@@ -13,8 +13,8 @@ const doc = win.document || { head: {} };
13
13
  const plt = {
14
14
  $flags$: 0,
15
15
  $resourcesUrl$: '',
16
- jmp: h => h(),
17
- raf: h => requestAnimationFrame(h),
16
+ jmp: (h) => h(),
17
+ raf: (h) => requestAnimationFrame(h),
18
18
  ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
19
19
  rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
20
20
  ce: (eventName, opts) => new CustomEvent(eventName, opts),
@@ -24,7 +24,7 @@ const promiseResolve = (v) => Promise.resolve(v);
24
24
  const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
25
25
  try {
26
26
  new CSSStyleSheet();
27
- return typeof (new CSSStyleSheet()).replace === 'function';
27
+ return typeof new CSSStyleSheet().replace === 'function';
28
28
  }
29
29
  catch (e) { }
30
30
  return false;
@@ -113,7 +113,8 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
113
113
  rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));
114
114
  }
115
115
  if (!appliedStyles.has(scopeId)) {
116
- if (styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId}"]`))) {
116
+ if (styleContainerNode.host &&
117
+ (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId}"]`))) {
117
118
  // This is only happening on native shadow-dom, do not needs CSS var shim
118
119
  styleElm.innerHTML = style;
119
120
  }
@@ -234,7 +235,7 @@ const h = (nodeName, vnodeData, ...children) => {
234
235
  typeof classData !== 'object'
235
236
  ? classData
236
237
  : Object.keys(classData)
237
- .filter(k => classData[k])
238
+ .filter((k) => classData[k])
238
239
  .join(' ');
239
240
  }
240
241
  }
@@ -323,8 +324,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
323
324
  const classList = elm.classList;
324
325
  const oldClasses = parseClassList(oldValue);
325
326
  const newClasses = parseClassList(newValue);
326
- classList.remove(...oldClasses.filter(c => c && !newClasses.includes(c)));
327
- classList.add(...newClasses.filter(c => c && !oldClasses.includes(c)));
327
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
328
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
328
329
  }
329
330
  else if (memberName === 'style') {
330
331
  // update style attribute, css properties and values
@@ -359,7 +360,9 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
359
360
  newValue(elm);
360
361
  }
361
362
  }
362
- else if ((!isProp ) && memberName[0] === 'o' && memberName[1] === 'n') {
363
+ else if ((!isProp ) &&
364
+ memberName[0] === 'o' &&
365
+ memberName[1] === 'n') {
363
366
  // Event Handlers
364
367
  // so if the member name starts with "on" and the 3rd characters is
365
368
  // a capital letter, and it's not already a member on the element,
@@ -440,7 +443,9 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
440
443
  // if the element passed in is a shadow root, which is a document fragment
441
444
  // then we want to be adding attrs/props to the shadow root's "host" element
442
445
  // if it's not a shadow root, then we add attrs/props to the same element
443
- const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
446
+ const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host
447
+ ? newVnode.$elm$.host
448
+ : newVnode.$elm$;
444
449
  const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;
445
450
  const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
446
451
  {
@@ -484,14 +489,17 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
484
489
  }
485
490
  else if (newVNode.$flags$ & 1 /* isSlotReference */) {
486
491
  // create a slot reference node
487
- elm = newVNode.$elm$ = doc.createTextNode('');
492
+ elm = newVNode.$elm$ =
493
+ doc.createTextNode('');
488
494
  }
489
495
  else {
490
496
  if (!isSvgMode) {
491
497
  isSvgMode = newVNode.$tag$ === 'svg';
492
498
  }
493
499
  // create element
494
- elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$)
500
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */
501
+ ? 'slot-fb'
502
+ : newVNode.$tag$)
495
503
  );
496
504
  if (isSvgMode && newVNode.$tag$ === 'foreignObject') {
497
505
  isSvgMode = false;
@@ -858,7 +866,7 @@ const relocateSlotContent = (elm) => {
858
866
  // that is suppose to always represent the original content location
859
867
  if (isNodeLocatedInSlot(node, slotNameAttr)) {
860
868
  // it's possible we've already decided to relocate this node
861
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
869
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
862
870
  // made some changes to slots
863
871
  // let's make sure we also double check
864
872
  // fallbacks are correctly hidden or shown
@@ -877,9 +885,9 @@ const relocateSlotContent = (elm) => {
877
885
  });
878
886
  }
879
887
  if (node['s-sr']) {
880
- relocateNodes.map(relocateNode => {
888
+ relocateNodes.map((relocateNode) => {
881
889
  if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
882
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
890
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
883
891
  if (relocateNodeData && !relocateNode.$slotRefNode$) {
884
892
  relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
885
893
  }
@@ -887,7 +895,7 @@ const relocateSlotContent = (elm) => {
887
895
  });
888
896
  }
889
897
  }
890
- else if (!relocateNodes.some(r => r.$nodeToRelocate$ === node)) {
898
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
891
899
  // so far this element does not have a slot home, not setting slotRefNode on purpose
892
900
  // if we never find a home for this element then we'll need to hide it
893
901
  relocateNodes.push({
@@ -967,7 +975,8 @@ const renderVdom = (hostRef, renderFnResults) => {
967
975
  if (!nodeToRelocate['s-ol']) {
968
976
  // add a reference node marking this node's original location
969
977
  // keep a reference to this node for later lookups
970
- orgLocationNode = doc.createTextNode('');
978
+ orgLocationNode =
979
+ doc.createTextNode('');
971
980
  orgLocationNode['s-nr'] = nodeToRelocate;
972
981
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
973
982
  }
@@ -991,7 +1000,8 @@ const renderVdom = (hostRef, renderFnResults) => {
991
1000
  }
992
1001
  }
993
1002
  }
994
- if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {
1003
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1004
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
995
1005
  // we've checked that it's worth while to relocate
996
1006
  // since that the node to relocate
997
1007
  // has a different next sibling or parent relocated
@@ -1037,6 +1047,13 @@ const createEvent = (ref, name, flags) => {
1037
1047
  },
1038
1048
  };
1039
1049
  };
1050
+ /**
1051
+ * Helper function to create & dispatch a custom Event on a provided target
1052
+ * @param elm the target of the Event
1053
+ * @param name the name to give the custom Event
1054
+ * @param opts options for configuring a custom Event
1055
+ * @returns the custom Event
1056
+ */
1040
1057
  const emitEvent = (elm, name, opts) => {
1041
1058
  const ev = plt.ce(name, opts);
1042
1059
  elm.dispatchEvent(ev);
@@ -1044,7 +1061,7 @@ const emitEvent = (elm, name, opts) => {
1044
1061
  };
1045
1062
  const attachToAncestor = (hostRef, ancestorComponent) => {
1046
1063
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1047
- ancestorComponent['s-p'].push(new Promise(r => (hostRef.$onRenderResolve$ = r)));
1064
+ ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));
1048
1065
  }
1049
1066
  };
1050
1067
  const scheduleUpdate = (hostRef, isInitialLoad) => {
@@ -1101,7 +1118,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1101
1118
  // ok, so turns out there are some child host elements
1102
1119
  // waiting on this parent element to load
1103
1120
  // let's fire off all update callbacks waiting
1104
- rc.map(cb => cb());
1121
+ rc.map((cb) => cb());
1105
1122
  elm['s-rc'] = undefined;
1106
1123
  }
1107
1124
  endRender();
@@ -1196,7 +1213,8 @@ const forceUpdate = (ref) => {
1196
1213
  {
1197
1214
  const hostRef = getHostRef(ref);
1198
1215
  const isConnected = hostRef.$hostElement$.isConnected;
1199
- if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1216
+ if (isConnected &&
1217
+ (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1200
1218
  scheduleUpdate(hostRef, false);
1201
1219
  }
1202
1220
  // Returns "true" when the forced update was successfully scheduled
@@ -1225,7 +1243,8 @@ const safeCall = (instance, method, arg) => {
1225
1243
  const then = (promise, thenFn) => {
1226
1244
  return promise && promise.then ? promise.then(thenFn) : thenFn();
1227
1245
  };
1228
- const addHydratedFlag = (elm) => (elm.classList.add('hydrated') );
1246
+ const addHydratedFlag = (elm) => elm.classList.add('hydrated')
1247
+ ;
1229
1248
  const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1230
1249
  const endHydrate = createTime('hydrateClient', tagName);
1231
1250
  const shadowRoot = hostElm.shadowRoot;
@@ -1239,7 +1258,7 @@ const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1239
1258
  hostElm[HYDRATE_ID] = hostId;
1240
1259
  hostElm.removeAttribute(HYDRATE_ID);
1241
1260
  clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);
1242
- childRenderNodes.map(c => {
1261
+ childRenderNodes.map((c) => {
1243
1262
  const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;
1244
1263
  const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);
1245
1264
  const node = c.$elm$;
@@ -1256,7 +1275,7 @@ const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1256
1275
  plt.$orgLocNodes$.delete(orgLocationId);
1257
1276
  });
1258
1277
  if (shadowRoot) {
1259
- shadowRootNodes.map(shadowRootNode => {
1278
+ shadowRootNodes.map((shadowRootNode) => {
1260
1279
  if (shadowRootNode) {
1261
1280
  shadowRoot.appendChild(shadowRootNode);
1262
1281
  }
@@ -1474,7 +1493,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1474
1493
  const watchMethods = cmpMeta.$watchers$[propName];
1475
1494
  if (watchMethods) {
1476
1495
  // this instance is watching for when this property changed
1477
- watchMethods.map(watchMethodName => {
1496
+ watchMethods.map((watchMethodName) => {
1478
1497
  try {
1479
1498
  // fire off each of the watch methods that are watching this property
1480
1499
  instance[watchMethodName](newVal, oldVal, propName);
@@ -1504,7 +1523,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1504
1523
  const members = Object.entries(cmpMeta.$members$);
1505
1524
  const prototype = Cstr.prototype;
1506
1525
  members.map(([memberName, [memberFlags]]) => {
1507
- if ((memberFlags & 31 /* Prop */ || ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1526
+ if ((memberFlags & 31 /* Prop */ ||
1527
+ ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1508
1528
  // proxyComponent - prop
1509
1529
  Object.defineProperty(prototype, memberName, {
1510
1530
  get() {
@@ -1519,7 +1539,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1519
1539
  enumerable: true,
1520
1540
  });
1521
1541
  }
1522
- else if (flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1542
+ else if (flags & 1 /* isElementConstructor */ &&
1543
+ memberFlags & 64 /* Method */) {
1523
1544
  // proxyComponent - method
1524
1545
  Object.defineProperty(prototype, memberName, {
1525
1546
  value(...args) {
@@ -1534,6 +1555,43 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1534
1555
  prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1535
1556
  plt.jmp(() => {
1536
1557
  const propName = attrNameToPropName.get(attrName);
1558
+ // In a webcomponent lifecyle the attributeChangedCallback runs prior to connectedCallback
1559
+ // in the case where an attribute was set inline.
1560
+ // ```html
1561
+ // <my-component some-attribute="some-value"></my-component>
1562
+ // ```
1563
+ //
1564
+ // There is an edge case where a developer sets the attribute inline on a custom element and then programatically
1565
+ // changes it before it has been upgraded as shown below:
1566
+ //
1567
+ // ```html
1568
+ // <!-- this component has _not_ been upgraded yet -->
1569
+ // <my-component id="test" some-attribute="some-value"></my-component>
1570
+ // <script>
1571
+ // // grab non-upgraded component
1572
+ // el = document.querySelector("#test");
1573
+ // el.someAttribute = "another-value";
1574
+ // // upgrade component
1575
+ // cutsomElements.define('my-component', MyComponent);
1576
+ // </script>
1577
+ // ```
1578
+ // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1579
+ // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1580
+ // to the value that was set inline i.e. "some-value" from above example. When
1581
+ // the connectedCallback attempts to unshadow it will use "some-value" as the intial value rather than "another-value"
1582
+ //
1583
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1584
+ // by connectedCallback as this attributeChangedCallback will not fire.
1585
+ //
1586
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1587
+ //
1588
+ // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to
1589
+ // properties here given that this goes against best practices outlined here
1590
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy
1591
+ if (this.hasOwnProperty(propName)) {
1592
+ newValue = this[propName];
1593
+ delete this[propName];
1594
+ }
1537
1595
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1538
1596
  });
1539
1597
  };
@@ -1570,7 +1628,7 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1570
1628
  endLoad();
1571
1629
  }
1572
1630
  if (!Cstr.isProxied) {
1573
- // we'eve never proxied this Constructor before
1631
+ // we've never proxied this Constructor before
1574
1632
  // let's add the getters/setters to its prototype before
1575
1633
  // the first time we create an instance of the implementation
1576
1634
  {
@@ -1672,7 +1730,9 @@ const connectedCallback = (elm) => {
1672
1730
  while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {
1673
1731
  // climb up the ancestors looking for the first
1674
1732
  // component that hasn't finished its lifecycle update yet
1675
- if ((ancestorComponent.nodeType === 1 /* ElementNode */ && ancestorComponent.hasAttribute('s-id') && ancestorComponent['s-p']) ||
1733
+ if ((ancestorComponent.nodeType === 1 /* ElementNode */ &&
1734
+ ancestorComponent.hasAttribute('s-id') &&
1735
+ ancestorComponent['s-p']) ||
1676
1736
  ancestorComponent['s-p']) {
1677
1737
  // we found this components first ancestor component
1678
1738
  // keep a reference to this component's ancestor component
@@ -1724,7 +1784,7 @@ const disconnectedCallback = (elm) => {
1724
1784
  const instance = hostRef.$lazyInstance$ ;
1725
1785
  {
1726
1786
  if (hostRef.$rmListeners$) {
1727
- hostRef.$rmListeners$.map(rmListener => rmListener());
1787
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
1728
1788
  hostRef.$rmListeners$ = undefined;
1729
1789
  }
1730
1790
  }
@@ -1758,7 +1818,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1758
1818
  registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);
1759
1819
  }
1760
1820
  }
1761
- lazyBundles.map(lazyBundle => lazyBundle[1].map(compactMeta => {
1821
+ lazyBundles.map((lazyBundle) => lazyBundle[1].map((compactMeta) => {
1762
1822
  const cmpMeta = {
1763
1823
  $flags$: compactMeta[0],
1764
1824
  $tagName$: compactMeta[1],
@@ -1831,7 +1891,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1831
1891
  // Process deferred connectedCallbacks now all components have been registered
1832
1892
  isBootstrapping = false;
1833
1893
  if (deferredConnectedCallbacks.length) {
1834
- deferredConnectedCallbacks.map(host => host.connectedCallback());
1894
+ deferredConnectedCallbacks.map((host) => host.connectedCallback());
1835
1895
  }
1836
1896
  else {
1837
1897
  {
@@ -1853,10 +1913,10 @@ const registerHost = (elm, cmpMeta) => {
1853
1913
  $instanceValues$: new Map(),
1854
1914
  };
1855
1915
  {
1856
- hostRef.$onInstancePromise$ = new Promise(r => (hostRef.$onInstanceResolve$ = r));
1916
+ hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));
1857
1917
  }
1858
1918
  {
1859
- hostRef.$onReadyPromise$ = new Promise(r => (hostRef.$onReadyResolve$ = r));
1919
+ hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
1860
1920
  elm['s-p'] = [];
1861
1921
  elm['s-rc'] = [];
1862
1922
  }
@@ -1878,7 +1938,7 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1878
1938
  /* webpackInclude: /\.entry\.js$/ */
1879
1939
  /* webpackExclude: /\.system\.entry\.js$/ */
1880
1940
  /* webpackMode: "lazy" */
1881
- `./${bundleId}.entry.js${''}`).then(importedModule => {
1941
+ `./${bundleId}.entry.js${''}`).then((importedModule) => {
1882
1942
  {
1883
1943
  cmpModules.set(bundleId, importedModule);
1884
1944
  }
@@ -1,7 +1,7 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-dd97a66d.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-61410be2.js';
2
2
 
3
3
  /*
4
- Stencil Client Patch Esm v2.5.2 | MIT Licensed | https://stenciljs.com
4
+ Stencil Client Patch Esm v2.9.0 | MIT Licensed | https://stenciljs.com
5
5
  */
6
6
  const patchEsm = () => {
7
7
  return promiseResolve();
File without changes
@@ -1,4 +1,4 @@
1
1
  import { Alert, AlertWithHeadingsContent } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function alertTemplate({ status, message, onClick, withRoleAlert }: Alert<TemplateResult>): TemplateResult;
4
- export declare function alertWithHeadingsTemplate({ h2, h3, h4, h5, h6, content }: AlertWithHeadingsContent): TemplateResult;
3
+ export declare function alertTemplate({ status, message, onClick, withRoleAlert }: Alert<TemplateResult>): TemplateResult<1>;
4
+ export declare function alertWithHeadingsTemplate({ h2, h3, h4, h5, h6, content }: AlertWithHeadingsContent): TemplateResult<1>;
@@ -1,2 +1,2 @@
1
1
  import { AttachmentsCounter } from '@dso-toolkit/sources';
2
- export declare function attachmentsCounterTemplate({ count }: AttachmentsCounter): import("lit-html").TemplateResult;
2
+ export declare function attachmentsCounterTemplate({ count }: AttachmentsCounter): import("lit-html").TemplateResult<1>;
@@ -1,2 +1,2 @@
1
1
  import { Autosuggest } from "@dso-toolkit/sources";
2
- export declare function autosuggestTemplate({ fetchSuggestions, suggestOnFocus, }: Autosuggest): import("lit-html").TemplateResult;
2
+ export declare function autosuggestTemplate({ fetchSuggestions, suggestOnFocus, }: Autosuggest): import("lit-html").TemplateResult<1>;
@@ -1,2 +1,2 @@
1
1
  import { Badge } from '@dso-toolkit/sources';
2
- export declare function badgeTemplate({ status, message }: Badge): import("lit-html").TemplateResult;
2
+ export declare function badgeTemplate({ status, message }: Badge): import("lit-html").TemplateResult<1>;
@@ -1,3 +1,3 @@
1
1
  import { Banner } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function bannerTemplate({ status, richContent, onClick }: Banner<TemplateResult>): TemplateResult;
3
+ export declare function bannerTemplate({ status, richContent, onClick }: Banner<TemplateResult>): TemplateResult<1>;
@@ -1,5 +1,5 @@
1
1
  import { DatePicker } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function datePickerTemplate({ id, onDateChange, value, min, max, disabled }: DatePicker): TemplateResult;
4
- export declare function datePickerWithLabelTemplate(datePicker: TemplateResult, id: string, label: string): TemplateResult;
5
- export declare function datePickerShowByScriptingTemplate(datePicker: TemplateResult, id: string): TemplateResult;
3
+ export declare function datePickerTemplate({ id, onDateChange, value, min, max, disabled }: DatePicker): TemplateResult<1>;
4
+ export declare function datePickerWithLabelTemplate(datePicker: TemplateResult, id: string, label: string): TemplateResult<1>;
5
+ export declare function datePickerShowByScriptingTemplate(datePicker: TemplateResult, id: string): TemplateResult<1>;
@@ -1,3 +1,3 @@
1
1
  import { DropdownMenu } from "@dso-toolkit/sources";
2
2
  import { TemplateResult } from "lit-html";
3
- export declare function dropdownMenuTemplate({ id, button, dropdownAlign, isCheckable, children }: DropdownMenu<TemplateResult>): TemplateResult;
3
+ export declare function dropdownMenuTemplate({ id, button, dropdownAlign, isCheckable, children }: DropdownMenu<TemplateResult>): TemplateResult<1>;
@@ -1,3 +1,3 @@
1
1
  import { HighlightBox } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function highlightBoxTemplate({ yellow, white, dropShadow, border, step, icon, richContent }: HighlightBox<TemplateResult>): TemplateResult;
3
+ export declare function highlightBoxTemplate({ yellow, white, dropShadow, border, step, icon, richContent }: HighlightBox<TemplateResult>): TemplateResult<1>;
@@ -1,2 +1,2 @@
1
1
  import { Icon } from '@dso-toolkit/sources';
2
- export declare function iconTemplate({ icon }: Icon, slot?: string): import("lit-html").TemplateResult;
2
+ export declare function iconTemplate({ icon }: Icon, slot?: string): import("lit-html").TemplateResult<1>;
@@ -1,3 +1,3 @@
1
1
  import { Info } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function infoTemplate({ fixed, active, richContent, onClose }: Info<TemplateResult>): TemplateResult;
3
+ export declare function infoTemplate({ fixed, active, richContent, onClose }: Info<TemplateResult>): TemplateResult<1>;