lwc 2.13.4 → 2.14.2

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 (35) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +488 -547
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +488 -546
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +430 -490
  5. package/dist/engine-dom/iife/es5/engine-dom.js +600 -715
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +535 -655
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +488 -546
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +430 -490
  11. package/dist/engine-dom/umd/es5/engine-dom.js +600 -715
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +535 -655
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +371 -450
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +371 -451
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  28. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  29. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  31. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  35. package/package.json +7 -7
@@ -350,7 +350,7 @@
350
350
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
351
351
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
352
352
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
353
- /** version: 2.13.4 */
353
+ /** version: 2.14.2 */
354
354
 
355
355
  /*
356
356
  * Copyright (c) 2018, salesforce.com, inc.
@@ -611,231 +611,6 @@
611
611
 
612
612
  return result;
613
613
  }
614
- // Primitives
615
- //
616
-
617
-
618
- var ssr$1;
619
-
620
- function setSsr(ssrImpl) {
621
- ssr$1 = ssrImpl;
622
- }
623
-
624
- var isNativeShadowDefined$1;
625
-
626
- function setIsNativeShadowDefined(isNativeShadowDefinedImpl) {
627
- isNativeShadowDefined$1 = isNativeShadowDefinedImpl;
628
- }
629
-
630
- var isSyntheticShadowDefined$1;
631
-
632
- function setIsSyntheticShadowDefined(isSyntheticShadowDefinedImpl) {
633
- isSyntheticShadowDefined$1 = isSyntheticShadowDefinedImpl;
634
- }
635
-
636
- var HTMLElementExported$1;
637
-
638
- function setHTMLElement(HTMLElementImpl) {
639
- HTMLElementExported$1 = HTMLElementImpl;
640
- }
641
-
642
- var insert$1;
643
-
644
- function setInsert(insertImpl) {
645
- insert$1 = insertImpl;
646
- }
647
-
648
- var remove$1;
649
-
650
- function setRemove(removeImpl) {
651
- remove$1 = removeImpl;
652
- }
653
-
654
- var createElement$2;
655
-
656
- function setCreateElement(createElementImpl) {
657
- createElement$2 = createElementImpl;
658
- }
659
-
660
- var createText$1;
661
-
662
- function setCreateText(createTextImpl) {
663
- createText$1 = createTextImpl;
664
- }
665
-
666
- var createComment$1;
667
-
668
- function setCreateComment(createCommentImpl) {
669
- createComment$1 = createCommentImpl;
670
- }
671
-
672
- var nextSibling$1;
673
-
674
- function setNextSibling(nextSiblingImpl) {
675
- nextSibling$1 = nextSiblingImpl;
676
- }
677
-
678
- var attachShadow$1;
679
-
680
- function setAttachShadow(attachShadowImpl) {
681
- attachShadow$1 = attachShadowImpl;
682
- }
683
-
684
- var getProperty$1;
685
-
686
- function setGetProperty(getPropertyImpl) {
687
- getProperty$1 = getPropertyImpl;
688
- }
689
-
690
- var setProperty$1;
691
-
692
- function setSetProperty(setPropertyImpl) {
693
- setProperty$1 = setPropertyImpl;
694
- }
695
-
696
- var setText$1;
697
-
698
- function setSetText(setTextImpl) {
699
- setText$1 = setTextImpl;
700
- }
701
-
702
- var getAttribute$1;
703
-
704
- function setGetAttribute(getAttributeImpl) {
705
- getAttribute$1 = getAttributeImpl;
706
- }
707
-
708
- var setAttribute$1;
709
-
710
- function setSetAttribute(setAttributeImpl) {
711
- setAttribute$1 = setAttributeImpl;
712
- }
713
-
714
- var removeAttribute$1;
715
-
716
- function setRemoveAttribute(removeAttributeImpl) {
717
- removeAttribute$1 = removeAttributeImpl;
718
- }
719
-
720
- var addEventListener$1;
721
-
722
- function setAddEventListener(addEventListenerImpl) {
723
- addEventListener$1 = addEventListenerImpl;
724
- }
725
-
726
- var removeEventListener$1;
727
-
728
- function setRemoveEventListener(removeEventListenerImpl) {
729
- removeEventListener$1 = removeEventListenerImpl;
730
- }
731
-
732
- var dispatchEvent$1;
733
-
734
- function setDispatchEvent(dispatchEventImpl) {
735
- dispatchEvent$1 = dispatchEventImpl;
736
- }
737
-
738
- var getClassList$1;
739
-
740
- function setGetClassList(getClassListImpl) {
741
- getClassList$1 = getClassListImpl;
742
- }
743
-
744
- var setCSSStyleProperty$1;
745
-
746
- function setSetCSSStyleProperty(setCSSStylePropertyImpl) {
747
- setCSSStyleProperty$1 = setCSSStylePropertyImpl;
748
- }
749
-
750
- var getBoundingClientRect$1;
751
-
752
- function setGetBoundingClientRect(getBoundingClientRectImpl) {
753
- getBoundingClientRect$1 = getBoundingClientRectImpl;
754
- }
755
-
756
- var querySelector$1;
757
-
758
- function setQuerySelector(querySelectorImpl) {
759
- querySelector$1 = querySelectorImpl;
760
- }
761
-
762
- var querySelectorAll$1;
763
-
764
- function setQuerySelectorAll(querySelectorAllImpl) {
765
- querySelectorAll$1 = querySelectorAllImpl;
766
- }
767
-
768
- var getElementsByTagName$1;
769
-
770
- function setGetElementsByTagName(getElementsByTagNameImpl) {
771
- getElementsByTagName$1 = getElementsByTagNameImpl;
772
- }
773
-
774
- var getElementsByClassName$1;
775
-
776
- function setGetElementsByClassName(getElementsByClassNameImpl) {
777
- getElementsByClassName$1 = getElementsByClassNameImpl;
778
- }
779
-
780
- var getChildren$1;
781
-
782
- function setGetChildren(getChildrenImpl) {
783
- getChildren$1 = getChildrenImpl;
784
- }
785
-
786
- var getChildNodes$1;
787
-
788
- function setGetChildNodes(getChildNodesImpl) {
789
- getChildNodes$1 = getChildNodesImpl;
790
- }
791
-
792
- var getFirstChild$1;
793
-
794
- function setGetFirstChild(getFirstChildImpl) {
795
- getFirstChild$1 = getFirstChildImpl;
796
- }
797
-
798
- var getFirstElementChild$1;
799
-
800
- function setGetFirstElementChild(getFirstElementChildImpl) {
801
- getFirstElementChild$1 = getFirstElementChildImpl;
802
- }
803
-
804
- var getLastChild$1;
805
-
806
- function setGetLastChild(getLastChildImpl) {
807
- getLastChild$1 = getLastChildImpl;
808
- }
809
-
810
- var getLastElementChild$1;
811
-
812
- function setGetLastElementChild(getLastElementChildImpl) {
813
- getLastElementChild$1 = getLastElementChildImpl;
814
- }
815
-
816
- var isConnected$1;
817
-
818
- function setIsConnected(isConnectedImpl) {
819
- isConnected$1 = isConnectedImpl;
820
- }
821
-
822
- var insertStylesheet$1;
823
-
824
- function setInsertStylesheet(insertStylesheetImpl) {
825
- insertStylesheet$1 = insertStylesheetImpl;
826
- }
827
-
828
- var defineCustomElement$1;
829
-
830
- function setDefineCustomElement(defineCustomElementImpl) {
831
- defineCustomElement$1 = defineCustomElementImpl;
832
- }
833
-
834
- var getCustomElement$1;
835
-
836
- function setGetCustomElement(getCustomElementImpl) {
837
- getCustomElement$1 = getCustomElementImpl;
838
- }
839
614
  /*
840
615
  * Copyright (c) 2019, salesforce.com, inc.
841
616
  * All rights reserved.
@@ -2013,13 +1788,14 @@
2013
1788
  };
2014
1789
 
2015
1790
  function doAttachShadow(vm) {
2016
- var _attachShadow$;
1791
+ var _attachShadow;
2017
1792
 
2018
1793
  var elm = vm.elm,
2019
1794
  mode = vm.mode,
2020
1795
  shadowMode = vm.shadowMode,
2021
- ctor = vm.def.ctor;
2022
- var shadowRoot = attachShadow$1(elm, (_attachShadow$ = {}, _defineProperty(_attachShadow$, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow$, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow$, "mode", mode), _attachShadow$));
1796
+ ctor = vm.def.ctor,
1797
+ attachShadow = vm.renderer.attachShadow;
1798
+ var shadowRoot = attachShadow(elm, (_attachShadow = {}, _defineProperty(_attachShadow, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow, "mode", mode), _attachShadow));
2023
1799
  vm.shadowRoot = shadowRoot;
2024
1800
  associateVM(shadowRoot, vm);
2025
1801
 
@@ -2030,99 +1806,106 @@
2030
1806
  LightningElement.prototype = {
2031
1807
  constructor: LightningElement,
2032
1808
  dispatchEvent: function dispatchEvent(event) {
2033
- var _getAssociatedVM = getAssociatedVM(this),
2034
- elm = _getAssociatedVM.elm;
2035
-
2036
- return dispatchEvent$1(elm, event);
1809
+ var vm = getAssociatedVM(this);
1810
+ var elm = vm.elm,
1811
+ dispatchEvent = vm.renderer.dispatchEvent;
1812
+ return dispatchEvent(elm, event);
2037
1813
  },
2038
1814
  addEventListener: function addEventListener(type, listener, options) {
2039
1815
  var vm = getAssociatedVM(this);
2040
- var elm = vm.elm;
1816
+ var elm = vm.elm,
1817
+ addEventListener = vm.renderer.addEventListener;
2041
1818
 
2042
1819
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2043
- addEventListener$1(elm, type, wrappedListener, options);
1820
+ addEventListener(elm, type, wrappedListener, options);
2044
1821
  },
2045
1822
  removeEventListener: function removeEventListener(type, listener, options) {
2046
1823
  var vm = getAssociatedVM(this);
2047
- var elm = vm.elm;
1824
+ var elm = vm.elm,
1825
+ removeEventListener = vm.renderer.removeEventListener;
2048
1826
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2049
- removeEventListener$1(elm, type, wrappedListener, options);
1827
+ removeEventListener(elm, type, wrappedListener, options);
2050
1828
  },
2051
1829
  hasAttribute: function hasAttribute(name) {
2052
- var _getAssociatedVM2 = getAssociatedVM(this),
2053
- elm = _getAssociatedVM2.elm;
2054
-
2055
- return !isNull(getAttribute$1(elm, name));
1830
+ var vm = getAssociatedVM(this);
1831
+ var elm = vm.elm,
1832
+ getAttribute = vm.renderer.getAttribute;
1833
+ return !isNull(getAttribute(elm, name));
2056
1834
  },
2057
1835
  hasAttributeNS: function hasAttributeNS(namespace, name) {
2058
- var _getAssociatedVM3 = getAssociatedVM(this),
2059
- elm = _getAssociatedVM3.elm;
2060
-
2061
- return !isNull(getAttribute$1(elm, name, namespace));
1836
+ var vm = getAssociatedVM(this);
1837
+ var elm = vm.elm,
1838
+ getAttribute = vm.renderer.getAttribute;
1839
+ return !isNull(getAttribute(elm, name, namespace));
2062
1840
  },
2063
1841
  removeAttribute: function removeAttribute(name) {
2064
- var _getAssociatedVM4 = getAssociatedVM(this),
2065
- elm = _getAssociatedVM4.elm;
2066
-
1842
+ var vm = getAssociatedVM(this);
1843
+ var elm = vm.elm,
1844
+ removeAttribute = vm.renderer.removeAttribute;
2067
1845
  unlockAttribute(elm, name);
2068
- removeAttribute$1(elm, name);
1846
+ removeAttribute(elm, name);
2069
1847
  lockAttribute();
2070
1848
  },
2071
1849
  removeAttributeNS: function removeAttributeNS(namespace, name) {
2072
- var _getAssociatedVM5 = getAssociatedVM(this),
2073
- elm = _getAssociatedVM5.elm;
1850
+ var _getAssociatedVM = getAssociatedVM(this),
1851
+ elm = _getAssociatedVM.elm,
1852
+ removeAttribute = _getAssociatedVM.renderer.removeAttribute;
2074
1853
 
2075
1854
  unlockAttribute(elm, name);
2076
- removeAttribute$1(elm, name, namespace);
1855
+ removeAttribute(elm, name, namespace);
2077
1856
  lockAttribute();
2078
1857
  },
2079
1858
  getAttribute: function getAttribute(name) {
2080
- var _getAssociatedVM6 = getAssociatedVM(this),
2081
- elm = _getAssociatedVM6.elm;
2082
-
2083
- return getAttribute$1(elm, name);
1859
+ var vm = getAssociatedVM(this);
1860
+ var elm = vm.elm;
1861
+ var getAttribute = vm.renderer.getAttribute;
1862
+ return getAttribute(elm, name);
2084
1863
  },
2085
1864
  getAttributeNS: function getAttributeNS(namespace, name) {
2086
- var _getAssociatedVM7 = getAssociatedVM(this),
2087
- elm = _getAssociatedVM7.elm;
2088
-
2089
- return getAttribute$1(elm, name, namespace);
1865
+ var vm = getAssociatedVM(this);
1866
+ var elm = vm.elm;
1867
+ var getAttribute = vm.renderer.getAttribute;
1868
+ return getAttribute(elm, name, namespace);
2090
1869
  },
2091
1870
  setAttribute: function setAttribute(name, value) {
2092
1871
  var vm = getAssociatedVM(this);
2093
- var elm = vm.elm;
1872
+ var elm = vm.elm,
1873
+ setAttribute = vm.renderer.setAttribute;
2094
1874
 
2095
1875
  unlockAttribute(elm, name);
2096
- setAttribute$1(elm, name, value);
1876
+ setAttribute(elm, name, value);
2097
1877
  lockAttribute();
2098
1878
  },
2099
1879
  setAttributeNS: function setAttributeNS(namespace, name, value) {
2100
1880
  var vm = getAssociatedVM(this);
2101
- var elm = vm.elm;
1881
+ var elm = vm.elm,
1882
+ setAttribute = vm.renderer.setAttribute;
2102
1883
 
2103
1884
  unlockAttribute(elm, name);
2104
- setAttribute$1(elm, name, value, namespace);
1885
+ setAttribute(elm, name, value, namespace);
2105
1886
  lockAttribute();
2106
1887
  },
2107
1888
  getBoundingClientRect: function getBoundingClientRect() {
2108
1889
  var vm = getAssociatedVM(this);
2109
- var elm = vm.elm;
1890
+ var elm = vm.elm,
1891
+ getBoundingClientRect = vm.renderer.getBoundingClientRect;
2110
1892
 
2111
- return getBoundingClientRect$1(elm);
1893
+ return getBoundingClientRect(elm);
2112
1894
  },
2113
1895
 
2114
1896
  get isConnected() {
2115
- var _getAssociatedVM8 = getAssociatedVM(this),
2116
- elm = _getAssociatedVM8.elm;
2117
-
2118
- return isConnected$1(elm);
1897
+ var vm = getAssociatedVM(this);
1898
+ var elm = vm.elm,
1899
+ isConnected = vm.renderer.isConnected;
1900
+ return isConnected(elm);
2119
1901
  },
2120
1902
 
2121
1903
  get classList() {
2122
1904
  var vm = getAssociatedVM(this);
2123
- var elm = vm.elm;
1905
+ var elm = vm.elm,
1906
+ getClassList = vm.renderer.getClassList;
2124
1907
 
2125
- return getClassList$1(elm);
1908
+ return getClassList(elm);
2126
1909
  },
2127
1910
 
2128
1911
  get template() {
@@ -2137,89 +1920,69 @@
2137
1920
  return null;
2138
1921
  },
2139
1922
 
2140
- render: function render() {
1923
+ get children() {
2141
1924
  var vm = getAssociatedVM(this);
2142
- return vm.def.template;
2143
- },
2144
- toString: function toString() {
2145
- var vm = getAssociatedVM(this);
2146
- return "[object ".concat(vm.def.name, "]");
2147
- }
2148
- };
2149
- var queryAndChildGetterDescriptors = create(null); // The reason we don't just call `import * as renderer from '../renderer'` here is that the bundle size
2150
- // is smaller if we reference each function individually. Otherwise Rollup will create one big frozen
2151
- // object representing the renderer, with a lot of methods we don't actually need.
2152
-
2153
- var childGetters = ['children', 'childNodes', 'firstChild', 'firstElementChild', 'lastChild', 'lastElementChild'];
2154
-
2155
- function getChildGetter(methodName) {
2156
- switch (methodName) {
2157
- case 'children':
2158
- return getChildren$1;
1925
+ var renderer = vm.renderer;
2159
1926
 
2160
- case 'childNodes':
2161
- return getChildNodes$1;
2162
-
2163
- case 'firstChild':
2164
- return getFirstChild$1;
2165
-
2166
- case 'firstElementChild':
2167
- return getFirstElementChild$1;
1927
+ return renderer.getChildren(vm.elm);
1928
+ },
2168
1929
 
2169
- case 'lastChild':
2170
- return getLastChild$1;
1930
+ get childNodes() {
1931
+ var vm = getAssociatedVM(this);
1932
+ var renderer = vm.renderer;
2171
1933
 
2172
- case 'lastElementChild':
2173
- return getLastElementChild$1;
2174
- }
2175
- } // Generic passthrough for child getters on HTMLElement to the relevant Renderer APIs
1934
+ return renderer.getChildNodes(vm.elm);
1935
+ },
2176
1936
 
1937
+ get firstChild() {
1938
+ var vm = getAssociatedVM(this);
1939
+ var renderer = vm.renderer;
2177
1940
 
2178
- var _loop = function _loop() {
2179
- var childGetter = _childGetters[_i7];
2180
- queryAndChildGetterDescriptors[childGetter] = {
2181
- get: function get() {
2182
- var vm = getAssociatedVM(this);
2183
- var elm = vm.elm;
1941
+ return renderer.getFirstChild(vm.elm);
1942
+ },
2184
1943
 
2185
- return getChildGetter(childGetter)(elm);
2186
- },
2187
- configurable: true,
2188
- enumerable: true
2189
- };
2190
- };
1944
+ get firstElementChild() {
1945
+ var vm = getAssociatedVM(this);
1946
+ var renderer = vm.renderer;
2191
1947
 
2192
- for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2193
- _loop();
2194
- }
1948
+ return renderer.getFirstElementChild(vm.elm);
1949
+ },
2195
1950
 
2196
- var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll'];
1951
+ get lastChild() {
1952
+ var vm = getAssociatedVM(this);
1953
+ var renderer = vm.renderer;
2197
1954
 
2198
- function getQueryMethod(methodName) {
2199
- switch (methodName) {
2200
- case 'getElementsByClassName':
2201
- return getElementsByClassName$1;
1955
+ return renderer.getLastChild(vm.elm);
1956
+ },
2202
1957
 
2203
- case 'getElementsByTagName':
2204
- return getElementsByTagName$1;
1958
+ get lastElementChild() {
1959
+ var vm = getAssociatedVM(this);
1960
+ var renderer = vm.renderer;
2205
1961
 
2206
- case 'querySelector':
2207
- return querySelector$1;
1962
+ return renderer.getLastElementChild(vm.elm);
1963
+ },
2208
1964
 
2209
- case 'querySelectorAll':
2210
- return querySelectorAll$1;
1965
+ render: function render() {
1966
+ var vm = getAssociatedVM(this);
1967
+ return vm.def.template;
1968
+ },
1969
+ toString: function toString() {
1970
+ var vm = getAssociatedVM(this);
1971
+ return "[object ".concat(vm.def.name, "]");
2211
1972
  }
2212
- } // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2213
-
1973
+ };
1974
+ var queryAndChildGetterDescriptors = create(null);
1975
+ var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll']; // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2214
1976
 
2215
- var _loop2 = function _loop2() {
2216
- var queryMethod = _queryMethods[_i8];
1977
+ var _loop = function _loop() {
1978
+ var queryMethod = _queryMethods[_i7];
2217
1979
  queryAndChildGetterDescriptors[queryMethod] = {
2218
1980
  value: function value(arg) {
2219
1981
  var vm = getAssociatedVM(this);
2220
- var elm = vm.elm;
1982
+ var elm = vm.elm,
1983
+ renderer = vm.renderer;
2221
1984
 
2222
- return getQueryMethod(queryMethod)(elm, arg);
1985
+ return renderer[queryMethod](elm, arg);
2223
1986
  },
2224
1987
  configurable: true,
2225
1988
  enumerable: true,
@@ -2227,8 +1990,8 @@
2227
1990
  };
2228
1991
  };
2229
1992
 
2230
- for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2231
- _loop2();
1993
+ for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
1994
+ _loop();
2232
1995
  }
2233
1996
 
2234
1997
  defineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);
@@ -2588,8 +2351,8 @@
2588
2351
  }
2589
2352
 
2590
2353
  if (!isUndefined$1(fields)) {
2591
- for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
2592
- var _fieldName2 = fields[_i9];
2354
+ for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
2355
+ var _fieldName2 = fields[_i8];
2593
2356
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
2594
2357
  // tracked property. This is only here for backward compatibility purposes.
2595
2358
 
@@ -2843,8 +2606,8 @@
2843
2606
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
2844
2607
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
2845
2608
 
2846
- for (var _i10 = 0, len = props.length; _i10 < len; _i10 += 1) {
2847
- var _propName = props[_i10];
2609
+ for (var _i9 = 0, len = props.length; _i9 < len; _i9 += 1) {
2610
+ var _propName = props[_i9];
2848
2611
  attributeToPropMap[htmlPropertyToAttribute(_propName)] = _propName;
2849
2612
  descriptors[_propName] = {
2850
2613
  get: createGetter(_propName),
@@ -2855,8 +2618,8 @@
2855
2618
  } // expose public methods as props on the new Element Bridge
2856
2619
 
2857
2620
 
2858
- for (var _i11 = 0, _len3 = methods.length; _i11 < _len3; _i11 += 1) {
2859
- var methodName = methods[_i11];
2621
+ for (var _i10 = 0, _len3 = methods.length; _i10 < _len3; _i10 += 1) {
2622
+ var methodName = methods[_i10];
2860
2623
  descriptors[methodName] = {
2861
2624
  value: createMethodCaller(methodName),
2862
2625
  writable: true,
@@ -3159,12 +2922,15 @@
3159
2922
  */
