lwc 2.14.1 → 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 +449 -534
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +449 -533
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +393 -478
  5. package/dist/engine-dom/iife/es5/engine-dom.js +561 -700
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +498 -642
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +449 -533
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +393 -478
  11. package/dist/engine-dom/umd/es5/engine-dom.js +561 -700
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +498 -642
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +332 -437
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +332 -438
  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.14.1 */
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() {
2141
- var vm = getAssociatedVM(this);
2142
- return vm.def.template;
2143
- },
2144
- toString: function toString() {
1923
+ get children() {
2145
1924
  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;
2159
-
2160
- case 'childNodes':
2161
- return getChildNodes$1;
1925
+ var renderer = vm.renderer;
2162
1926
 
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,28 +3463,30 @@
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
3492
  switch (type) {
@@ -3702,10 +3496,10 @@
3702
3496
  {
3703
3497
  // Slot content is removed to trigger slotchange event when removing slot.
3704
3498
  // Only required for synthetic shadow.
3705
- var removeChildren = sel === 'slot' && vnode.owner.shadowMode === 1
3499
+ var shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1
3706
3500
  /* Synthetic */
3707
3501
  ;
3708
- unmountVNodes(vnode.children, elm, removeChildren);
3502
+ unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);
3709
3503
  break;
3710
3504
  }
3711
3505
 
@@ -3723,16 +3517,16 @@
3723
3517
  }
3724
3518
  }
3725
3519
 
3726
- function unmountVNodes(vnodes, parent) {
3727
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3728
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
3729
- 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;
3730
3524
 
3731
3525
  for (; start < end; ++start) {
3732
3526
  var ch = vnodes[start];
3733
3527
 
3734
3528
  if (isVNode(ch)) {
3735
- unmount(ch, parent, doRemove);
3529
+ unmount(ch, parent, renderer, doRemove);
3736
3530
  }
3737
3531
  }
3738
3532
  }
@@ -3750,22 +3544,26 @@
3750
3544
  } // Set the scope token class for *.scoped.css styles
3751
3545
 
3752
3546
 
3753
- function setScopeTokenClassIfNecessary(elm, owner) {
3547
+ function setScopeTokenClassIfNecessary(elm, owner, renderer) {
3754
3548
  var cmpTemplate = owner.cmpTemplate,
3755
3549
  context = owner.context;
3550
+ var getClassList = renderer.getClassList;
3756
3551
  var token = cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken;
3757
3552
 
3758
3553
  if (!isUndefined$1(token) && context.hasScopedStyles) {
3759
- 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);
3760
3557
  }
3761
3558
  }
3762
3559
 
3763
- function linkNodeToShadow(elm, owner) {
3560
+ function linkNodeToShadow(elm, owner, renderer) {
3764
3561
  var renderRoot = owner.renderRoot,
3765
3562
  renderMode = owner.renderMode,
3766
- 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
3767
3565
 
3768
- if (isSyntheticShadowDefined$1) {
3566
+ if (isSyntheticShadowDefined) {
3769
3567
  if (shadowMode === 1
3770
3568
  /* Synthetic */
3771
3569
  || renderMode === 0
@@ -3776,41 +3574,42 @@
3776
3574
  }
3777
3575
  }
3778
3576
 
3779
- function updateTextContent(vnode) {
3577
+ function updateTextContent(vnode, renderer) {
3780
3578
  var elm = vnode.elm,
3781
3579
  text = vnode.text;
3580
+ var setText = renderer.setText;
3782
3581
 
3783
- setText$1(elm, text);
3582
+ setText(elm, text);
3784
3583
  }
3785
3584
 
3786
- function insertNode(node, parent, anchor) {
3585
+ function insertNode(node, parent, anchor, renderer) {
3787
3586
 
3788
- insert$1(node, parent, anchor);
3587
+ renderer.insert(node, parent, anchor);
3789
3588
  }
3790
3589
 
3791
- function removeNode(node, parent) {
3590
+ function removeNode(node, parent, renderer) {
3792
3591
 
3793
- remove$1(node, parent);
3592
+ renderer.remove(node, parent);
3794
3593
  }
3795
3594
 
3796
- function patchElementPropsAndAttrs$1(oldVnode, vnode) {
3595
+ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
3797
3596
  if (isNull(oldVnode)) {
3798
- applyEventListeners(vnode);
3799
- applyStaticClassAttribute(vnode);
3800
- applyStaticStyleAttribute(vnode);
3597
+ applyEventListeners(vnode, renderer);
3598
+ applyStaticClassAttribute(vnode, renderer);
3599
+ applyStaticStyleAttribute(vnode, renderer);
3801
3600
  } // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if
3802
3601
  // value is set before type=radio.
3803
3602
 
3804
3603
 
3805
- patchClassAttribute(oldVnode, vnode);
3806
- patchStyleAttribute(oldVnode, vnode);
3807
- patchAttributes(oldVnode, vnode);
3808
- patchProps(oldVnode, vnode);
3604
+ patchClassAttribute(oldVnode, vnode, renderer);
3605
+ patchStyleAttribute(oldVnode, vnode, renderer);
3606
+ patchAttributes(oldVnode, vnode, renderer);
3607
+ patchProps(oldVnode, vnode, renderer);
3809
3608
  }
3810
3609
 
3811
- function fallbackElmHook(elm, vnode) {
3610
+ function fallbackElmHook(elm, vnode, renderer) {
3812
3611
  var owner = vnode.owner;
3813
- setScopeTokenClassIfNecessary(elm, owner);
3612
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3814
3613
 
3815
3614
  if (owner.shadowMode === 1
3816
3615
  /* Synthetic */
@@ -3863,7 +3662,7 @@
3863
3662
  }
3864
3663
  }
3865
3664
 
3866
- function createViewModelHook(elm, vnode) {
3665
+ function createViewModelHook(elm, vnode, renderer) {
3867
3666
  var vm = getAssociatedVMIfPresent(elm); // There is a possibility that a custom element is registered under tagName, in which case, the
3868
3667
  // initialization is already carry on, and there is nothing else to do here since this hook is
3869
3668
  // called right after invoking `document.createElement`.
@@ -3876,7 +3675,7 @@
3876
3675
  mode = vnode.mode,
3877
3676
  ctor = vnode.ctor,
3878
3677
  owner = vnode.owner;
3879
- setScopeTokenClassIfNecessary(elm, owner);
3678
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3880
3679
 
3881
3680
  if (owner.shadowMode === 1
3882
3681
  /* Synthetic */
@@ -3889,7 +3688,7 @@
3889
3688
  }
3890
3689
  }
3891
3690
 
3892
- vm = createVM(elm, ctor, {
3691
+ vm = createVM(elm, ctor, renderer, {
3893
3692
  mode: mode,
3894
3693
  owner: owner,
3895
3694
  tagName: sel
@@ -3904,8 +3703,8 @@
3904
3703
  var oldSlots = vm.cmpSlots;
3905
3704
  var cmpSlots = vm.cmpSlots = create(null);
3906
3705
 
3907
- for (var _i13 = 0, len = children.length; _i13 < len; _i13 += 1) {
3908
- var vnode = children[_i13];
3706
+ for (var _i12 = 0, len = children.length; _i12 < len; _i12 += 1) {
3707
+ var vnode = children[_i12];
3909
3708
 
3910
3709
  if (isNull(vnode)) {
3911
3710
  continue;
@@ -3931,8 +3730,8 @@
3931
3730
  return;
3932
3731
  }
3933
3732
 
3934
- for (var _i14 = 0, _len4 = oldKeys.length; _i14 < _len4; _i14 += 1) {
3935
- var key = oldKeys[_i14];
3733
+ for (var _i13 = 0, _len4 = oldKeys.length; _i13 < _len4; _i13 += 1) {
3734
+ var key = oldKeys[_i13];
3936
3735
 
3937
3736
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
3938
3737
  markComponentAsDirty(vm);
@@ -3982,7 +3781,7 @@
3982
3781
  return map;
3983
3782
  }
3984
3783
 
3985
- function updateDynamicChildren(oldCh, newCh, parent) {
3784
+ function updateDynamicChildren(oldCh, newCh, parent, renderer) {
3986
3785
  var oldStartIdx = 0;
3987
3786
  var newStartIdx = 0;
3988
3787
  var oldEndIdx = oldCh.length - 1;
@@ -4008,23 +3807,23 @@
4008
3807
  } else if (!isVNode(newEndVnode)) {
4009
3808
  newEndVnode = newCh[--newEndIdx];
4010
3809
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
4011
- patch(oldStartVnode, newStartVnode);
3810
+ patch(oldStartVnode, newStartVnode, renderer);
4012
3811
  oldStartVnode = oldCh[++oldStartIdx];
4013
3812
  newStartVnode = newCh[++newStartIdx];
4014
3813
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
4015
- patch(oldEndVnode, newEndVnode);
3814
+ patch(oldEndVnode, newEndVnode, renderer);
4016
3815
  oldEndVnode = oldCh[--oldEndIdx];
4017
3816
  newEndVnode = newCh[--newEndIdx];
4018
3817
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
4019
3818
  // Vnode moved right
4020
- patch(oldStartVnode, newEndVnode);
4021
- insertNode(oldStartVnode.elm, parent, nextSibling$1(oldEndVnode.elm));
3819
+ patch(oldStartVnode, newEndVnode, renderer);
3820
+ insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
4022
3821
  oldStartVnode = oldCh[++oldStartIdx];
4023
3822
  newEndVnode = newCh[--newEndIdx];
4024
3823
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
4025
3824
  // Vnode moved left
4026
- patch(oldEndVnode, newStartVnode);
4027
- insertNode(newStartVnode.elm, parent, oldStartVnode.elm);
3825
+ patch(oldEndVnode, newStartVnode, renderer);
3826
+ insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
4028
3827
  oldEndVnode = oldCh[--oldEndIdx];
4029
3828
  newStartVnode = newCh[++newStartIdx];
4030
3829
  } else {
@@ -4036,7 +3835,7 @@
4036
3835
 
4037
3836
  if (isUndefined$1(idxInOld)) {
4038
3837
  // New element
4039
- mount(newStartVnode, parent, oldStartVnode.elm);
3838
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4040
3839
  newStartVnode = newCh[++newStartIdx];
4041
3840
  } else {
4042
3841
  elmToMove = oldCh[idxInOld];
@@ -4044,9 +3843,9 @@
4044
3843
  if (isVNode(elmToMove)) {
4045
3844
  if (elmToMove.sel !== newStartVnode.sel) {
4046
3845
  // New element
4047
- mount(newStartVnode, parent, oldStartVnode.elm);
3846
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4048
3847
  } else {
4049
- 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.
4050
3849
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
4051
3850
  // so we only care about the `oldCh` object inside this function.
4052
3851
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -4059,7 +3858,7 @@
4059
3858
 
4060
3859
 
4061
3860
  oldCh[idxInOld] = undefined;
4062
- insertNode(elmToMove.elm, parent, oldStartVnode.elm);
3861
+ insertNode(elmToMove.elm, parent, oldStartVnode.elm, renderer);
4063
3862
  }
4064
3863
  }
4065
3864
 
@@ -4072,35 +3871,35 @@
4072
3871
  if (oldStartIdx > oldEndIdx) {
4073
3872
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
4074
3873
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
4075
- var _i15 = newEndIdx;
3874
+ var _i14 = newEndIdx;
4076
3875
  var n;
4077
3876
 
4078
3877
  do {
4079
- n = newCh[++_i15];
4080
- } while (!isVNode(n) && _i15 < newChEnd);
3878
+ n = newCh[++_i14];
3879
+ } while (!isVNode(n) && _i14 < newChEnd);
4081
3880
 
4082
3881
  before = isVNode(n) ? n.elm : null;
4083
- mountVNodes(newCh, parent, before, newStartIdx, newEndIdx + 1);
3882
+ mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
4084
3883
  } else {
4085
- unmountVNodes(oldCh, parent, true, oldStartIdx, oldEndIdx + 1);
3884
+ unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);
4086
3885
  }
4087
3886
  }
4088
3887
  }
4089
3888
 
4090
- function updateStaticChildren(c1, c2, parent) {
3889
+ function updateStaticChildren(c1, c2, parent, renderer) {
4091
3890
  var c1Length = c1.length;
4092
3891
  var c2Length = c2.length;
4093
3892
 
4094
3893
  if (c1Length === 0) {
4095
3894
  // the old list is empty, we can directly insert anything new
4096
- mountVNodes(c2, parent, null);
3895
+ mountVNodes(c2, parent, renderer, null);
4097
3896
  return;
4098
3897
  }
4099
3898
 
4100
3899
  if (c2Length === 0) {
4101
3900
  // the old list is nonempty and the new list is empty so we can directly remove all old nodes
4102
3901
  // this is the case in which the dynamic children of an if-directive should be removed
4103
- unmountVNodes(c1, parent, true);
3902
+ unmountVNodes(c1, parent, renderer, true);
4104
3903
  return;
4105
3904
  } // if the old list is not empty, the new list MUST have the same
4106
3905
  // amount of nodes, that's why we call this static children
@@ -4108,22 +3907,22 @@
4108
3907
 
4109
3908
  var anchor = null;
4110
3909
 
4111
- for (var _i16 = c2Length - 1; _i16 >= 0; _i16 -= 1) {
4112
- var n1 = c1[_i16];
4113
- var n2 = c2[_i16];
3910
+ for (var _i15 = c2Length - 1; _i15 >= 0; _i15 -= 1) {
3911
+ var n1 = c1[_i15];
3912
+ var n2 = c2[_i15];
4114
3913
 
4115
3914
  if (n2 !== n1) {
4116
3915
  if (isVNode(n1)) {
4117
3916
  if (isVNode(n2)) {
4118
3917
  // both vnodes are equivalent, and we just need to patch them
4119
- patch(n1, n2);
3918
+ patch(n1, n2, renderer);
4120
3919
  anchor = n2.elm;
4121
3920
  } else {
4122
3921
  // removing the old vnode since the new one is null
4123
- unmount(n1, parent, true);
3922
+ unmount(n1, parent, renderer, true);
4124
3923
  }
4125
3924
  } else if (isVNode(n2)) {
4126
- mount(n2, parent, anchor);
3925
+ mount(n2, parent, renderer, anchor);
4127
3926
  anchor = n2.elm;
4128
3927
  }
4129
3928
  }
@@ -4535,7 +4334,11 @@
4535
4334
  var elm = vm.elm,
4536
4335
  context = vm.context,
4537
4336
  renderMode = vm.renderMode,
4538
- 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;
4539
4342
  var newStylesheets = template.stylesheets,
4540
4343
  newStylesheetToken = template.stylesheetToken;
4541
4344
  var isSyntheticShadow = renderMode === 1
@@ -4554,11 +4357,11 @@
4554
4357
 
4555
4358
  if (!isUndefined$1(oldToken)) {
4556
4359
  if (oldHasTokenInClass) {
4557
- getClassList$1(elm).remove(makeHostToken(oldToken));
4360
+ getClassList(elm).remove(makeHostToken(oldToken));
4558
4361
  }
4559
4362
 
4560
4363
  if (oldHasTokenInAttribute) {
4561
- removeAttribute$1(elm, makeHostToken(oldToken));
4364
+ removeAttribute(elm, makeHostToken(oldToken));
4562
4365
  }
4563
4366
  } // Apply the new template styling token to the host element, if the new template has any
4564
4367
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
@@ -4571,12 +4374,12 @@
4571
4374
 
4572
4375
  if (!isUndefined$1(newToken)) {
4573
4376
  if (hasScopedStyles) {
4574
- getClassList$1(elm).add(makeHostToken(newToken));
4377
+ getClassList(elm).add(makeHostToken(newToken));
4575
4378
  newHasTokenInClass = true;
4576
4379
  }
4577
4380
 
4578
4381
  if (isSyntheticShadow) {
4579
- setAttribute$1(elm, makeHostToken(newToken), '');
4382
+ setAttribute(elm, makeHostToken(newToken), '');
4580
4383
  newHasTokenInAttribute = true;
4581
4384
  }
4582
4385
  } // Update the styling tokens present on the context object.
@@ -4591,8 +4394,8 @@
4591
4394
  var content = [];
4592
4395
  var root;
4593
4396
 
4594
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4595
- var stylesheet = stylesheets[_i17];
4397
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4398
+ var stylesheet = stylesheets[_i16];
4596
4399
 
4597
4400
  if (isArray$1(stylesheet)) {
4598
4401
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4689,17 +4492,20 @@
4689
4492
 
4690
4493
  function createStylesheet(vm, stylesheets) {
4691
4494
  var renderMode = vm.renderMode,
4692
- shadowMode = vm.shadowMode;
4495
+ shadowMode = vm.shadowMode,
4496
+ _vm$renderer2 = vm.renderer,
4497
+ ssr = _vm$renderer2.ssr,
4498
+ insertStylesheet = _vm$renderer2.insertStylesheet;
4693
4499
 
4694
4500
  if (renderMode === 1
4695
4501
  /* Shadow */
4696
4502
  && shadowMode === 1
4697
4503
  /* Synthetic */
4698
4504
  ) {
4699
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4700
- insertStylesheet$1(stylesheets[_i18]);
4505
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4506
+ insertStylesheet(stylesheets[_i17]);
4701
4507
  }
4702
- } else if (ssr$1 || vm.hydrated) {
4508
+ } else if (ssr || vm.hydrated) {
4703
4509
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
4704
4510
  // This works in the client, because the stylesheets are created, and cached in the VM
4705
4511
  // the first time the VM renders.
@@ -4712,8 +4518,8 @@
4712
4518
 
4713
4519
  var target = isNull(root) ? undefined : root.shadowRoot;
4714
4520
 
4715
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4716
- insertStylesheet$1(stylesheets[_i19], target);
4521
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4522
+ insertStylesheet(stylesheets[_i18], target);
4717
4523
  }
4718
4524
  }
4719
4525
 
@@ -4897,8 +4703,8 @@
4897
4703
  var stylesheets = template.stylesheets;
4898
4704
 
4899
4705
  if (!isUndefined$1(stylesheets)) {
4900
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4901
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4706
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4707
+ if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4902
4708
  return true;
4903
4709
  }
4904
4710
  }
@@ -5087,8 +4893,8 @@
5087
4893
 
5088
4894
  function register(service) {
5089
4895
 
5090
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
5091
- var hookName = hooks[_i21];
4896
+ for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4897
+ var hookName = hooks[_i20];
5092
4898
 
5093
4899
  if (hookName in service) {
5094
4900
  var l = Services[hookName];
@@ -5108,8 +4914,8 @@
5108
4914
  def = vm.def,
5109
4915
  context = vm.context;
5110
4916
 
5111
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
5112
- 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);
5113
4919
  }
5114
4920
  }
5115
4921
  /*
@@ -5214,7 +5020,7 @@
5214
5020
  return ancestor;
5215
5021
  }
5216
5022
 
5217
- function createVM(elm, ctor, options) {
5023
+ function createVM(elm, ctor, renderer, options) {
5218
5024
  var mode = options.mode,
5219
5025
  owner = options.owner,
5220
5026
  tagName = options.tagName,
@@ -5261,9 +5067,10 @@
5261
5067
  renderRoot: null,
5262
5068
  callHook: callHook,
5263
5069
  setHook: setHook,
5264
- getHook: getHook
5070
+ getHook: getHook,
5071
+ renderer: renderer
5265
5072
  };
5266
- vm.shadowMode = computeShadowMode(vm);
5073
+ vm.shadowMode = computeShadowMode(vm, renderer);
5267
5074
  vm.tro = getTemplateReactiveObserver(vm);
5268
5075
 
5269
5076
 
@@ -5276,11 +5083,13 @@
5276
5083
  return vm;
5277
5084
  }
5278
5085
 
5279
- function computeShadowMode(vm) {
5086
+ function computeShadowMode(vm, renderer) {
5280
5087
  var def = vm.def;
5088
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined,
5089
+ isNativeShadowDefined = renderer.isNativeShadowDefined;
5281
5090
  var shadowMode;
5282
5091
 
5283
- if (isSyntheticShadowDefined$1) {
5092
+ if (isSyntheticShadowDefined) {
5284
5093
  if (def.renderMode === 0
5285
5094
  /* Light */
5286
5095
  ) {
@@ -5289,7 +5098,7 @@
5289
5098
  shadowMode = 0
5290
5099
  /* Native */
5291
5100
  ;
5292
- } else if (isNativeShadowDefined$1) {
5101
+ } else if (isNativeShadowDefined) {
5293
5102
  // Not combined with above condition because @lwc/features only supports identifiers in
5294
5103
  // the if-condition.
5295
5104
  if (runtimeFlags.ENABLE_MIXED_SHADOW_MODE) {
@@ -5364,7 +5173,8 @@
5364
5173
 
5365
5174
  function patchShadowRoot(vm, newCh) {
5366
5175
  var renderRoot = vm.renderRoot,
5367
- oldCh = vm.children; // caching the new children collection
5176
+ oldCh = vm.children,
5177
+ renderer = vm.renderer; // caching the new children collection
5368
5178
 
5369
5179
  vm.children = newCh;
5370
5180
 
@@ -5379,7 +5189,7 @@
5379
5189
  , vm);
5380
5190
  }, function () {
5381
5191
  // job
5382
- patchChildren(oldCh, newCh, renderRoot);
5192
+ patchChildren(oldCh, newCh, renderRoot, renderer);
5383
5193
  }, function () {
5384
5194
  // post
5385
5195
  logOperationEnd(2
@@ -5401,9 +5211,10 @@
5401
5211
  }
5402
5212
 
5403
5213
  function runRenderedCallback(vm) {
5404
- var renderedCallback = vm.def.renderedCallback;
5214
+ var renderedCallback = vm.def.renderedCallback,
5215
+ ssr = vm.renderer.ssr;
5405
5216
 
5406
- if (isTrue(ssr$1)) {
5217
+ if (isTrue(ssr)) {
5407
5218
  return;
5408
5219
  }
5409
5220
 
@@ -5436,19 +5247,19 @@
5436
5247
  });
5437
5248
  rehydrateQueue = []; // reset to a new queue
5438
5249
 
5439
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
5440
- var vm = vms[_i23];
5250
+ for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
5251
+ var vm = vms[_i22];
5441
5252
 
5442
5253
  try {
5443
5254
  rehydrate(vm);
5444
5255
  } catch (error) {
5445
- if (_i23 + 1 < len) {
5256
+ if (_i22 + 1 < len) {
5446
5257
  // pieces of the queue are still pending to be rehydrated, those should have priority
5447
5258
  if (rehydrateQueue.length === 0) {
5448
5259
  addCallbackToNextTick(flushRehydrationQueue);
5449
5260
  }
5450
5261
 
5451
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
5262
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
5452
5263
  } // we need to end the measure before throwing.
5453
5264
 
5454
5265
 
@@ -5547,8 +5358,8 @@
5547
5358
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5548
5359
  // inserted in reserved order.
5549
5360
 
5550
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
5551
- 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:
5552
5363
  // * when there is an error during the construction phase, and an error
5553
5364
  // boundary picks it, there is a possibility that the VCustomElement
5554
5365
  // is not properly initialized, and therefore is should be ignored.
@@ -5582,8 +5393,8 @@
5582
5393
 
5583
5394
 
5584
5395
  function recursivelyDisconnectChildren(vnodes) {
5585
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
5586
- var vnode = vnodes[_i25];
5396
+ for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
5397
+ var vnode = vnodes[_i24];
5587
5398
 
5588
5399
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5589
5400
  switch (vnode.type) {
@@ -5612,13 +5423,14 @@
5612
5423
 
5613
5424
  function resetComponentRoot(vm) {
5614
5425
  var children = vm.children,
5615
- renderRoot = vm.renderRoot;
5426
+ renderRoot = vm.renderRoot,
5427
+ remove = vm.renderer.remove;
5616
5428
 
5617
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
5618
- var child = children[_i26];
5429
+ for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
5430
+ var child = children[_i25];
5619
5431
 
5620
5432
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5621
- remove$1(child.elm, renderRoot);
5433
+ remove(child.elm, renderRoot);
5622
5434
  }
5623
5435
  }
5624
5436
 
@@ -5628,7 +5440,9 @@
5628
5440
  }
5629
5441
 
5630
5442
  function scheduleRehydration(vm) {
5631
- if (isTrue(ssr$1) || isTrue(vm.isScheduled)) {
5443
+ var ssr = vm.renderer.ssr;
5444
+
5445
+ if (isTrue(ssr) || isTrue(vm.isScheduled)) {
5632
5446
  return;
5633
5447
  }
5634
5448
 
@@ -5795,7 +5609,8 @@
5795
5609
  var elm = vm.elm,
5796
5610
  _vm$context = vm.context,
5797
5611
  wiredConnecting = _vm$context.wiredConnecting,
5798
- 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
5799
5614
 
5800
5615
  ArrayPush$1.call(wiredConnecting, function () {
5801
5616
  // This event is responsible for connecting the host element with another
@@ -5815,7 +5630,7 @@
5815
5630
  ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
5816
5631
  }
5817
5632
  });
5818
- dispatchEvent$1(elm, contextRegistrationEvent);
5633
+ dispatchEvent(elm, contextRegistrationEvent);
5819
5634
  });
5820
5635
  }
5821
5636
 
@@ -5965,8 +5780,8 @@
5965
5780
  function connectWireAdapters(vm) {
5966
5781
  var wiredConnecting = vm.context.wiredConnecting;
5967
5782
 
5968
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
5969
- wiredConnecting[_i27]();
5783
+ for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
5784
+ wiredConnecting[_i26]();
5970
5785
  }
5971
5786
  }
5972
5787
 
@@ -5974,8 +5789,8 @@
5974
5789
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5975
5790
  runWithBoundaryProtection(vm, vm, noop, function () {
5976
5791
  // job
5977
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
5978
- wiredDisconnecting[_i28]();
5792
+ for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
5793
+ wiredDisconnecting[_i27]();
5979
5794
  }
5980
5795
  }, noop);
5981
5796
  }
@@ -6069,79 +5884,87 @@
6069
5884
  function hydrateVM(vm) {
6070
5885
  var children = renderComponent(vm);
6071
5886
  vm.children = children;
6072
- var parentNode = vm.renderRoot;
6073
- hydrateChildren(getFirstChild$1(parentNode), children, parentNode);
5887
+ var parentNode = vm.renderRoot,
5888
+ getFirstChild = vm.renderer.getFirstChild;
5889
+ hydrateChildren(getFirstChild(parentNode), children, parentNode, vm);
6074
5890
  runRenderedCallback(vm);
6075
5891
  }
6076
5892
 
6077
- function hydrateNode(node, vnode) {
5893
+ function hydrateNode(node, vnode, renderer) {
5894
+ var _a, _b;
5895
+
6078
5896
  var hydratedNode;
6079
5897
 
6080
5898
  switch (vnode.type) {
6081
5899
  case 0
6082
5900
  /* Text */
6083
5901
  :
6084
- hydratedNode = hydrateText(node, vnode);
5902
+ // VText has no special capability, fallback to the owner's renderer
5903
+ hydratedNode = hydrateText(node, vnode, renderer);
6085
5904
  break;
6086
5905
 
6087
5906
  case 1
6088
5907
  /* Comment */
6089
5908
  :
6090
- hydratedNode = hydrateComment(node, vnode);
5909
+ // VComment has no special capability, fallback to the owner's renderer
5910
+ hydratedNode = hydrateComment(node, vnode, renderer);
6091
5911
  break;
6092
5912
 
6093
5913
  case 2
6094
5914
  /* Element */
6095
5915
  :
6096
- hydratedNode = hydrateElement(node, vnode);
5916
+ hydratedNode = hydrateElement(node, vnode, (_a = vnode.data.renderer) !== null && _a !== void 0 ? _a : renderer);
6097
5917
  break;
6098
5918
 
6099
5919
  case 3
6100
5920
  /* CustomElement */
6101
5921
  :
6102
- hydratedNode = hydrateCustomElement(node, vnode);
5922
+ hydratedNode = hydrateCustomElement(node, vnode, (_b = vnode.data.renderer) !== null && _b !== void 0 ? _b : renderer);
6103
5923
  break;
6104
5924
  }
6105
5925
 
6106
- return nextSibling$1(hydratedNode);
5926
+ return renderer.nextSibling(hydratedNode);
6107
5927
  }
6108
5928
 
6109
- function hydrateText(node, vnode) {
5929
+ function hydrateText(node, vnode, renderer) {
6110
5930
  var _a;
6111
5931
 
6112
5932
  if (!hasCorrectNodeType(vnode, node, 3
6113
5933
  /* TEXT */
6114
- )) {
6115
- return handleMismatch(node, vnode);
5934
+ , renderer)) {
5935
+ return handleMismatch(node, vnode, renderer);
6116
5936
  }
6117
5937
 
6118
- 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);
6119
5940
  vnode.elm = node;
6120
5941
  return node;
6121
5942
  }
6122
5943
 
6123
- function hydrateComment(node, vnode) {
5944
+ function hydrateComment(node, vnode, renderer) {
6124
5945
  var _a;
6125
5946
 
6126
5947
  if (!hasCorrectNodeType(vnode, node, 8
6127
5948
  /* COMMENT */
6128
- )) {
6129
- return handleMismatch(node, vnode);
5949
+ , renderer)) {
5950
+ return handleMismatch(node, vnode, renderer);
6130
5951
  }
6131
5952
 
6132
- 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);
6133
5955
  vnode.elm = node;
6134
5956
  return node;
6135
5957
  }
6136
5958
 
6137
- function hydrateElement(elm, vnode) {
5959
+ function hydrateElement(elm, vnode, renderer) {
6138
5960
  if (!hasCorrectNodeType(vnode, elm, 1
6139
5961
  /* ELEMENT */
6140
- ) || !isMatchingElement(vnode, elm)) {
6141
- return handleMismatch(elm, vnode);
5962
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
5963
+ return handleMismatch(elm, vnode, renderer);
6142
5964
  }
6143
5965
 
6144
5966
  vnode.elm = elm;
5967
+ var owner = vnode.owner;
6145
5968
  var context = vnode.data.context;
6146
5969
  var isDomManual = Boolean(!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
6147
5970
  /* Manual */
@@ -6151,9 +5974,10 @@
6151
5974
  // it may be that this element has lwc:inner-html, we need to diff and in case are the same,
6152
5975
  // remove the innerHTML from props so it reuses the existing dom elements.
6153
5976
  var props = vnode.data.props;
5977
+ var _getProperty3 = renderer.getProperty;
6154
5978
 
6155
5979
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
6156
- if (getProperty$1(elm, 'innerHTML') === props.innerHTML) {
5980
+ if (_getProperty3(elm, 'innerHTML') === props.innerHTML) {
6157
5981
  // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
6158
5982
  vnode.data = Object.assign(Object.assign({}, vnode.data), {
6159
5983
  props: cloneAndOmitKey(props, 'innerHTML')
@@ -6162,27 +5986,28 @@
6162
5986
  }
6163
5987
  }
6164
5988
 
6165
- patchElementPropsAndAttrs(vnode);
5989
+ patchElementPropsAndAttrs(vnode, renderer);
6166
5990
 
6167
5991
  if (!isDomManual) {
6168
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vnode.owner);
5992
+ var _getFirstChild = renderer.getFirstChild;
5993
+ hydrateChildren(_getFirstChild(elm), vnode.children, elm, owner);
6169
5994
  }
6170
5995
 
6171
5996
  return elm;
6172
5997
  }
6173
5998
 
6174
- function hydrateCustomElement(elm, vnode) {
5999
+ function hydrateCustomElement(elm, vnode, renderer) {
6175
6000
  if (!hasCorrectNodeType(vnode, elm, 1
6176
6001
  /* ELEMENT */
6177
- ) || !isMatchingElement(vnode, elm)) {
6178
- return handleMismatch(elm, vnode);
6002
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
6003
+ return handleMismatch(elm, vnode, renderer);
6179
6004
  }
6180
6005
 
6181
6006
  var sel = vnode.sel,
6182
6007
  mode = vnode.mode,
6183
6008
  ctor = vnode.ctor,
6184
6009
  owner = vnode.owner;
6185
- var vm = createVM(elm, ctor, {
6010
+ var vm = createVM(elm, ctor, renderer, {
6186
6011
  mode: mode,
6187
6012
  owner: owner,
6188
6013
  tagName: sel,
@@ -6191,16 +6016,17 @@
6191
6016
  vnode.elm = elm;
6192
6017
  vnode.vm = vm;
6193
6018
  allocateChildren(vnode, vm);
6194
- patchElementPropsAndAttrs(vnode); // Insert hook section:
6019
+ patchElementPropsAndAttrs(vnode, renderer); // Insert hook section:
6195
6020
 
6196
6021
  runConnectedCallback(vm);
6197
6022
 
6198
6023
  if (vm.renderMode !== 0
6199
6024
  /* Light */
6200
6025
  ) {
6201
- // 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.
6202
6027
  // Note: for Light DOM, this is handled while hydrating the VM
6203
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm);
6028
+
6029
+ hydrateChildren(_getFirstChild2(elm), vnode.children, elm, vm);
6204
6030
  }
6205
6031
 
6206
6032
  hydrateVM(vm);
@@ -6210,18 +6036,19 @@
6210
6036
  function hydrateChildren(node, children, parentNode, owner) {
6211
6037
  var nextNode = node;
6212
6038
  var anchor = null;
6039
+ var renderer = owner.renderer;
6213
6040
 
6214
- for (var _i29 = 0; _i29 < children.length; _i29++) {
6215
- var childVnode = children[_i29];
6041
+ for (var _i28 = 0; _i28 < children.length; _i28++) {
6042
+ var childVnode = children[_i28];
6216
6043
 
6217
6044
  if (!isNull(childVnode)) {
6218
6045
  if (nextNode) {
6219
- nextNode = hydrateNode(nextNode, childVnode);
6046
+ nextNode = hydrateNode(nextNode, childVnode, renderer);
6220
6047
  anchor = childVnode.elm;
6221
6048
  } else {
6222
6049
  hasMismatch = true;
6223
6050
 
6224
- mount(childVnode, parentNode, anchor);
6051
+ mount(childVnode, parentNode, renderer, anchor);
6225
6052
  anchor = childVnode.elm;
6226
6053
  }
6227
6054
  }
@@ -6229,31 +6056,39 @@
6229
6056
 
6230
6057
  if (nextNode) {
6231
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;
6232
6065
 
6233
6066
  do {
6234
6067
  var current = nextNode;
6235
- nextNode = nextSibling$1(nextNode);
6236
- removeNode(current, parentNode);
6068
+ nextNode = _nextSibling(nextNode);
6069
+ removeNode(current, parentNode, renderer);
6237
6070
  } while (nextNode);
6238
6071
  }
6239
6072
  }
6240
6073
 
6241
- function handleMismatch(node, vnode, msg) {
6074
+ function handleMismatch(node, vnode, renderer) {
6242
6075
  hasMismatch = true;
6243
-
6244
- var parentNode = getProperty$1(node, 'parentNode');
6245
- mount(vnode, parentNode, node);
6246
- 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);
6247
6080
  return vnode.elm;
6248
6081
  }
6249
6082
 
6250
- function patchElementPropsAndAttrs(vnode) {
6251
- applyEventListeners(vnode);
6252
- patchProps(null, vnode);
6083
+ function patchElementPropsAndAttrs(vnode, renderer) {
6084
+ applyEventListeners(vnode, renderer);
6085
+ patchProps(null, vnode, renderer);
6253
6086
  }
6254
6087
 
6255
- function hasCorrectNodeType(vnode, node, nodeType) {
6256
- 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) {
6257
6092
 
6258
6093
  return false;
6259
6094
  }
@@ -6261,30 +6096,35 @@
6261
6096
  return true;
6262
6097
  }
6263
6098
 
6264
- function isMatchingElement(vnode, elm) {
6265
- 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()) {
6266
6103
 
6267
6104
  return false;
6268
6105
  }
6269
6106
 
6270
- var hasIncompatibleAttrs = validateAttrs(vnode, elm);
6271
- var hasIncompatibleClass = validateClassAttr(vnode, elm);
6272
- 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);
6273
6110
  return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
6274
6111
  }
6275
6112
 
6276
- function validateAttrs(vnode, elm) {
6113
+ function validateAttrs(vnode, elm, renderer) {
6277
6114
  var _vnode$data$attrs = vnode.data.attrs,
6278
6115
  attrs = _vnode$data$attrs === void 0 ? {} : _vnode$data$attrs;
6279
6116
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
6280
6117
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6281
6118
 
6282
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
6283
- 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),
6284
6121
  attrName = _Object$entries$_i[0],
6285
6122
  attrValue = _Object$entries$_i[1];
6286
6123
 
6287
- var elmAttrValue = getAttribute$1(elm, attrName);
6124
+ vnode.owner;
6125
+ var _getAttribute = renderer.getAttribute;
6126
+
6127
+ var elmAttrValue = _getAttribute(elm, attrName);
6288
6128
 
6289
6129
  if (String(attrValue) !== elmAttrValue) {
6290
6130
 
@@ -6295,18 +6135,20 @@
6295
6135
  return nodesAreCompatible;
6296
6136
  }
6297
6137
 
6298
- function validateClassAttr(vnode, elm) {
6138
+ function validateClassAttr(vnode, elm, renderer) {
6299
6139
  var _vnode$data = vnode.data,
6300
6140
  className = _vnode$data.className,
6301
6141
  classMap = _vnode$data.classMap;
6142
+ var getProperty = renderer.getProperty,
6143
+ getClassList = renderer.getClassList;
6302
6144
  var nodesAreCompatible = true;
6303
6145
 
6304
- if (!isUndefined$1(className) && String(className) !== getProperty$1(elm, 'className')) {
6146
+ if (!isUndefined$1(className) && String(className) !== getProperty(elm, 'className')) {
6305
6147
  // className is used when class is bound to an expr.
6306
6148
  nodesAreCompatible = false;
6307
6149
  } else if (!isUndefined$1(classMap)) {
6308
6150
  // classMap is used when class is set to static value.
6309
- var classList = getClassList$1(elm);
6151
+ var classList = getClassList(elm);
6310
6152
  var computedClassName = ''; // all classes from the vnode should be in the element.classList
6311
6153
 
6312
6154
  for (var name in classMap) {
@@ -6327,11 +6169,12 @@
6327
6169
  return nodesAreCompatible;
6328
6170
  }
6329
6171
 
6330
- function validateStyleAttr(vnode, elm) {
6172
+ function validateStyleAttr(vnode, elm, renderer) {
6331
6173
  var _vnode$data2 = vnode.data,
6332
6174
  style = _vnode$data2.style,
6333
6175
  styleDecls = _vnode$data2.styleDecls;
6334
- var elmStyle = getAttribute$1(elm, 'style') || '';
6176
+ var getAttribute = renderer.getAttribute;
6177
+ var elmStyle = getAttribute(elm, 'style') || '';
6335
6178
  var nodesAreCompatible = true;
6336
6179
 
6337
6180
  if (!isUndefined$1(style) && style !== elmStyle) {
@@ -6340,8 +6183,8 @@
6340
6183
  var parsedVnodeStyle = parseStyleText(elmStyle);
6341
6184
  var expectedStyle = []; // styleMap is used when style is set to static value.
6342
6185
 
6343
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
6344
- 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),
6345
6188
  prop = _styleDecls$_i2[0],
6346
6189
  value = _styleDecls$_i2[1],
6347
6190
  important = _styleDecls$_i2[2];
@@ -6414,7 +6257,7 @@
6414
6257
 
6415
6258
  return ctor;
6416
6259
  }
6417
- /* version: 2.14.1 */
6260
+ /* version: 2.14.2 */
6418
6261
 
6419
6262
  /*
6420
6263
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6584,7 +6427,7 @@
6584
6427
  try {
6585
6428
  // dereference HTMLElement global because babel wraps globals in compat mode with a
6586
6429
  // _wrapNativeSuper()
6587
- // 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
6588
6431
  // get wrapped by babel.
6589
6432
  var HTMLElementAlias = HTMLElement; // In case we use compat mode with a modern browser, the compat mode transformation
6590
6433
  // invokes the DOM api with an .apply() or .call() to initialize any DOM api sub-classing,
@@ -6660,6 +6503,11 @@
6660
6503
  }
6661
6504
 
6662
6505
  var ssr = false;
6506
+
6507
+ function isHydrating() {
6508
+ return hydrating;
6509
+ }
6510
+
6663
6511
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
6664
6512
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
6665
6513
 
@@ -6794,44 +6642,52 @@
6794
6642
  return node.isConnected;
6795
6643
  }
6796
6644
 
6645
+ function assertInstanceOfHTMLElement(elm, msg) {
6646
+ assert.invariant(elm instanceof HTMLElement, msg);
6647
+ }
6648
+
6797
6649
  var HTMLElementExported = HTMLElementConstructor;
6798
- setAttachShadow(attachShadow);
6799
- setCreateComment(createComment);
6800
- setCreateElement(createElement$1);
6801
- setCreateText(createText);
6802
- setDefineCustomElement(defineCustomElement);
6803
- setDispatchEvent(dispatchEvent);
6804
- setGetAttribute(getAttribute);
6805
- setGetBoundingClientRect(getBoundingClientRect);
6806
- setGetChildNodes(getChildNodes);
6807
- setGetChildren(getChildren);
6808
- setGetClassList(getClassList);
6809
- setGetCustomElement(getCustomElement);
6810
- setGetElementsByClassName(getElementsByClassName);
6811
- setGetElementsByTagName(getElementsByTagName);
6812
- setGetFirstChild(getFirstChild);
6813
- setGetFirstElementChild(getFirstElementChild);
6814
- setGetLastChild(getLastChild);
6815
- setGetLastElementChild(getLastElementChild);
6816
- setGetProperty(getProperty);
6817
- setHTMLElement(HTMLElementExported);
6818
- setInsert(insert);
6819
- setIsConnected(isConnected);
6820
- setIsNativeShadowDefined(isNativeShadowDefined);
6821
- setIsSyntheticShadowDefined(isSyntheticShadowDefined);
6822
- setNextSibling(nextSibling);
6823
- setQuerySelector(querySelector);
6824
- setQuerySelectorAll(querySelectorAll);
6825
- setRemove(remove);
6826
- setRemoveAttribute(removeAttribute);
6827
- setRemoveEventListener(removeEventListener);
6828
- setSetAttribute(setAttribute);
6829
- setSetCSSStyleProperty(setCSSStyleProperty);
6830
- setSetProperty(setProperty);
6831
- setSetText(setText);
6832
- setSsr(ssr);
6833
- setAddEventListener(addEventListener);
6834
- 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
+ };
6835
6691
  /*
6836
6692
  * Copyright (c) 2018, salesforce.com, inc.
6837
6693
  * All rights reserved.
@@ -6839,7 +6695,6 @@
6839
6695
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6840
6696
  */
6841
6697
 
6842
-
6843
6698
  function resetShadowRootAndLightDom(element, Ctor) {
6844
6699
  if (element.shadowRoot) {
6845
6700
  var shadowRoot = element.shadowRoot;
@@ -6857,15 +6712,15 @@
6857
6712
  }
6858
6713
 
6859
6714
  function createVMWithProps(element, Ctor, props) {
6860
- var vm = createVM(element, Ctor, {
6715
+ var vm = createVM(element, Ctor, renderer, {
6861
6716
  mode: 'open',
6862
6717
  owner: null,
6863
6718
  tagName: element.tagName.toLowerCase(),
6864
6719
  hydrated: true
6865
6720
  });
6866
6721
 
6867
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6868
- 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),
6869
6724
  key = _Object$entries2$_i[0],
6870
6725
  value = _Object$entries2$_i[1];
6871
6726
 
@@ -6973,7 +6828,7 @@
6973
6828
  hydrateComponent(_assertThisInitialized(_this6), Ctor, {});
6974
6829
  hydratedCustomElements.add(_assertThisInitialized(_this6));
6975
6830
  } else {
6976
- createVM(_assertThisInitialized(_this6), Ctor, {
6831
+ createVM(_assertThisInitialized(_this6), Ctor, renderer, {
6977
6832
  mode: 'open',
6978
6833
  owner: null,
6979
6834
  tagName: _this6.tagName
@@ -7082,7 +6937,7 @@
7082
6937
  throw new TypeError("\"createElement\" function expects an \"is\" option with a valid component constructor.");
7083
6938
  }
7084
6939
 
7085
- var UpgradableConstructor = getUpgradableConstructor(sel);
6940
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
7086
6941
  var wasComponentUpgraded = false; // the custom element from the registry is expecting an upgrade callback
7087
6942
 
7088
6943
  /**
@@ -7093,7 +6948,7 @@
7093
6948
  */
7094
6949
 
7095
6950
  var element = new UpgradableConstructor(function (elm) {
7096
- createVM(elm, Ctor, {
6951
+ createVM(elm, Ctor, renderer, {
7097
6952
  tagName: sel,
7098
6953
  mode: options.mode !== 'closed' ? 'open' : 'closed',
7099
6954
  owner: null
@@ -7190,7 +7045,7 @@
7190
7045
  });
7191
7046
  freeze(LightningElement);
7192
7047
  seal(LightningElement.prototype);
7193
- /* version: 2.14.1 */
7048
+ /* version: 2.14.2 */
7194
7049
 
7195
7050
  exports.LightningElement = LightningElement;
7196
7051
  exports.__unstable__ProfilerControl = profilerControl;
@@ -7209,6 +7064,7 @@
7209
7064
  exports.registerComponent = registerComponent;
7210
7065
  exports.registerDecorators = registerDecorators;
7211
7066
  exports.registerTemplate = registerTemplate;
7067
+ exports.renderer = renderer;
7212
7068
  exports.sanitizeAttribute = sanitizeAttribute;
7213
7069
  exports.setFeatureFlag = setFeatureFlag;
7214
7070
  exports.setFeatureFlagForTest = setFeatureFlagForTest;