3160
2923
 
3161
2924
 
3162
- function getUpgradableConstructor(tagName) {
3163
- // Should never get a tag with upper case letter at this point, the compiler should
2925
+ function getUpgradableConstructor(tagName, renderer) {
2926
+ var getCustomElement = renderer.getCustomElement,
2927
+ RendererHTMLElement = renderer.HTMLElementExported,
2928
+ defineCustomElement = renderer.defineCustomElement; // Should never get a tag with upper case letter at this point, the compiler should
3164
2929
  // produce only tags with lowercase letters
3165
2930
  // But, for backwards compatibility, we will lower case the tagName
2931
+
3166
2932
  tagName = tagName.toLowerCase();
3167
- var CE = getCustomElement$1(tagName);
2933
+ var CE = getCustomElement(tagName);
3168
2934
 
3169
2935
  if (!isUndefined$1(CE)) {
3170
2936
  return CE;
@@ -3175,8 +2941,8 @@
3175
2941
  */
3176
2942
 
3177
2943
 
3178
- CE = /*#__PURE__*/function (_HTMLElementExported$) {
3179
- _inherits(LWCUpgradableElement, _HTMLElementExported$);
2944
+ CE = /*#__PURE__*/function (_RendererHTMLElement) {
2945
+ _inherits(LWCUpgradableElement, _RendererHTMLElement);
3180
2946
 
3181
2947
  var _super5 = _createSuper(LWCUpgradableElement);
3182
2948
 
@@ -3195,9 +2961,9 @@
3195
2961
  }
3196
2962
 
3197
2963
  return _createClass(LWCUpgradableElement);
3198
- }(HTMLElementExported$1);
2964
+ }(RendererHTMLElement);
3199
2965
 
3200
- defineCustomElement$1(tagName, CE);
2966
+ defineCustomElement(tagName, CE);
3201
2967
  return CE;
3202
2968
  }
3203
2969
  /*
@@ -3230,7 +2996,7 @@
3230
2996
 
3231
2997
  var ColonCharCode = 58;
3232
2998
 
3233
- function patchAttributes(oldVnode, vnode) {
2999
+ function patchAttributes(oldVnode, vnode, renderer) {
3234
3000
  var attrs = vnode.data.attrs;
3235
3001
 
3236
3002
  if (isUndefined$1(attrs)) {
@@ -3244,6 +3010,8 @@
3244
3010
  }
3245
3011
 
3246
3012
  var elm = vnode.elm;
3013
+ var setAttribute = renderer.setAttribute,
3014
+ removeAttribute = renderer.removeAttribute;
3247
3015
 
3248
3016
  for (var key in attrs) {
3249
3017
  var cur = attrs[key];
@@ -3254,14 +3022,14 @@
3254
3022
 
3255
3023
  if (StringCharCodeAt.call(key, 3) === ColonCharCode) {
3256
3024
  // Assume xml namespace
3257
- setAttribute$1(elm, key, cur, XML_NAMESPACE);
3025
+ setAttribute(elm, key, cur, XML_NAMESPACE);
3258
3026
  } else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {
3259
3027
  // Assume xlink namespace
3260
- setAttribute$1(elm, key, cur, XLINK_NAMESPACE);
3028
+ setAttribute(elm, key, cur, XLINK_NAMESPACE);
3261
3029
  } else if (isNull(cur) || isUndefined$1(cur)) {
3262
- removeAttribute$1(elm, key);
3030
+ removeAttribute(elm, key);
3263
3031
  } else {
3264
- setAttribute$1(elm, key, cur);
3032
+ setAttribute(elm, key, cur);
3265
3033
  }
3266
3034
 
3267
3035
  lockAttribute();
@@ -3282,7 +3050,7 @@
3282
3050
  return sel === 'input' && (key === 'value' || key === 'checked');
3283
3051
  }
3284
3052
 
3285
- function patchProps(oldVnode, vnode) {
3053
+ function patchProps(oldVnode, vnode, renderer) {
3286
3054
  var props = vnode.data.props;
3287
3055
 
3288
3056
  if (isUndefined$1(props)) {
@@ -3298,13 +3066,15 @@
3298
3066
  var isFirstPatch = isNull(oldVnode);
3299
3067
  var elm = vnode.elm,
3300
3068
  sel = vnode.sel;
3069
+ var getProperty = renderer.getProperty,
3070
+ setProperty = renderer.setProperty;
3301
3071
 
3302
3072
  for (var key in props) {
3303
3073
  var cur = props[key]; // Set the property if it's the first time is is patched or if the previous property is
3304
3074
  // different than the one previously set.
3305
3075
 
3306
- if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty$1(elm, key) : oldProps[key])) {
3307
- setProperty$1(elm, key, cur);
3076
+ if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty(elm, key) : oldProps[key])) {
3077
+ setProperty(elm, key, cur);
3308
3078
  }
3309
3079
  }
3310
3080
  }
@@ -3356,7 +3126,7 @@
3356
3126
  return map;
3357
3127
  }
3358
3128
 
3359
- function patchClassAttribute(oldVnode, vnode) {
3129
+ function patchClassAttribute(oldVnode, vnode, renderer) {
3360
3130
  var elm = vnode.elm,
3361
3131
  newClass = vnode.data.className;
3362
3132
  var oldClass = isNull(oldVnode) ? undefined : oldVnode.data.className;
@@ -3365,7 +3135,8 @@
3365
3135
  return;
3366
3136
  }
3367
3137
 
3368
- var classList = getClassList$1(elm);
3138
+ var getClassList = renderer.getClassList;
3139
+ var classList = getClassList(elm);
3369
3140
  var newClassMap = getMapFromClassName(newClass);
3370
3141
  var oldClassMap = getMapFromClassName(oldClass);
3371
3142
  var name;
@@ -3392,7 +3163,7 @@
3392
3163
  // The style property is a string when defined via an expression in the template.
3393
3164
 
3394
3165
 
3395
- function patchStyleAttribute(oldVnode, vnode) {
3166
+ function patchStyleAttribute(oldVnode, vnode, renderer) {
3396
3167
  var elm = vnode.elm,
3397
3168
  newStyle = vnode.data.style;
3398
3169
  var oldStyle = isNull(oldVnode) ? undefined : oldVnode.data.style;
@@ -3401,10 +3172,13 @@
3401
3172
  return;
3402
3173
  }
3403
3174
 
3175
+ var setAttribute = renderer.setAttribute,
3176
+ removeAttribute = renderer.removeAttribute;
3177
+
3404
3178
  if (!isString(newStyle) || newStyle === '') {
3405
- removeAttribute$1(elm, 'style');
3179
+ removeAttribute(elm, 'style');
3406
3180
  } else {
3407
- setAttribute$1(elm, 'style', newStyle);
3181
+ setAttribute(elm, 'style', newStyle);
3408
3182
  }
3409
3183
  }
3410
3184
  /*
@@ -3415,7 +3189,7 @@
3415
3189
  */
3416
3190
 
3417
3191
 
3418
- function applyEventListeners(vnode) {
3192
+ function applyEventListeners(vnode, renderer) {
3419
3193
  var elm = vnode.elm,
3420
3194
  on = vnode.data.on;
3421
3195
 
@@ -3423,9 +3197,11 @@
3423
3197
  return;
3424
3198
  }
3425
3199
 
3200
+ var addEventListener = renderer.addEventListener;
3201
+
3426
3202
  for (var name in on) {
3427
3203
  var handler = on[name];
3428
- addEventListener$1(elm, name, handler);
3204
+ addEventListener(elm, name, handler);
3429
3205
  }
3430
3206
  }
3431
3207
  /*
@@ -3439,7 +3215,7 @@
3439
3215
  // different classnames properties individually instead of via a string.
3440
3216
 
3441
3217
 
3442
- function applyStaticClassAttribute(vnode) {
3218
+ function applyStaticClassAttribute(vnode, renderer) {
3443
3219
  var elm = vnode.elm,
3444
3220
  classMap = vnode.data.classMap;
3445
3221
 
@@ -3447,7 +3223,8 @@
3447
3223
  return;
3448
3224
  }
3449
3225
 
3450
- var classList = getClassList$1(elm);
3226
+ var getClassList = renderer.getClassList;
3227
+ var classList = getClassList(elm);
3451
3228
 
3452
3229
  for (var name in classMap) {
3453
3230
  classList.add(name);
@@ -3464,7 +3241,7 @@
3464
3241
  // different style properties individually instead of via a string.
3465
3242
 
3466
3243
 
3467
- function applyStaticStyleAttribute(vnode) {
3244
+ function applyStaticStyleAttribute(vnode, renderer) {
3468
3245
  var elm = vnode.elm,
3469
3246
  styleDecls = vnode.data.styleDecls;
3470
3247
 
@@ -3472,13 +3249,15 @@
3472
3249
  return;
3473
3250
  }
3474
3251
 
3475
- for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
3476
- var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
3252
+ var setCSSStyleProperty = renderer.setCSSStyleProperty;
3253
+
3254
+ for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
3255
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
3477
3256
  prop = _styleDecls$_i[0],
3478
3257
  value = _styleDecls$_i[1],
3479
3258
  important = _styleDecls$_i[2];
3480
3259
 
3481
- setCSSStyleProperty$1(elm, prop, value, important);
3260
+ setCSSStyleProperty(elm, prop, value, important);
3482
3261
  }
3483
3262
  }
3484
3263
  /*
@@ -3489,15 +3268,17 @@
3489
3268
  */
3490
3269
 
3491
3270
 
3492
- function patchChildren(c1, c2, parent) {
3271
+ function patchChildren(c1, c2, parent, renderer) {
3493
3272
  if (hasDynamicChildren(c2)) {
3494
- updateDynamicChildren(c1, c2, parent);
3273
+ updateDynamicChildren(c1, c2, parent, renderer);
3495
3274
  } else {
3496
- updateStaticChildren(c1, c2, parent);
3275
+ updateStaticChildren(c1, c2, parent, renderer);
3497
3276
  }
3498
3277
  }
3499
3278
 
3500
- function patch(n1, n2) {
3279
+ function patch(n1, n2, renderer) {
3280
+ var _a, _b;
3281
+
3501
3282
  if (n1 === n2) {
3502
3283
  return;
3503
3284
  }
@@ -3506,112 +3287,123 @@
3506
3287
  case 0
3507
3288
  /* Text */
3508
3289
  :
3509
- patchText(n1, n2);
3290
+ // VText has no special capability, fallback to the owner's renderer
3291
+ patchText(n1, n2, renderer);
3510
3292
  break;
3511
3293
 
3512
3294
  case 1
3513
3295
  /* Comment */
3514
3296
  :
3515
- patchComment(n1, n2);
3297
+ // VComment has no special capability, fallback to the owner's renderer
3298
+ patchComment(n1, n2, renderer);
3516
3299
  break;
3517
3300
 
3518
3301
  case 2
3519
3302
  /* Element */
3520
3303
  :
3521
- patchElement(n1, n2);
3304
+ patchElement(n1, n2, (_a = n2.data.renderer) !== null && _a !== void 0 ? _a : renderer);
3522
3305
  break;
3523
3306
 
3524
3307
  case 3
3525
3308
  /* CustomElement */
3526
3309
  :
3527
- patchCustomElement(n1, n2);
3310
+ patchCustomElement(n1, n2, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3528
3311
  break;
3529
3312
  }
3530
3313
  }
3531
3314
 
3532
- function mount(node, parent, anchor) {
3315
+ function mount(node, parent, renderer, anchor) {
3316
+ var _a, _b;
3317
+
3533
3318
  switch (node.type) {
3534
3319
  case 0
3535
3320
  /* Text */
3536
3321
  :
3537
- mountText(node, parent, anchor);
3322
+ // VText has no special capability, fallback to the owner's renderer
3323
+ mountText(node, parent, anchor, renderer);
3538
3324
  break;
3539
3325
 
3540
3326
  case 1
3541
3327
  /* Comment */
3542
3328
  :
3543
- mountComment(node, parent, anchor);
3329
+ // VComment has no special capability, fallback to the owner's renderer
3330
+ mountComment(node, parent, anchor, renderer);
3544
3331
  break;
3545
3332
 
3546
3333
  case 2
3547
3334
  /* Element */
3548
3335
  :
3549
- mountElement(node, parent, anchor);
3336
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
3337
+ mountElement(node, parent, anchor, (_a = node.data.renderer) !== null && _a !== void 0 ? _a : renderer);
3550
3338
  break;
3551
3339
 
3552
3340
  case 3
3553
3341
  /* CustomElement */
3554
3342
  :
3555
- mountCustomElement(node, parent, anchor);
3343
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
3344
+ mountCustomElement(node, parent, anchor, (_b = node.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3556
3345
  break;
3557
3346
  }
3558
3347
  }
3559
3348
 
3560
- function patchText(n1, n2) {
3349
+ function patchText(n1, n2, renderer) {
3561
3350
  n2.elm = n1.elm;
3562
3351
 
3563
3352
  if (n2.text !== n1.text) {
3564
- updateTextContent(n2);
3353
+ updateTextContent(n2, renderer);
3565
3354
  }
3566
3355
  }
3567
3356
 
3568
- function mountText(node, parent, anchor) {
3569
- var owner = node.owner;
3570
- var textNode = node.elm = createText$1(node.text);
3571
- linkNodeToShadow(textNode, owner);
3572
- insertNode(textNode, parent, anchor);
3357
+ function mountText(vnode, parent, anchor, renderer) {
3358
+ var owner = vnode.owner;
3359
+ var createText = renderer.createText;
3360
+ var textNode = vnode.elm = createText(vnode.text);
3361
+ linkNodeToShadow(textNode, owner, renderer);
3362
+ insertNode(textNode, parent, anchor, renderer);
3573
3363
  }
3574
3364
 
3575
- function patchComment(n1, n2) {
3365
+ function patchComment(n1, n2, renderer) {
3576
3366
  n2.elm = n1.elm; // FIXME: Comment nodes should be static, we shouldn't need to diff them together. However
3577
3367
  // it is the case today.
3578
3368
 
3579
3369
  if (n2.text !== n1.text) {
3580
- updateTextContent(n2);
3370
+ updateTextContent(n2, renderer);
3581
3371
  }
3582
3372
  }
3583
3373
 
3584
- function mountComment(node, parent, anchor) {
3585
- var owner = node.owner;
3586
- var commentNode = node.elm = createComment$1(node.text);
3587
- linkNodeToShadow(commentNode, owner);
3588
- insertNode(commentNode, parent, anchor);
3374
+ function mountComment(vnode, parent, anchor, renderer) {
3375
+ var owner = vnode.owner;
3376
+ var createComment = renderer.createComment;
3377
+ var commentNode = vnode.elm = createComment(vnode.text);
3378
+ linkNodeToShadow(commentNode, owner, renderer);
3379
+ insertNode(commentNode, parent, anchor, renderer);
3589
3380
  }
3590
3381
 
3591
- function mountElement(vnode, parent, anchor) {
3382
+ function mountElement(vnode, parent, anchor, renderer) {
3592
3383
  var sel = vnode.sel,
3593
3384
  owner = vnode.owner,
3594
3385
  svg = vnode.data.svg;
3386
+ var createElement = renderer.createElement;
3595
3387
  var namespace = isTrue(svg) ? SVG_NAMESPACE : undefined;
3596
- var elm = createElement$2(sel, namespace);
3597
- linkNodeToShadow(elm, owner);
3598
- fallbackElmHook(elm, vnode);
3388
+ var elm = createElement(sel, namespace);
3389
+ linkNodeToShadow(elm, owner, renderer);
3390
+ fallbackElmHook(elm, vnode, renderer);
3599
3391
  vnode.elm = elm;
3600
- patchElementPropsAndAttrs$1(null, vnode);
3601
- insertNode(elm, parent, anchor);
3602
- mountVNodes(vnode.children, elm, null);
3392
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
3393
+ insertNode(elm, parent, anchor, renderer);
3394
+ mountVNodes(vnode.children, elm, renderer, null);
3603
3395
  }
3604
3396
 
3605
- function patchElement(n1, n2) {
3397
+ function patchElement(n1, n2, renderer) {
3606
3398
  var elm = n2.elm = n1.elm;
3607
- patchElementPropsAndAttrs$1(n1, n2);
3608
- patchChildren(n1.children, n2.children, elm);
3399
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
3400
+ patchChildren(n1.children, n2.children, elm, renderer);
3609
3401
  }
3610
3402
 
3611
- function mountCustomElement(vnode, parent, anchor) {
3403
+ function mountCustomElement(vnode, parent, anchor, renderer) {
3612
3404
  var sel = vnode.sel,
3613
3405
  owner = vnode.owner;
3614
- var UpgradableConstructor = getUpgradableConstructor(sel);
3406
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
3615
3407
  /**
3616
3408
  * Note: if the upgradable constructor does not expect, or throw when we new it
3617
3409
  * with a callback as the first argument, we could implement a more advanced
@@ -3622,9 +3414,9 @@
3622
3414
  var vm;
3623
3415
  var elm = new UpgradableConstructor(function (elm) {
3624
3416
  // the custom element from the registry is expecting an upgrade callback
3625
- vm = createViewModelHook(elm, vnode);
3417
+ vm = createViewModelHook(elm, vnode, renderer);
3626
3418
  });
3627
- linkNodeToShadow(elm, owner);
3419
+ linkNodeToShadow(elm, owner, renderer);
3628
3420
  vnode.elm = elm;
3629
3421
  vnode.vm = vm;
3630
3422
 
@@ -3634,25 +3426,25 @@
3634
3426
  throw new TypeError("Incorrect Component Constructor");
3635
3427
  }
3636
3428
 
3637
- patchElementPropsAndAttrs$1(null, vnode);
3638
- insertNode(elm, parent, anchor);
3429
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
3430
+ insertNode(elm, parent, anchor, renderer);
3639
3431
 
3640
3432
  if (vm) {
3641
3433
 
3642
3434
  runConnectedCallback(vm);
3643
3435
  }
3644
3436
 
3645
- mountVNodes(vnode.children, elm, null);
3437
+ mountVNodes(vnode.children, elm, renderer, null);
3646
3438
 
3647
3439
  if (vm) {
3648
3440
  appendVM(vm);
3649
3441
  }
3650
3442
  }
3651
3443
 
3652
- function patchCustomElement(n1, n2) {
3444
+ function patchCustomElement(n1, n2, renderer) {
3653
3445
  var elm = n2.elm = n1.elm;
3654
3446
  var vm = n2.vm = n1.vm;
3655
- patchElementPropsAndAttrs$1(n1, n2);
3447
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
3656
3448
 
3657
3449
  if (!isUndefined$1(vm)) {
3658
3450
  // in fallback mode, the allocation will always set children to
@@ -3662,7 +3454,7 @@
3662
3454
  // will happen, but in native, it does allocate the light dom
3663
3455
 
3664
3456
 
3665
- patchChildren(n1.children, n2.children, elm);
3457
+ patchChildren(n1.children, n2.children, elm, renderer);
3666
3458
 
3667
3459
  if (!isUndefined$1(vm)) {
3668
3460
  // this will probably update the shadowRoot, but only if the vm is in a dirty state
@@ -3671,38 +3463,45 @@
3671
3463
  }
3672
3464
  }
3673
3465
 
3674
- function mountVNodes(vnodes, parent, anchor) {
3675
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
3676
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
3466
+ function mountVNodes(vnodes, parent, renderer, anchor) {
3467
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
3468
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
3677
3469
 
3678
3470
  for (; start < end; ++start) {
3679
3471
  var vnode = vnodes[start];
3680
3472
 
3681
3473
  if (isVNode(vnode)) {
3682
- mount(vnode, parent, anchor);
3474
+ mount(vnode, parent, renderer, anchor);
3683
3475
  }
3684
3476
  }
3685
3477
  }
3686
3478
 
3687
- function unmount(vnode, parent) {
3688
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3479
+ function unmount(vnode, parent, renderer) {
3480
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
3689
3481
  var type = vnode.type,
3690
3482
  elm = vnode.elm,
3691
3483
  sel = vnode.sel; // When unmounting a VNode subtree not all the elements have to removed from the DOM. The
3692
3484
  // subtree root, is the only element worth unmounting from the subtree.
3693
3485
 
3694
3486
  if (doRemove) {
3695
- removeNode(elm, parent);
3487
+ // The vnode might or might not have a data.renderer associated to it
3488
+ // but the removal used here is from the owner instead.
3489
+ removeNode(elm, parent, renderer);
3696
3490
  }
3697
3491
 
3698
- var removeChildren = sel === 'slot'; // slot content is removed to trigger slotchange event when removing slot
3699
-
3700
3492
  switch (type) {
3701
3493
  case 2
3702
3494
  /* Element */
3703
3495
  :
3704
- unmountVNodes(vnode.children, elm, removeChildren);
3705
- break;
3496
+ {
3497
+ // Slot content is removed to trigger slotchange event when removing slot.
3498
+ // Only required for synthetic shadow.
3499
+ var shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1
3500
+ /* Synthetic */
3501
+ ;
3502
+ unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);
3503
+ break;
3504
+ }
3706
3505
 
3707
3506
  case 3
3708
3507
  /* CustomElement */
@@ -3718,16 +3517,16 @@
3718
3517
  }
3719
3518
  }
3720
3519
 
3721
- function unmountVNodes(vnodes, parent) {
3722
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3723
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
3724
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
3520
+ function unmountVNodes(vnodes, parent, renderer) {
3521
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
3522
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
3523
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
3725
3524
 
3726
3525
  for (; start < end; ++start) {
3727
3526
  var ch = vnodes[start];
3728
3527
 
3729
3528
  if (isVNode(ch)) {
3730
- unmount(ch, parent, doRemove);
3529
+ unmount(ch, parent, renderer, doRemove);
3731
3530
  }
3732
3531
  }
3733
3532
  }
@@ -3745,22 +3544,26 @@
3745
3544
  } // Set the scope token class for *.scoped.css styles
3746
3545
 
3747
3546
 
3748
- function setScopeTokenClassIfNecessary(elm, owner) {
3547
+ function setScopeTokenClassIfNecessary(elm, owner, renderer) {
3749
3548
  var cmpTemplate = owner.cmpTemplate,
3750
3549
  context = owner.context;
3550
+ var getClassList = renderer.getClassList;
3751
3551
  var token = cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken;
3752
3552
 
3753
3553
  if (!isUndefined$1(token) && context.hasScopedStyles) {
3754
- getClassList$1(elm).add(token);
3554
+ // TODO [#2762]: this dot notation with add is probably problematic
3555
+ // probably we should have a renderer api for just the add operation
3556
+ getClassList(elm).add(token);
3755
3557
  }
3756
3558
  }
3757
3559
 
3758
- function linkNodeToShadow(elm, owner) {
3560
+ function linkNodeToShadow(elm, owner, renderer) {
3759
3561
  var renderRoot = owner.renderRoot,
3760
3562
  renderMode = owner.renderMode,
3761
- shadowMode = owner.shadowMode; // TODO [#1164]: this should eventually be done by the polyfill directly
3563
+ shadowMode = owner.shadowMode;
3564
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined; // TODO [#1164]: this should eventually be done by the polyfill directly
3762
3565
 
3763
- if (isSyntheticShadowDefined$1) {
3566
+ if (isSyntheticShadowDefined) {
3764
3567
  if (shadowMode === 1
3765
3568
  /* Synthetic */
3766
3569
  || renderMode === 0
@@ -3771,41 +3574,42 @@
3771
3574
  }
3772
3575
  }
3773
3576
 
3774
- function updateTextContent(vnode) {
3577
+ function updateTextContent(vnode, renderer) {
3775
3578
  var elm = vnode.elm,
3776
3579
  text = vnode.text;
3580
+ var setText = renderer.setText;
3777
3581
 
3778
- setText$1(elm, text);
3582
+ setText(elm, text);
3779
3583
  }
3780
3584
 
3781
- function insertNode(node, parent, anchor) {
3585
+ function insertNode(node, parent, anchor, renderer) {
3782
3586
 
3783
- insert$1(node, parent, anchor);
3587
+ renderer.insert(node, parent, anchor);
3784
3588
  }
3785
3589
 
3786
- function removeNode(node, parent) {
3590
+ function removeNode(node, parent, renderer) {
3787
3591
 
3788
- remove$1(node, parent);
3592
+ renderer.remove(node, parent);
3789
3593
  }
3790
3594
 
3791
- function patchElementPropsAndAttrs$1(oldVnode, vnode) {
3595
+ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
3792
3596
  if (isNull(oldVnode)) {
3793
- applyEventListeners(vnode);
3794
- applyStaticClassAttribute(vnode);
3795
- applyStaticStyleAttribute(vnode);
3597
+ applyEventListeners(vnode, renderer);
3598
+ applyStaticClassAttribute(vnode, renderer);
3599
+ applyStaticStyleAttribute(vnode, renderer);
3796
3600
  } // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if
3797
3601
  // value is set before type=radio.
3798
3602
 
3799
3603
 
3800
- patchClassAttribute(oldVnode, vnode);
3801
- patchStyleAttribute(oldVnode, vnode);
3802
- patchAttributes(oldVnode, vnode);
3803
- patchProps(oldVnode, vnode);
3604
+ patchClassAttribute(oldVnode, vnode, renderer);
3605
+ patchStyleAttribute(oldVnode, vnode, renderer);
3606
+ patchAttributes(oldVnode, vnode, renderer);
3607
+ patchProps(oldVnode, vnode, renderer);
3804
3608
  }
3805
3609
 
3806
- function fallbackElmHook(elm, vnode) {
3610
+ function fallbackElmHook(elm, vnode, renderer) {
3807
3611
  var owner = vnode.owner;
3808
- setScopeTokenClassIfNecessary(elm, owner);
3612
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3809
3613
 
3810
3614
  if (owner.shadowMode === 1
3811
3615
  /* Synthetic */
@@ -3858,7 +3662,7 @@
3858
3662
  }
3859
3663
  }
3860
3664
 
3861
- function createViewModelHook(elm, vnode) {
3665
+ function createViewModelHook(elm, vnode, renderer) {
3862
3666
  var vm = getAssociatedVMIfPresent(elm); // There is a possibility that a custom element is registered under tagName, in which case, the
3863
3667
  // initialization is already carry on, and there is nothing else to do here since this hook is
3864
3668
  // called right after invoking `document.createElement`.
@@ -3871,7 +3675,7 @@
3871
3675
  mode = vnode.mode,
3872
3676
  ctor = vnode.ctor,
3873
3677
  owner = vnode.owner;
3874
- setScopeTokenClassIfNecessary(elm, owner);
3678
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3875
3679
 
3876
3680
  if (owner.shadowMode === 1
3877
3681
  /* Synthetic */
@@ -3884,7 +3688,7 @@
3884
3688
  }
3885
3689
  }
3886
3690
 
3887
- vm = createVM(elm, ctor, {
3691
+ vm = createVM(elm, ctor, renderer, {
3888
3692
  mode: mode,
3889
3693
  owner: owner,
3890
3694
  tagName: sel
@@ -3899,8 +3703,8 @@
3899
3703
  var oldSlots = vm.cmpSlots;
3900
3704
  var cmpSlots = vm.cmpSlots = create(null);
3901
3705
 
3902
- for (var _i13 = 0, len = children.length; _i13 < len; _i13 += 1) {
3903
- var vnode = children[_i13];
3706
+ for (var _i12 = 0, len = children.length; _i12 < len; _i12 += 1) {
3707
+ var vnode = children[_i12];
3904
3708
 
3905
3709
  if (isNull(vnode)) {
3906
3710
  continue;
@@ -3926,8 +3730,8 @@
3926
3730
  return;
3927
3731
  }
3928
3732
 
3929
- for (var _i14 = 0, _len4 = oldKeys.length; _i14 < _len4; _i14 += 1) {
3930
- var key = oldKeys[_i14];
3733
+ for (var _i13 = 0, _len4 = oldKeys.length; _i13 < _len4; _i13 += 1) {
3734
+ var key = oldKeys[_i13];
3931
3735
 
3932
3736
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
3933
3737
  markComponentAsDirty(vm);
@@ -3977,7 +3781,7 @@
3977
3781
  return map;
3978
3782
  }
3979
3783
 
3980
- function updateDynamicChildren(oldCh, newCh, parent) {
3784
+ function updateDynamicChildren(oldCh, newCh, parent, renderer) {
3981
3785
  var oldStartIdx = 0;
3982
3786
  var newStartIdx = 0;
3983
3787
  var oldEndIdx = oldCh.length - 1;
@@ -4003,23 +3807,23 @@
4003
3807
  } else if (!isVNode(newEndVnode)) {
4004
3808
  newEndVnode = newCh[--newEndIdx];
4005
3809
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
4006
- patch(oldStartVnode, newStartVnode);
3810
+ patch(oldStartVnode, newStartVnode, renderer);
4007
3811
  oldStartVnode = oldCh[++oldStartIdx];
4008
3812
  newStartVnode = newCh[++newStartIdx];
4009
3813
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
4010
- patch(oldEndVnode, newEndVnode);
3814
+ patch(oldEndVnode, newEndVnode, renderer);
4011
3815
  oldEndVnode = oldCh[--oldEndIdx];
4012
3816
  newEndVnode = newCh[--newEndIdx];
4013
3817
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
4014
3818
  // Vnode moved right
4015
- patch(oldStartVnode, newEndVnode);
4016
- insertNode(oldStartVnode.elm, parent, nextSibling$1(oldEndVnode.elm));
3819
+ patch(oldStartVnode, newEndVnode, renderer);
3820
+ insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
4017
3821
  oldStartVnode = oldCh[++oldStartIdx];
4018
3822
  newEndVnode = newCh[--newEndIdx];
4019
3823
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
4020
3824
  // Vnode moved left
4021
- patch(oldEndVnode, newStartVnode);
4022
- insertNode(newStartVnode.elm, parent, oldStartVnode.elm);
3825
+ patch(oldEndVnode, newStartVnode, renderer);
3826
+ insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
4023
3827
  oldEndVnode = oldCh[--oldEndIdx];
4024
3828
  newStartVnode = newCh[++newStartIdx];
4025
3829
  } else {
@@ -4031,7 +3835,7 @@
4031
3835
 
4032
3836
  if (isUndefined$1(idxInOld)) {
4033
3837
  // New element
4034
- mount(newStartVnode, parent, oldStartVnode.elm);
3838
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4035
3839
  newStartVnode = newCh[++newStartIdx];
4036
3840
  } else {
4037
3841
  elmToMove = oldCh[idxInOld];
@@ -4039,9 +3843,9 @@
4039
3843
  if (isVNode(elmToMove)) {
4040
3844
  if (elmToMove.sel !== newStartVnode.sel) {
4041
3845
  // New element
4042
- mount(newStartVnode, parent, oldStartVnode.elm);
3846
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4043
3847
  } else {
4044
- patch(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
3848
+ patch(elmToMove, newStartVnode, renderer); // Delete the old child, but copy the array since it is read-only.
4045
3849
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
4046
3850
  // so we only care about the `oldCh` object inside this function.
4047
3851
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -4054,7 +3858,7 @@
4054
3858
 
4055
3859
 
4056
3860
  oldCh[idxInOld] = undefined;
4057
- insertNode(elmToMove.elm, parent, oldStartVnode.elm);
3861
+ insertNode(elmToMove.elm, parent, oldStartVnode.elm, renderer);
4058
3862
  }
4059
3863
  }
4060
3864
 
@@ -4067,35 +3871,35 @@
4067
3871
  if (oldStartIdx > oldEndIdx) {
4068
3872
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
4069
3873
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
4070
- var _i15 = newEndIdx;
3874
+ var _i14 = newEndIdx;
4071
3875
  var n;
4072
3876
 
4073
3877
  do {
4074
- n = newCh[++_i15];
4075
- } while (!isVNode(n) && _i15 < newChEnd);
3878
+ n = newCh[++_i14];
3879
+ } while (!isVNode(n) && _i14 < newChEnd);
4076
3880
 
4077
3881
  before = isVNode(n) ? n.elm : null;
4078
- mountVNodes(newCh, parent, before, newStartIdx, newEndIdx + 1);
3882
+ mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
4079
3883
  } else {
4080
- unmountVNodes(oldCh, parent, true, oldStartIdx, oldEndIdx + 1);
3884
+ unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);
4081
3885
  }
4082
3886
  }
4083
3887
  }
4084
3888
 
4085
- function updateStaticChildren(c1, c2, parent) {
3889
+ function updateStaticChildren(c1, c2, parent, renderer) {
4086
3890
  var c1Length = c1.length;
4087
3891
  var c2Length = c2.length;
4088
3892
 
4089
3893
  if (c1Length === 0) {
4090
3894
  // the old list is empty, we can directly insert anything new
4091
- mountVNodes(c2, parent, null);
3895
+ mountVNodes(c2, parent, renderer, null);
4092
3896
  return;
4093
3897
  }
4094
3898
 
4095
3899
  if (c2Length === 0) {
4096
3900
  // the old list is nonempty and the new list is empty so we can directly remove all old nodes
4097
3901
  // this is the case in which the dynamic children of an if-directive should be removed
4098
- unmountVNodes(c1, parent, true);
3902
+ unmountVNodes(c1, parent, renderer, true);
4099
3903
  return;
4100
3904
  } // if the old list is not empty, the new list MUST have the same
4101
3905
  // amount of nodes, that's why we call this static children
@@ -4103,22 +3907,22 @@
4103
3907
 
4104
3908
  var anchor = null;
4105
3909
 
4106
- for (var _i16 = c2Length - 1; _i16 >= 0; _i16 -= 1) {
4107
- var n1 = c1[_i16];
4108
- var n2 = c2[_i16];
3910
+ for (var _i15 = c2Length - 1; _i15 >= 0; _i15 -= 1) {
3911
+ var n1 = c1[_i15];
3912
+ var n2 = c2[_i15];
4109
3913
 
4110
3914
  if (n2 !== n1) {
4111
3915
  if (isVNode(n1)) {
4112
3916
  if (isVNode(n2)) {
4113
3917
  // both vnodes are equivalent, and we just need to patch them
4114
- patch(n1, n2);
3918
+ patch(n1, n2, renderer);
4115
3919
  anchor = n2.elm;
4116
3920
  } else {
4117
3921
  // removing the old vnode since the new one is null
4118
- unmount(n1, parent, true);
3922
+ unmount(n1, parent, renderer, true);
4119
3923
  }
4120
3924
  } else if (isVNode(n2)) {
4121
- mount(n2, parent, anchor);
3925
+ mount(n2, parent, renderer, anchor);
4122
3926
  anchor = n2.elm;
4123
3927
  }
4124
3928
  }
@@ -4530,7 +4334,11 @@
4530
4334
  var elm = vm.elm,
4531
4335
  context = vm.context,
4532
4336
  renderMode = vm.renderMode,
4533
- shadowMode = vm.shadowMode;
4337
+ shadowMode = vm.shadowMode,
4338
+ _vm$renderer = vm.renderer,
4339
+ getClassList = _vm$renderer.getClassList,
4340
+ removeAttribute = _vm$renderer.removeAttribute,
4341
+ setAttribute = _vm$renderer.setAttribute;
4534
4342
  var newStylesheets = template.stylesheets,
4535
4343
  newStylesheetToken = template.stylesheetToken;
4536
4344
  var isSyntheticShadow = renderMode === 1
@@ -4549,11 +4357,11 @@
4549
4357
 
4550
4358
  if (!isUndefined$1(oldToken)) {
4551
4359
  if (oldHasTokenInClass) {
4552
- getClassList$1(elm).remove(makeHostToken(oldToken));
4360
+ getClassList(elm).remove(makeHostToken(oldToken));
4553
4361
  }
4554
4362
 
4555
4363
  if (oldHasTokenInAttribute) {
4556
- removeAttribute$1(elm, makeHostToken(oldToken));
4364
+ removeAttribute(elm, makeHostToken(oldToken));
4557
4365
  }
4558
4366
  } // Apply the new template styling token to the host element, if the new template has any
4559
4367
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
@@ -4566,12 +4374,12 @@
4566
4374
 
4567
4375
  if (!isUndefined$1(newToken)) {
4568
4376
  if (hasScopedStyles) {
4569
- getClassList$1(elm).add(makeHostToken(newToken));
4377
+ getClassList(elm).add(makeHostToken(newToken));
4570
4378
  newHasTokenInClass = true;
4571
4379
  }
4572
4380
 
4573
4381
  if (isSyntheticShadow) {
4574
- setAttribute$1(elm, makeHostToken(newToken), '');
4382
+ setAttribute(elm, makeHostToken(newToken), '');
4575
4383
  newHasTokenInAttribute = true;
4576
4384
  }
4577
4385
  } // Update the styling tokens present on the context object.
@@ -4586,8 +4394,8 @@
4586
4394
  var content = [];
4587
4395
  var root;
4588
4396
 
4589
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4590
- var stylesheet = stylesheets[_i17];
4397
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4398
+ var stylesheet = stylesheets[_i16];
4591
4399
 
4592
4400
  if (isArray$1(stylesheet)) {
4593
4401
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4684,17 +4492,20 @@
4684
4492
 
4685
4493
  function createStylesheet(vm, stylesheets) {
4686
4494
  var renderMode = vm.renderMode,
4687
- shadowMode = vm.shadowMode;
4495
+ shadowMode = vm.shadowMode,
4496
+ _vm$renderer2 = vm.renderer,
4497
+ ssr = _vm$renderer2.ssr,
4498
+ insertStylesheet = _vm$renderer2.insertStylesheet;
4688
4499
 
4689
4500
  if (renderMode === 1
4690
4501
  /* Shadow */
4691
4502
  && shadowMode === 1
4692
4503
  /* Synthetic */
4693
4504
  ) {
4694
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4695
- insertStylesheet$1(stylesheets[_i18]);
4505
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4506
+ insertStylesheet(stylesheets[_i17]);
4696
4507
  }
4697
- } else if (ssr$1 || vm.hydrated) {
4508
+ } else if (ssr || vm.hydrated) {
4698
4509
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
4699
4510
  // This works in the client, because the stylesheets are created, and cached in the VM
4700
4511
  // the first time the VM renders.
@@ -4707,8 +4518,8 @@
4707
4518
 
4708
4519
  var target = isNull(root) ? undefined : root.shadowRoot;
4709
4520
 
4710
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4711
- insertStylesheet$1(stylesheets[_i19], target);
4521
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4522
+ insertStylesheet(stylesheets[_i18], target);
4712
4523
  }
4713
4524
  }
4714
4525
 
@@ -4892,8 +4703,8 @@
4892
4703
  var stylesheets = template.stylesheets;
4893
4704
 
4894
4705
  if (!isUndefined$1(stylesheets)) {
4895
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4896
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4706
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4707
+ if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4897
4708
  return true;
4898
4709
  }
4899
4710
  }
@@ -5082,8 +4893,8 @@
5082
4893
 
5083
4894
  function register(service) {
5084
4895
 
5085
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
5086
- var hookName = hooks[_i21];
4896
+ for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4897
+ var hookName = hooks[_i20];
5087
4898
 
5088
4899
  if (hookName in service) {
5089
4900
  var l = Services[hookName];
@@ -5103,8 +4914,8 @@
5103
4914
  def = vm.def,
5104
4915
  context = vm.context;
5105
4916
 
5106
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
5107
- cbs[_i22].call(undefined, component, {}, def, context);
4917
+ for (var _i21 = 0, len = cbs.length; _i21 < len; ++_i21) {
4918
+ cbs[_i21].call(undefined, component, {}, def, context);
5108
4919
  }
5109
4920
  }
5110
4921
  /*
@@ -5197,9 +5008,19 @@
5197
5008
  resetComponentStateWhenRemoved(vm);
5198
5009
  }
5199
5010
 
5200
- function createVM(elm, ctor, options) {
5201
- var _a;
5011
+ function getNearestShadowAncestor(vm) {
5012
+ var ancestor = vm.owner;
5202
5013
 
5014
+ while (!isNull(ancestor) && ancestor.renderMode === 0
5015
+ /* Light */
5016
+ ) {
5017
+ ancestor = ancestor.owner;
5018
+ }
5019
+
5020
+ return ancestor;
5021
+ }
5022
+
5023
+ function createVM(elm, ctor, renderer, options) {
5203
5024
  var mode = options.mode,
5204
5025
  owner = options.owner,
5205
5026
  tagName = options.tagName,
@@ -5227,8 +5048,6 @@
5227
5048
  cmpTemplate: null,
5228
5049
  hydrated: Boolean(hydrated),
5229
5050
  renderMode: def.renderMode,
5230
- shadowMode: computeShadowMode(def, owner),
5231
- nearestShadowMode: (owner === null || owner === void 0 ? void 0 : owner.shadowRoot) ? owner.shadowMode : (_a = owner === null || owner === void 0 ? void 0 : owner.nearestShadowMode) !== null && _a !== void 0 ? _a : null,
5232
5051
  context: {
5233
5052
  stylesheetToken: undefined,
5234
5053
  hasTokenInClass: undefined,
@@ -5241,14 +5060,17 @@
5241
5060
  },
5242
5061
  // Properties set right after VM creation.
5243
5062
  tro: null,
5063
+ shadowMode: null,
5244
5064
  // Properties set by the LightningElement constructor.
5245
5065
  component: null,
5246
5066
  shadowRoot: null,
5247
5067
  renderRoot: null,
5248
5068
  callHook: callHook,
5249
5069
  setHook: setHook,
5250
- getHook: getHook
5070
+ getHook: getHook,
5071
+ renderer: renderer
5251
5072
  };
5073
+ vm.shadowMode = computeShadowMode(vm, renderer);
5252
5074
  vm.tro = getTemplateReactiveObserver(vm);
5253
5075
 
5254
5076
 
@@ -5261,12 +5083,13 @@
5261
5083
  return vm;
5262
5084
  }
5263
5085
 
5264
- function computeShadowMode(def, owner) {
5265
- var _a;
5266
-
5086
+ function computeShadowMode(vm, renderer) {
5087
+ var def = vm.def;
5088
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined,
5089
+ isNativeShadowDefined = renderer.isNativeShadowDefined;
5267
5090
  var shadowMode;
5268
5091
 
5269
- if (isSyntheticShadowDefined$1) {
5092
+ if (isSyntheticShadowDefined) {
5270
5093
  if (def.renderMode === 0
5271
5094
  /* Light */
5272
5095
  ) {
@@ -5275,7 +5098,7 @@
5275
5098
  shadowMode = 0
5276
5099
  /* Native */
5277
5100
  ;
5278
- } else if (isNativeShadowDefined$1) {
5101
+ } else if (isNativeShadowDefined) {
5279
5102
  // Not combined with above condition because @lwc/features only supports identifiers in
5280
5103
  // the if-condition.
5281
5104
  if (runtimeFlags.ENABLE_MIXED_SHADOW_MODE) {
@@ -5286,13 +5109,23 @@
5286
5109
  /* Native */
5287
5110
  ;
5288
5111
  } else {
5289
- // Transitive support for native Shadow DOM. A component in native mode
5290
- // transitively opts all of its descendants into native.
5291
- // Synthetic if neither this component nor any of its ancestors are configured
5292
- // to be native.
5293
- shadowMode = (_a = owner === null || owner === void 0 ? void 0 : owner.nearestShadowMode) !== null && _a !== void 0 ? _a : 1
5294
- /* Synthetic */
5295
- ;
5112
+ var shadowAncestor = getNearestShadowAncestor(vm);
5113
+
5114
+ if (!isNull(shadowAncestor) && shadowAncestor.shadowMode === 0
5115
+ /* Native */
5116
+ ) {
5117
+ // Transitive support for native Shadow DOM. A component in native mode
5118
+ // transitively opts all of its descendants into native.
5119
+ shadowMode = 0
5120
+ /* Native */
5121
+ ;
5122
+ } else {
5123
+ // Synthetic if neither this component nor any of its ancestors are configured
5124
+ // to be native.
5125
+ shadowMode = 1
5126
+ /* Synthetic */
5127
+ ;
5128
+ }
5296
5129
  }
5297
5130
  } else {
5298
5131
  shadowMode = 1
@@ -5340,7 +5173,8 @@
5340
5173
 
5341
5174
  function patchShadowRoot(vm, newCh) {
5342
5175
  var renderRoot = vm.renderRoot,
5343
- oldCh = vm.children; // caching the new children collection
5176
+ oldCh = vm.children,
5177
+ renderer = vm.renderer; // caching the new children collection
5344
5178
 
5345
5179
  vm.children = newCh;
5346
5180
 
@@ -5355,7 +5189,7 @@
5355
5189
  , vm);
5356
5190
  }, function () {
5357
5191
  // job
5358
- patchChildren(oldCh, newCh, renderRoot);
5192
+ patchChildren(oldCh, newCh, renderRoot, renderer);
5359
5193
  }, function () {
5360
5194
  // post
5361
5195
  logOperationEnd(2
@@ -5377,9 +5211,10 @@
5377
5211
  }
5378
5212
 
5379
5213
  function runRenderedCallback(vm) {
5380
- var renderedCallback = vm.def.renderedCallback;
5214
+ var renderedCallback = vm.def.renderedCallback,
5215
+ ssr = vm.renderer.ssr;
5381
5216
 
5382
- if (isTrue(ssr$1)) {
5217
+ if (isTrue(ssr)) {
5383
5218
  return;
5384
5219
  }
5385
5220
 
@@ -5412,19 +5247,19 @@
5412
5247
  });
5413
5248
  rehydrateQueue = []; // reset to a new queue
5414
5249
 
5415
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
5416
- var vm = vms[_i23];
5250
+ for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
5251
+ var vm = vms[_i22];
5417
5252
 
5418
5253
  try {
5419
5254
  rehydrate(vm);
5420
5255
  } catch (error) {
5421
- if (_i23 + 1 < len) {
5256
+ if (_i22 + 1 < len) {
5422
5257
  // pieces of the queue are still pending to be rehydrated, those should have priority
5423
5258
  if (rehydrateQueue.length === 0) {
5424
5259
  addCallbackToNextTick(flushRehydrationQueue);
5425
5260
  }
5426
5261
 
5427
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
5262
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
5428
5263
  } // we need to end the measure before throwing.
5429
5264
 
5430
5265
 
@@ -5523,8 +5358,8 @@
5523
5358
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5524
5359
  // inserted in reserved order.
5525
5360
 
5526
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
5527
- var elm = vCustomElementCollection[_i24].elm; // There are two cases where the element could be undefined:
5361
+ for (var _i23 = vCustomElementCollection.length - 1; _i23 >= 0; _i23 -= 1) {
5362
+ var elm = vCustomElementCollection[_i23].elm; // There are two cases where the element could be undefined:
5528
5363
  // * when there is an error during the construction phase, and an error
5529
5364
  // boundary picks it, there is a possibility that the VCustomElement
5530
5365
  // is not properly initialized, and therefore is should be ignored.
@@ -5558,8 +5393,8 @@
5558
5393
 
5559
5394
 
5560
5395
  function recursivelyDisconnectChildren(vnodes) {
5561
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
5562
- var vnode = vnodes[_i25];
5396
+ for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
5397
+ var vnode = vnodes[_i24];
5563
5398
 
5564
5399
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5565
5400
  switch (vnode.type) {
@@ -5588,13 +5423,14 @@
5588
5423
 
5589
5424
  function resetComponentRoot(vm) {
5590
5425
  var children = vm.children,
5591
- renderRoot = vm.renderRoot;
5426
+ renderRoot = vm.renderRoot,
5427
+ remove = vm.renderer.remove;
5592
5428
 
5593
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
5594
- var child = children[_i26];
5429
+ for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
5430
+ var child = children[_i25];
5595
5431
 
5596
5432
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5597
- remove$1(child.elm, renderRoot);
5433
+ remove(child.elm, renderRoot);
5598
5434
  }
5599
5435
  }
5600
5436
 
@@ -5604,7 +5440,9 @@
5604
5440
  }
5605
5441
 
5606
5442
  function scheduleRehydration(vm) {
5607
- if (isTrue(ssr$1) || isTrue(vm.isScheduled)) {
5443
+ var ssr = vm.renderer.ssr;
5444
+
5445
+ if (isTrue(ssr) || isTrue(vm.isScheduled)) {
5608
5446
  return;
5609
5447
  }
5610
5448
 
@@ -5771,7 +5609,8 @@
5771
5609
  var elm = vm.elm,
5772
5610
  _vm$context = vm.context,
5773
5611
  wiredConnecting = _vm$context.wiredConnecting,
5774
- wiredDisconnecting = _vm$context.wiredDisconnecting; // waiting for the component to be connected to formally request the context via the token
5612
+ wiredDisconnecting = _vm$context.wiredDisconnecting,
5613
+ dispatchEvent = vm.renderer.dispatchEvent; // waiting for the component to be connected to formally request the context via the token
5775
5614
 
5776
5615
  ArrayPush$1.call(wiredConnecting, function () {
5777
5616
  // This event is responsible for connecting the host element with another
@@ -5791,7 +5630,7 @@
5791
5630
  ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
5792
5631
  }
5793
5632
  });
5794
- dispatchEvent$1(elm, contextRegistrationEvent);
5633
+ dispatchEvent(elm, contextRegistrationEvent);
5795
5634
  });
5796
5635
  }
5797
5636
 
@@ -5941,8 +5780,8 @@
5941
5780
  function connectWireAdapters(vm) {
5942
5781
  var wiredConnecting = vm.context.wiredConnecting;
5943
5782
 
5944
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
5945
- wiredConnecting[_i27]();
5783
+ for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
5784
+ wiredConnecting[_i26]();
5946
5785
  }
5947
5786
  }
5948
5787
 
@@ -5950,8 +5789,8 @@
5950
5789
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5951
5790
  runWithBoundaryProtection(vm, vm, noop, function () {
5952
5791
  // job
5953
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
5954
- wiredDisconnecting[_i28]();
5792
+ for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
5793
+ wiredDisconnecting[_i27]();
5955
5794
  }
5956
5795
  }, noop);
5957
5796
  }
@@ -6045,79 +5884,87 @@
6045
5884
  function hydrateVM(vm) {
6046
5885
  var children = renderComponent(vm);
6047
5886
  vm.children = children;
6048
- var parentNode = vm.renderRoot;
6049
- hydrateChildren(getFirstChild$1(parentNode), children, parentNode);
5887
+ var parentNode = vm.renderRoot,
5888
+ getFirstChild = vm.renderer.getFirstChild;
5889
+ hydrateChildren(getFirstChild(parentNode), children, parentNode, vm);
6050
5890
  runRenderedCallback(vm);
6051
5891
  }
6052
5892
 
6053
- function hydrateNode(node, vnode) {
5893
+ function hydrateNode(node, vnode, renderer) {
5894
+ var _a, _b;
5895
+
6054
5896
  var hydratedNode;
6055
5897
 
6056
5898
  switch (vnode.type) {
6057
5899
  case 0
6058
5900
  /* Text */
6059
5901
  :
6060
- hydratedNode = hydrateText(node, vnode);
5902
+ // VText has no special capability, fallback to the owner's renderer
5903
+ hydratedNode = hydrateText(node, vnode, renderer);
6061
5904
  break;
6062
5905
 
6063
5906
  case 1
6064
5907
  /* Comment */
6065
5908
  :
6066
- hydratedNode = hydrateComment(node, vnode);
5909
+ // VComment has no special capability, fallback to the owner's renderer
5910
+ hydratedNode = hydrateComment(node, vnode, renderer);
6067
5911
  break;
6068
5912
 
6069
5913
  case 2
6070
5914
  /* Element */
6071
5915
  :
6072
- hydratedNode = hydrateElement(node, vnode);
5916
+ hydratedNode = hydrateElement(node, vnode, (_a = vnode.data.renderer) !== null && _a !== void 0 ? _a : renderer);
6073
5917
  break;
6074
5918
 
6075
5919
  case 3
6076
5920
  /* CustomElement */
6077
5921
  :
6078
- hydratedNode = hydrateCustomElement(node, vnode);
5922
+ hydratedNode = hydrateCustomElement(node, vnode, (_b = vnode.data.renderer) !== null && _b !== void 0 ? _b : renderer);
6079
5923
  break;
6080
5924
  }
6081
5925
 
6082
- return nextSibling$1(hydratedNode);
5926
+ return renderer.nextSibling(hydratedNode);
6083
5927
  }
6084
5928
 
6085
- function hydrateText(node, vnode) {
5929
+ function hydrateText(node, vnode, renderer) {
6086
5930
  var _a;
6087
5931
 
6088
5932
  if (!hasCorrectNodeType(vnode, node, 3
6089
5933
  /* TEXT */
6090
- )) {
6091
- return handleMismatch(node, vnode);
5934
+ , renderer)) {
5935
+ return handleMismatch(node, vnode, renderer);
6092
5936
  }
6093
5937
 
6094
- setText$1(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
5938
+ var setText = renderer.setText;
5939
+ setText(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
6095
5940
  vnode.elm = node;
6096
5941
  return node;
6097
5942
  }
6098
5943
 
6099
- function hydrateComment(node, vnode) {
5944
+ function hydrateComment(node, vnode, renderer) {
6100
5945
  var _a;
6101
5946
 
6102
5947
  if (!hasCorrectNodeType(vnode, node, 8
6103
5948
  /* COMMENT */
6104
- )) {
6105
- return handleMismatch(node, vnode);
5949
+ , renderer)) {
5950
+ return handleMismatch(node, vnode, renderer);
6106
5951
  }
6107
5952
 
6108
- setProperty$1(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
5953
+ var setProperty = renderer.setProperty;
5954
+ setProperty(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
6109
5955
  vnode.elm = node;
6110
5956
  return node;
6111
5957
  }
6112
5958
 
6113
- function hydrateElement(elm, vnode) {
5959
+ function hydrateElement(elm, vnode, renderer) {
6114
5960
  if (!hasCorrectNodeType(vnode, elm, 1
6115
5961
  /* ELEMENT */
6116
- ) || !isMatchingElement(vnode, elm)) {
6117
- return handleMismatch(elm, vnode);
5962
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
5963
+ return handleMismatch(elm, vnode, renderer);
6118
5964
  }
6119
5965
 
6120
5966
  vnode.elm = elm;
5967
+ var owner = vnode.owner;
6121
5968
  var context = vnode.data.context;
6122
5969
  var isDomManual = Boolean(!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
6123
5970
  /* Manual */
@@ -6127,9 +5974,10 @@
6127
5974
  // it may be that this element has lwc:inner-html, we need to diff and in case are the same,
6128
5975
  // remove the innerHTML from props so it reuses the existing dom elements.
6129
5976
  var props = vnode.data.props;
5977
+ var _getProperty3 = renderer.getProperty;
6130
5978
 
6131
5979
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
6132
- if (getProperty$1(elm, 'innerHTML') === props.innerHTML) {
5980
+ if (_getProperty3(elm, 'innerHTML') === props.innerHTML) {
6133
5981
  // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
6134
5982
  vnode.data = Object.assign(Object.assign({}, vnode.data), {
6135
5983
  props: cloneAndOmitKey(props, 'innerHTML')
@@ -6138,27 +5986,28 @@
6138
5986
  }
6139
5987
  }
6140
5988
 
6141
- patchElementPropsAndAttrs(vnode);
5989
+ patchElementPropsAndAttrs(vnode, renderer);
6142
5990
 
6143
5991
  if (!isDomManual) {
6144
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vnode.owner);
5992
+ var _getFirstChild = renderer.getFirstChild;
5993
+ hydrateChildren(_getFirstChild(elm), vnode.children, elm, owner);
6145
5994
  }
6146
5995
 
6147
5996
  return elm;
6148
5997
  }
6149
5998
 
6150
- function hydrateCustomElement(elm, vnode) {
5999
+ function hydrateCustomElement(elm, vnode, renderer) {
6151
6000
  if (!hasCorrectNodeType(vnode, elm, 1
6152
6001
  /* ELEMENT */
6153
- ) || !isMatchingElement(vnode, elm)) {
6154
- return handleMismatch(elm, vnode);
6002
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
6003
+ return handleMismatch(elm, vnode, renderer);
6155
6004
  }
6156
6005
 
6157
6006
  var sel = vnode.sel,
6158
6007
  mode = vnode.mode,
6159
6008
  ctor = vnode.ctor,
6160
6009
  owner = vnode.owner;
6161
- var vm = createVM(elm, ctor, {
6010
+ var vm = createVM(elm, ctor, renderer, {
6162
6011
  mode: mode,
6163
6012
  owner: owner,
6164
6013
  tagName: sel,
@@ -6167,16 +6016,17 @@
6167
6016
  vnode.elm = elm;
6168
6017
  vnode.vm = vm;
6169
6018
  allocateChildren(vnode, vm);
6170
- patchElementPropsAndAttrs(vnode); // Insert hook section:
6019
+ patchElementPropsAndAttrs(vnode, renderer); // Insert hook section:
6171
6020
 
6172
6021
  runConnectedCallback(vm);
6173
6022
 
6174
6023
  if (vm.renderMode !== 0
6175
6024
  /* Light */
6176
6025
  ) {
6177
- // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
6026
+ var _getFirstChild2 = renderer.getFirstChild; // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
6178
6027
  // Note: for Light DOM, this is handled while hydrating the VM
6179
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm);
6028
+
6029
+ hydrateChildren(_getFirstChild2(elm), vnode.children, elm, vm);
6180
6030
  }
6181
6031
 
6182
6032
  hydrateVM(vm);
@@ -6186,18 +6036,19 @@
6186
6036
  function hydrateChildren(node, children, parentNode, owner) {
6187
6037
  var nextNode = node;
6188
6038
  var anchor = null;
6039
+ var renderer = owner.renderer;
6189
6040
 
6190
- for (var _i29 = 0; _i29 < children.length; _i29++) {
6191
- var childVnode = children[_i29];
6041
+ for (var _i28 = 0; _i28 < children.length; _i28++) {
6042
+ var childVnode = children[_i28];
6192
6043
 
6193
6044
  if (!isNull(childVnode)) {
6194
6045
  if (nextNode) {
6195
- nextNode = hydrateNode(nextNode, childVnode);
6046
+ nextNode = hydrateNode(nextNode, childVnode, renderer);
6196
6047
  anchor = childVnode.elm;
6197
6048
  } else {
6198
6049
  hasMismatch = true;
6199
6050
 
6200
- mount(childVnode, parentNode, anchor);
6051
+ mount(childVnode, parentNode, renderer, anchor);
6201
6052
  anchor = childVnode.elm;
6202
6053
  }
6203
6054
  }
@@ -6205,31 +6056,39 @@
6205
6056
 
6206
6057
  if (nextNode) {
6207
6058
  hasMismatch = true;
6059
+ // a good reference to what element to act upon, we instead
6060
+ // rely on the vm's associated renderer for navigating to the
6061
+ // next node in the list to be hydrated.
6062
+
6063
+
6064
+ var _nextSibling = renderer.nextSibling;
6208
6065
 
6209
6066
  do {
6210
6067
  var current = nextNode;
6211
- nextNode = nextSibling$1(nextNode);
6212
- removeNode(current, parentNode);
6068
+ nextNode = _nextSibling(nextNode);
6069
+ removeNode(current, parentNode, renderer);
6213
6070
  } while (nextNode);
6214
6071
  }
6215
6072
  }
6216
6073
 
6217
- function handleMismatch(node, vnode, msg) {
6074
+ function handleMismatch(node, vnode, renderer) {
6218
6075
  hasMismatch = true;
6219
-
6220
- var parentNode = getProperty$1(node, 'parentNode');
6221
- mount(vnode, parentNode, node);
6222
- removeNode(node, parentNode);
6076
+ var getProperty = renderer.getProperty;
6077
+ var parentNode = getProperty(node, 'parentNode');
6078
+ mount(vnode, parentNode, renderer, node);
6079
+ removeNode(node, parentNode, renderer);
6223
6080
  return vnode.elm;
6224
6081
  }
6225
6082
 
6226
- function patchElementPropsAndAttrs(vnode) {
6227
- applyEventListeners(vnode);
6228
- patchProps(null, vnode);
6083
+ function patchElementPropsAndAttrs(vnode, renderer) {
6084
+ applyEventListeners(vnode, renderer);
6085
+ patchProps(null, vnode, renderer);
6229
6086
  }
6230
6087
 
6231
- function hasCorrectNodeType(vnode, node, nodeType) {
6232
- if (getProperty$1(node, 'nodeType') !== nodeType) {
6088
+ function hasCorrectNodeType(vnode, node, nodeType, renderer) {
6089
+ var getProperty = renderer.getProperty;
6090
+
6091
+ if (getProperty(node, 'nodeType') !== nodeType) {
6233
6092
 
6234
6093
  return false;
6235
6094
  }
@@ -6237,30 +6096,35 @@
6237
6096
  return true;
6238
6097
  }
6239
6098
 
6240
- function isMatchingElement(vnode, elm) {
6241
- if (vnode.sel.toLowerCase() !== getProperty$1(elm, 'tagName').toLowerCase()) {
6099
+ function isMatchingElement(vnode, elm, renderer) {
6100
+ var getProperty = renderer.getProperty;
6101
+
6102
+ if (vnode.sel.toLowerCase() !== getProperty(elm, 'tagName').toLowerCase()) {
6242
6103
 
6243
6104
  return false;
6244
6105
  }
6245
6106
 
6246
- var hasIncompatibleAttrs = validateAttrs(vnode, elm);
6247
- var hasIncompatibleClass = validateClassAttr(vnode, elm);
6248
- var hasIncompatibleStyle = validateStyleAttr(vnode, elm);
6107
+ var hasIncompatibleAttrs = validateAttrs(vnode, elm, renderer);
6108
+ var hasIncompatibleClass = validateClassAttr(vnode, elm, renderer);
6109
+ var hasIncompatibleStyle = validateStyleAttr(vnode, elm, renderer);
6249
6110
  return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
6250
6111
  }
6251
6112
 
6252
- function validateAttrs(vnode, elm) {
6113
+ function validateAttrs(vnode, elm, renderer) {
6253
6114
  var _vnode$data$attrs = vnode.data.attrs,
6254
6115
  attrs = _vnode$data$attrs === void 0 ? {} : _vnode$data$attrs;
6255
6116
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
6256
6117
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6257
6118
 
6258
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
6259
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
6119
+ for (var _i29 = 0, _Object$entries = Object.entries(attrs); _i29 < _Object$entries.length; _i29++) {
6120
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i29], 2),
6260
6121
  attrName = _Object$entries$_i[0],
6261
6122
  attrValue = _Object$entries$_i[1];
6262
6123
 
6263
- var elmAttrValue = getAttribute$1(elm, attrName);
6124
+ vnode.owner;
6125
+ var _getAttribute = renderer.getAttribute;
6126
+
6127
+ var elmAttrValue = _getAttribute(elm, attrName);
6264
6128
 
6265
6129
  if (String(attrValue) !== elmAttrValue) {
6266
6130
 
@@ -6271,18 +6135,20 @@
6271
6135
  return nodesAreCompatible;
6272
6136
  }
6273
6137
 
6274
- function validateClassAttr(vnode, elm) {
6138
+ function validateClassAttr(vnode, elm, renderer) {
6275
6139
  var _vnode$data = vnode.data,
6276
6140
  className = _vnode$data.className,
6277
6141
  classMap = _vnode$data.classMap;
6142
+ var getProperty = renderer.getProperty,
6143
+ getClassList = renderer.getClassList;
6278
6144
  var nodesAreCompatible = true;
6279
6145
 
6280
- if (!isUndefined$1(className) && String(className) !== getProperty$1(elm, 'className')) {
6146
+ if (!isUndefined$1(className) && String(className) !== getProperty(elm, 'className')) {
6281
6147
  // className is used when class is bound to an expr.
6282
6148
  nodesAreCompatible = false;
6283
6149
  } else if (!isUndefined$1(classMap)) {
6284
6150
  // classMap is used when class is set to static value.
6285
- var classList = getClassList$1(elm);
6151
+ var classList = getClassList(elm);
6286
6152
  var computedClassName = ''; // all classes from the vnode should be in the element.classList
6287
6153
 
6288
6154
  for (var name in classMap) {
@@ -6303,11 +6169,12 @@
6303
6169
  return nodesAreCompatible;
6304
6170
  }
6305
6171
 
6306
- function validateStyleAttr(vnode, elm) {
6172
+ function validateStyleAttr(vnode, elm, renderer) {
6307
6173
  var _vnode$data2 = vnode.data,
6308
6174
  style = _vnode$data2.style,
6309
6175
  styleDecls = _vnode$data2.styleDecls;
6310
- var elmStyle = getAttribute$1(elm, 'style') || '';
6176
+ var getAttribute = renderer.getAttribute;
6177
+ var elmStyle = getAttribute(elm, 'style') || '';
6311
6178
  var nodesAreCompatible = true;
6312
6179
 
6313
6180
  if (!isUndefined$1(style) && style !== elmStyle) {
@@ -6316,8 +6183,8 @@
6316
6183
  var parsedVnodeStyle = parseStyleText(elmStyle);
6317
6184
  var expectedStyle = []; // styleMap is used when style is set to static value.
6318
6185
 
6319
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
6320
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
6186
+ for (var _i30 = 0, n = styleDecls.length; _i30 < n; _i30++) {
6187
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i30], 3),
6321
6188
  prop = _styleDecls$_i2[0],
6322
6189
  value = _styleDecls$_i2[1],
6323
6190
  important = _styleDecls$_i2[2];
@@ -6390,7 +6257,7 @@
6390
6257
 
6391
6258
  return ctor;
6392
6259
  }
6393
- /* version: 2.13.4 */
6260
+ /* version: 2.14.2 */
6394
6261
 
6395
6262
  /*
6396
6263
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6560,7 +6427,7 @@
6560
6427
  try {
6561
6428
  // dereference HTMLElement global because babel wraps globals in compat mode with a
6562
6429
  // _wrapNativeSuper()
6563
- // This is a problem because LWCUpgradableElement extends renderer.HTMLElement which does not
6430
+ // This is a problem because LWCUpgradableElement extends renderer.HTMLElementExported which does not
6564
6431
  // get wrapped by babel.
6565
6432
  var HTMLElementAlias = HTMLElement; // In case we use compat mode with a modern browser, the compat mode transformation
6566
6433
  // invokes the DOM api with an .apply() or .call() to initialize any DOM api sub-classing,
@@ -6636,6 +6503,11 @@
6636
6503
  }
6637
6504
 
6638
6505
  var ssr = false;
6506
+
6507
+ function isHydrating() {
6508
+ return hydrating;
6509
+ }
6510
+
6639
6511
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
6640
6512
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
6641
6513
 
@@ -6770,44 +6642,52 @@
6770
6642
  return node.isConnected;
6771
6643
  }
6772
6644
 
6645
+ function assertInstanceOfHTMLElement(elm, msg) {
6646
+ assert.invariant(elm instanceof HTMLElement, msg);
6647
+ }
6648
+
6773
6649
  var HTMLElementExported = HTMLElementConstructor;
6774
- setAttachShadow(attachShadow);
6775
- setCreateComment(createComment);
6776
- setCreateElement(createElement$1);
6777
- setCreateText(createText);
6778
- setDefineCustomElement(defineCustomElement);
6779
- setDispatchEvent(dispatchEvent);
6780
- setGetAttribute(getAttribute);
6781
- setGetBoundingClientRect(getBoundingClientRect);
6782
- setGetChildNodes(getChildNodes);
6783
- setGetChildren(getChildren);
6784
- setGetClassList(getClassList);
6785
- setGetCustomElement(getCustomElement);
6786
- setGetElementsByClassName(getElementsByClassName);
6787
- setGetElementsByTagName(getElementsByTagName);
6788
- setGetFirstChild(getFirstChild);
6789
- setGetFirstElementChild(getFirstElementChild);
6790
- setGetLastChild(getLastChild);
6791
- setGetLastElementChild(getLastElementChild);
6792
- setGetProperty(getProperty);
6793
- setHTMLElement(HTMLElementExported);
6794
- setInsert(insert);
6795
- setIsConnected(isConnected);
6796
- setIsNativeShadowDefined(isNativeShadowDefined);
6797
- setIsSyntheticShadowDefined(isSyntheticShadowDefined);
6798
- setNextSibling(nextSibling);
6799
- setQuerySelector(querySelector);
6800
- setQuerySelectorAll(querySelectorAll);
6801
- setRemove(remove);
6802
- setRemoveAttribute(removeAttribute);
6803
- setRemoveEventListener(removeEventListener);
6804
- setSetAttribute(setAttribute);
6805
- setSetCSSStyleProperty(setCSSStyleProperty);
6806
- setSetProperty(setProperty);
6807
- setSetText(setText);
6808
- setSsr(ssr);
6809
- setAddEventListener(addEventListener);
6810
- setInsertStylesheet(insertStylesheet);
6650
+ var renderer = {
6651
+ ssr: ssr,
6652
+ isNativeShadowDefined: isNativeShadowDefined,
6653
+ isSyntheticShadowDefined: isSyntheticShadowDefined,
6654
+ HTMLElementExported: HTMLElementExported,
6655
+ isHydrating: isHydrating,
6656
+ insert: insert,
6657
+ remove: remove,
6658
+ createElement: createElement$1,
6659
+ createText: createText,
6660
+ createComment: createComment,
6661
+ nextSibling: nextSibling,
6662
+ attachShadow: attachShadow,
6663
+ getProperty: getProperty,
6664
+ setProperty: setProperty,
6665
+ setText: setText,
6666
+ getAttribute: getAttribute,
6667
+ setAttribute: setAttribute,
6668
+ removeAttribute: removeAttribute,
6669
+ addEventListener: addEventListener,
6670
+ removeEventListener: removeEventListener,
6671
+ dispatchEvent: dispatchEvent,
6672
+ getClassList: getClassList,
6673
+ setCSSStyleProperty: setCSSStyleProperty,
6674
+ getBoundingClientRect: getBoundingClientRect,
6675
+ querySelector: querySelector,
6676
+ querySelectorAll: querySelectorAll,
6677
+ getElementsByTagName: getElementsByTagName,
6678
+ getElementsByClassName: getElementsByClassName,
6679
+ getChildren: getChildren,
6680
+ getChildNodes: getChildNodes,
6681
+ getFirstChild: getFirstChild,
6682
+ getFirstElementChild: getFirstElementChild,
6683
+ getLastChild: getLastChild,
6684
+ getLastElementChild: getLastElementChild,
6685
+ isConnected: isConnected,
6686
+ insertStylesheet: insertStylesheet,
6687
+ assertInstanceOfHTMLElement: assertInstanceOfHTMLElement,
6688
+ defineCustomElement: defineCustomElement,
6689
+ getCustomElement: getCustomElement
6690
+ };
6811
6691
  /*
6812
6692
  * Copyright (c) 2018, salesforce.com, inc.
6813
6693
  * All rights reserved.
@@ -6815,7 +6695,6 @@
6815
6695
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6816
6696
  */
6817
6697
 
6818
-
6819
6698
  function resetShadowRootAndLightDom(element, Ctor) {
6820
6699
  if (element.shadowRoot) {
6821
6700
  var shadowRoot = element.shadowRoot;
@@ -6833,15 +6712,15 @@
6833
6712
  }
6834
6713
 
6835
6714
  function createVMWithProps(element, Ctor, props) {
6836
- var vm = createVM(element, Ctor, {
6715
+ var vm = createVM(element, Ctor, renderer, {
6837
6716
  mode: 'open',
6838
6717
  owner: null,
6839
6718
  tagName: element.tagName.toLowerCase(),
6840
6719
  hydrated: true
6841
6720
  });
6842
6721
 
6843
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6844
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6722
+ for (var _i31 = 0, _Object$entries2 = Object.entries(props); _i31 < _Object$entries2.length; _i31++) {
6723
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i31], 2),
6845
6724
  key = _Object$entries2$_i[0],
6846
6725
  value = _Object$entries2$_i[1];
6847
6726
 
@@ -6949,7 +6828,7 @@
6949
6828
  hydrateComponent(_assertThisInitialized(_this6), Ctor, {});
6950
6829
  hydratedCustomElements.add(_assertThisInitialized(_this6));
6951
6830
  } else {
6952
- createVM(_assertThisInitialized(_this6), Ctor, {
6831
+ createVM(_assertThisInitialized(_this6), Ctor, renderer, {
6953
6832
  mode: 'open',
6954
6833
  owner: null,
6955
6834
  tagName: _this6.tagName
@@ -7058,7 +6937,7 @@
7058
6937
  throw new TypeError("\"createElement\" function expects an \"is\" option with a valid component constructor.");
7059
6938
  }
7060
6939
 
7061
- var UpgradableConstructor = getUpgradableConstructor(sel);
6940
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
7062
6941
  var wasComponentUpgraded = false; // the custom element from the registry is expecting an upgrade callback
7063
6942
 
7064
6943
  /**
@@ -7069,7 +6948,7 @@
7069
6948
  */
7070
6949
 
7071
6950
  var element = new UpgradableConstructor(function (elm) {
7072
- createVM(elm, Ctor, {
6951
+ createVM(elm, Ctor, renderer, {
7073
6952
  tagName: sel,
7074
6953
  mode: options.mode !== 'closed' ? 'open' : 'closed',
7075
6954
  owner: null
@@ -7166,7 +7045,7 @@
7166
7045
  });
7167
7046
  freeze(LightningElement);
7168
7047
  seal(LightningElement.prototype);
7169
- /* version: 2.13.4 */
7048
+ /* version: 2.14.2 */
7170
7049
 
7171
7050
  exports.LightningElement = LightningElement;
7172
7051
  exports.__unstable__ProfilerControl = profilerControl;
@@ -7185,6 +7064,7 @@
7185
7064
  exports.registerComponent = registerComponent;
7186
7065
  exports.registerDecorators = registerDecorators;
7187
7066
  exports.registerTemplate = registerTemplate;
7067
+ exports.renderer = renderer;
7188
7068
  exports.sanitizeAttribute = sanitizeAttribute;
7189
7069
  exports.setFeatureFlag = setFeatureFlag;
7190
7070
  exports.setFeatureFlagForTest = setFeatureFlagForTest;