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
@@ -347,7 +347,7 @@ var LWC = (function (exports) {
347
347
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
348
348
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
349
349
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
350
- /** version: 2.14.1 */
350
+ /** version: 2.14.2 */
351
351
 
352
352
  /*
353
353
  * Copyright (c) 2018, salesforce.com, inc.
@@ -608,231 +608,6 @@ var LWC = (function (exports) {
608
608
 
609
609
  return result;
610
610
  }
611
- // Primitives
612
- //
613
-
614
-
615
- var ssr$1;
616
-
617
- function setSsr(ssrImpl) {
618
- ssr$1 = ssrImpl;
619
- }
620
-
621
- var isNativeShadowDefined$1;
622
-
623
- function setIsNativeShadowDefined(isNativeShadowDefinedImpl) {
624
- isNativeShadowDefined$1 = isNativeShadowDefinedImpl;
625
- }
626
-
627
- var isSyntheticShadowDefined$1;
628
-
629
- function setIsSyntheticShadowDefined(isSyntheticShadowDefinedImpl) {
630
- isSyntheticShadowDefined$1 = isSyntheticShadowDefinedImpl;
631
- }
632
-
633
- var HTMLElementExported$1;
634
-
635
- function setHTMLElement(HTMLElementImpl) {
636
- HTMLElementExported$1 = HTMLElementImpl;
637
- }
638
-
639
- var insert$1;
640
-
641
- function setInsert(insertImpl) {
642
- insert$1 = insertImpl;
643
- }
644
-
645
- var remove$1;
646
-
647
- function setRemove(removeImpl) {
648
- remove$1 = removeImpl;
649
- }
650
-
651
- var createElement$2;
652
-
653
- function setCreateElement(createElementImpl) {
654
- createElement$2 = createElementImpl;
655
- }
656
-
657
- var createText$1;
658
-
659
- function setCreateText(createTextImpl) {
660
- createText$1 = createTextImpl;
661
- }
662
-
663
- var createComment$1;
664
-
665
- function setCreateComment(createCommentImpl) {
666
- createComment$1 = createCommentImpl;
667
- }
668
-
669
- var nextSibling$1;
670
-
671
- function setNextSibling(nextSiblingImpl) {
672
- nextSibling$1 = nextSiblingImpl;
673
- }
674
-
675
- var attachShadow$1;
676
-
677
- function setAttachShadow(attachShadowImpl) {
678
- attachShadow$1 = attachShadowImpl;
679
- }
680
-
681
- var getProperty$1;
682
-
683
- function setGetProperty(getPropertyImpl) {
684
- getProperty$1 = getPropertyImpl;
685
- }
686
-
687
- var setProperty$1;
688
-
689
- function setSetProperty(setPropertyImpl) {
690
- setProperty$1 = setPropertyImpl;
691
- }
692
-
693
- var setText$1;
694
-
695
- function setSetText(setTextImpl) {
696
- setText$1 = setTextImpl;
697
- }
698
-
699
- var getAttribute$1;
700
-
701
- function setGetAttribute(getAttributeImpl) {
702
- getAttribute$1 = getAttributeImpl;
703
- }
704
-
705
- var setAttribute$1;
706
-
707
- function setSetAttribute(setAttributeImpl) {
708
- setAttribute$1 = setAttributeImpl;
709
- }
710
-
711
- var removeAttribute$1;
712
-
713
- function setRemoveAttribute(removeAttributeImpl) {
714
- removeAttribute$1 = removeAttributeImpl;
715
- }
716
-
717
- var addEventListener$1;
718
-
719
- function setAddEventListener(addEventListenerImpl) {
720
- addEventListener$1 = addEventListenerImpl;
721
- }
722
-
723
- var removeEventListener$1;
724
-
725
- function setRemoveEventListener(removeEventListenerImpl) {
726
- removeEventListener$1 = removeEventListenerImpl;
727
- }
728
-
729
- var dispatchEvent$1;
730
-
731
- function setDispatchEvent(dispatchEventImpl) {
732
- dispatchEvent$1 = dispatchEventImpl;
733
- }
734
-
735
- var getClassList$1;
736
-
737
- function setGetClassList(getClassListImpl) {
738
- getClassList$1 = getClassListImpl;
739
- }
740
-
741
- var setCSSStyleProperty$1;
742
-
743
- function setSetCSSStyleProperty(setCSSStylePropertyImpl) {
744
- setCSSStyleProperty$1 = setCSSStylePropertyImpl;
745
- }
746
-
747
- var getBoundingClientRect$1;
748
-
749
- function setGetBoundingClientRect(getBoundingClientRectImpl) {
750
- getBoundingClientRect$1 = getBoundingClientRectImpl;
751
- }
752
-
753
- var querySelector$1;
754
-
755
- function setQuerySelector(querySelectorImpl) {
756
- querySelector$1 = querySelectorImpl;
757
- }
758
-
759
- var querySelectorAll$1;
760
-
761
- function setQuerySelectorAll(querySelectorAllImpl) {
762
- querySelectorAll$1 = querySelectorAllImpl;
763
- }
764
-
765
- var getElementsByTagName$1;
766
-
767
- function setGetElementsByTagName(getElementsByTagNameImpl) {
768
- getElementsByTagName$1 = getElementsByTagNameImpl;
769
- }
770
-
771
- var getElementsByClassName$1;
772
-
773
- function setGetElementsByClassName(getElementsByClassNameImpl) {
774
- getElementsByClassName$1 = getElementsByClassNameImpl;
775
- }
776
-
777
- var getChildren$1;
778
-
779
- function setGetChildren(getChildrenImpl) {
780
- getChildren$1 = getChildrenImpl;
781
- }
782
-
783
- var getChildNodes$1;
784
-
785
- function setGetChildNodes(getChildNodesImpl) {
786
- getChildNodes$1 = getChildNodesImpl;
787
- }
788
-
789
- var getFirstChild$1;
790
-
791
- function setGetFirstChild(getFirstChildImpl) {
792
- getFirstChild$1 = getFirstChildImpl;
793
- }
794
-
795
- var getFirstElementChild$1;
796
-
797
- function setGetFirstElementChild(getFirstElementChildImpl) {
798
- getFirstElementChild$1 = getFirstElementChildImpl;
799
- }
800
-
801
- var getLastChild$1;
802
-
803
- function setGetLastChild(getLastChildImpl) {
804
- getLastChild$1 = getLastChildImpl;
805
- }
806
-
807
- var getLastElementChild$1;
808
-
809
- function setGetLastElementChild(getLastElementChildImpl) {
810
- getLastElementChild$1 = getLastElementChildImpl;
811
- }
812
-
813
- var isConnected$1;
814
-
815
- function setIsConnected(isConnectedImpl) {
816
- isConnected$1 = isConnectedImpl;
817
- }
818
-
819
- var insertStylesheet$1;
820
-
821
- function setInsertStylesheet(insertStylesheetImpl) {
822
- insertStylesheet$1 = insertStylesheetImpl;
823
- }
824
-
825
- var defineCustomElement$1;
826
-
827
- function setDefineCustomElement(defineCustomElementImpl) {
828
- defineCustomElement$1 = defineCustomElementImpl;
829
- }
830
-
831
- var getCustomElement$1;
832
-
833
- function setGetCustomElement(getCustomElementImpl) {
834
- getCustomElement$1 = getCustomElementImpl;
835
- }
836
611
  /*
837
612
  * Copyright (c) 2019, salesforce.com, inc.
838
613
  * All rights reserved.
@@ -2010,13 +1785,14 @@ var LWC = (function (exports) {
2010
1785
  };
2011
1786
 
2012
1787
  function doAttachShadow(vm) {
2013
- var _attachShadow$;
1788
+ var _attachShadow;
2014
1789
 
2015
1790
  var elm = vm.elm,
2016
1791
  mode = vm.mode,
2017
1792
  shadowMode = vm.shadowMode,
2018
- ctor = vm.def.ctor;
2019
- var shadowRoot = attachShadow$1(elm, (_attachShadow$ = {}, _defineProperty(_attachShadow$, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow$, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow$, "mode", mode), _attachShadow$));
1793
+ ctor = vm.def.ctor,
1794
+ attachShadow = vm.renderer.attachShadow;
1795
+ var shadowRoot = attachShadow(elm, (_attachShadow = {}, _defineProperty(_attachShadow, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow, "mode", mode), _attachShadow));
2020
1796
  vm.shadowRoot = shadowRoot;
2021
1797
  associateVM(shadowRoot, vm);
2022
1798
 
@@ -2027,99 +1803,106 @@ var LWC = (function (exports) {
2027
1803
  LightningElement.prototype = {
2028
1804
  constructor: LightningElement,
2029
1805
  dispatchEvent: function dispatchEvent(event) {
2030
- var _getAssociatedVM = getAssociatedVM(this),
2031
- elm = _getAssociatedVM.elm;
2032
-
2033
- return dispatchEvent$1(elm, event);
1806
+ var vm = getAssociatedVM(this);
1807
+ var elm = vm.elm,
1808
+ dispatchEvent = vm.renderer.dispatchEvent;
1809
+ return dispatchEvent(elm, event);
2034
1810
  },
2035
1811
  addEventListener: function addEventListener(type, listener, options) {
2036
1812
  var vm = getAssociatedVM(this);
2037
- var elm = vm.elm;
1813
+ var elm = vm.elm,
1814
+ addEventListener = vm.renderer.addEventListener;
2038
1815
 
2039
1816
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2040
- addEventListener$1(elm, type, wrappedListener, options);
1817
+ addEventListener(elm, type, wrappedListener, options);
2041
1818
  },
2042
1819
  removeEventListener: function removeEventListener(type, listener, options) {
2043
1820
  var vm = getAssociatedVM(this);
2044
- var elm = vm.elm;
1821
+ var elm = vm.elm,
1822
+ removeEventListener = vm.renderer.removeEventListener;
2045
1823
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2046
- removeEventListener$1(elm, type, wrappedListener, options);
1824
+ removeEventListener(elm, type, wrappedListener, options);
2047
1825
  },
2048
1826
  hasAttribute: function hasAttribute(name) {
2049
- var _getAssociatedVM2 = getAssociatedVM(this),
2050
- elm = _getAssociatedVM2.elm;
2051
-
2052
- return !isNull(getAttribute$1(elm, name));
1827
+ var vm = getAssociatedVM(this);
1828
+ var elm = vm.elm,
1829
+ getAttribute = vm.renderer.getAttribute;
1830
+ return !isNull(getAttribute(elm, name));
2053
1831
  },
2054
1832
  hasAttributeNS: function hasAttributeNS(namespace, name) {
2055
- var _getAssociatedVM3 = getAssociatedVM(this),
2056
- elm = _getAssociatedVM3.elm;
2057
-
2058
- return !isNull(getAttribute$1(elm, name, namespace));
1833
+ var vm = getAssociatedVM(this);
1834
+ var elm = vm.elm,
1835
+ getAttribute = vm.renderer.getAttribute;
1836
+ return !isNull(getAttribute(elm, name, namespace));
2059
1837
  },
2060
1838
  removeAttribute: function removeAttribute(name) {
2061
- var _getAssociatedVM4 = getAssociatedVM(this),
2062
- elm = _getAssociatedVM4.elm;
2063
-
1839
+ var vm = getAssociatedVM(this);
1840
+ var elm = vm.elm,
1841
+ removeAttribute = vm.renderer.removeAttribute;
2064
1842
  unlockAttribute(elm, name);
2065
- removeAttribute$1(elm, name);
1843
+ removeAttribute(elm, name);
2066
1844
  lockAttribute();
2067
1845
  },
2068
1846
  removeAttributeNS: function removeAttributeNS(namespace, name) {
2069
- var _getAssociatedVM5 = getAssociatedVM(this),
2070
- elm = _getAssociatedVM5.elm;
1847
+ var _getAssociatedVM = getAssociatedVM(this),
1848
+ elm = _getAssociatedVM.elm,
1849
+ removeAttribute = _getAssociatedVM.renderer.removeAttribute;
2071
1850
 
2072
1851
  unlockAttribute(elm, name);
2073
- removeAttribute$1(elm, name, namespace);
1852
+ removeAttribute(elm, name, namespace);
2074
1853
  lockAttribute();
2075
1854
  },
2076
1855
  getAttribute: function getAttribute(name) {
2077
- var _getAssociatedVM6 = getAssociatedVM(this),
2078
- elm = _getAssociatedVM6.elm;
2079
-
2080
- return getAttribute$1(elm, name);
1856
+ var vm = getAssociatedVM(this);
1857
+ var elm = vm.elm;
1858
+ var getAttribute = vm.renderer.getAttribute;
1859
+ return getAttribute(elm, name);
2081
1860
  },
2082
1861
  getAttributeNS: function getAttributeNS(namespace, name) {
2083
- var _getAssociatedVM7 = getAssociatedVM(this),
2084
- elm = _getAssociatedVM7.elm;
2085
-
2086
- return getAttribute$1(elm, name, namespace);
1862
+ var vm = getAssociatedVM(this);
1863
+ var elm = vm.elm;
1864
+ var getAttribute = vm.renderer.getAttribute;
1865
+ return getAttribute(elm, name, namespace);
2087
1866
  },
2088
1867
  setAttribute: function setAttribute(name, value) {
2089
1868
  var vm = getAssociatedVM(this);
2090
- var elm = vm.elm;
1869
+ var elm = vm.elm,
1870
+ setAttribute = vm.renderer.setAttribute;
2091
1871
 
2092
1872
  unlockAttribute(elm, name);
2093
- setAttribute$1(elm, name, value);
1873
+ setAttribute(elm, name, value);
2094
1874
  lockAttribute();
2095
1875
  },
2096
1876
  setAttributeNS: function setAttributeNS(namespace, name, value) {
2097
1877
  var vm = getAssociatedVM(this);
2098
- var elm = vm.elm;
1878
+ var elm = vm.elm,
1879
+ setAttribute = vm.renderer.setAttribute;
2099
1880
 
2100
1881
  unlockAttribute(elm, name);
2101
- setAttribute$1(elm, name, value, namespace);
1882
+ setAttribute(elm, name, value, namespace);
2102
1883
  lockAttribute();
2103
1884
  },
2104
1885
  getBoundingClientRect: function getBoundingClientRect() {
2105
1886
  var vm = getAssociatedVM(this);
2106
- var elm = vm.elm;
1887
+ var elm = vm.elm,
1888
+ getBoundingClientRect = vm.renderer.getBoundingClientRect;
2107
1889
 
2108
- return getBoundingClientRect$1(elm);
1890
+ return getBoundingClientRect(elm);
2109
1891
  },
2110
1892
 
2111
1893
  get isConnected() {
2112
- var _getAssociatedVM8 = getAssociatedVM(this),
2113
- elm = _getAssociatedVM8.elm;
2114
-
2115
- return isConnected$1(elm);
1894
+ var vm = getAssociatedVM(this);
1895
+ var elm = vm.elm,
1896
+ isConnected = vm.renderer.isConnected;
1897
+ return isConnected(elm);
2116
1898
  },
2117
1899
 
2118
1900
  get classList() {
2119
1901
  var vm = getAssociatedVM(this);
2120
- var elm = vm.elm;
1902
+ var elm = vm.elm,
1903
+ getClassList = vm.renderer.getClassList;
2121
1904
 
2122
- return getClassList$1(elm);
1905
+ return getClassList(elm);
2123
1906
  },
2124
1907
 
2125
1908
  get template() {
@@ -2134,89 +1917,69 @@ var LWC = (function (exports) {
2134
1917
  return null;
2135
1918
  },
2136
1919
 
2137
- render: function render() {
2138
- var vm = getAssociatedVM(this);
2139
- return vm.def.template;
2140
- },
2141
- toString: function toString() {
1920
+ get children() {
2142
1921
  var vm = getAssociatedVM(this);
2143
- return "[object ".concat(vm.def.name, "]");
2144
- }
2145
- };
2146
- var queryAndChildGetterDescriptors = create(null); // The reason we don't just call `import * as renderer from '../renderer'` here is that the bundle size
2147
- // is smaller if we reference each function individually. Otherwise Rollup will create one big frozen
2148
- // object representing the renderer, with a lot of methods we don't actually need.
2149
-
2150
- var childGetters = ['children', 'childNodes', 'firstChild', 'firstElementChild', 'lastChild', 'lastElementChild'];
2151
-
2152
- function getChildGetter(methodName) {
2153
- switch (methodName) {
2154
- case 'children':
2155
- return getChildren$1;
2156
-
2157
- case 'childNodes':
2158
- return getChildNodes$1;
1922
+ var renderer = vm.renderer;
2159
1923
 
2160
- case 'firstChild':
2161
- return getFirstChild$1;
2162
-
2163
- case 'firstElementChild':
2164
- return getFirstElementChild$1;
1924
+ return renderer.getChildren(vm.elm);
1925
+ },
2165
1926
 
2166
- case 'lastChild':
2167
- return getLastChild$1;
1927
+ get childNodes() {
1928
+ var vm = getAssociatedVM(this);
1929
+ var renderer = vm.renderer;
2168
1930
 
2169
- case 'lastElementChild':
2170
- return getLastElementChild$1;
2171
- }
2172
- } // Generic passthrough for child getters on HTMLElement to the relevant Renderer APIs
1931
+ return renderer.getChildNodes(vm.elm);
1932
+ },
2173
1933
 
1934
+ get firstChild() {
1935
+ var vm = getAssociatedVM(this);
1936
+ var renderer = vm.renderer;
2174
1937
 
2175
- var _loop = function _loop() {
2176
- var childGetter = _childGetters[_i7];
2177
- queryAndChildGetterDescriptors[childGetter] = {
2178
- get: function get() {
2179
- var vm = getAssociatedVM(this);
2180
- var elm = vm.elm;
1938
+ return renderer.getFirstChild(vm.elm);
1939
+ },
2181
1940
 
2182
- return getChildGetter(childGetter)(elm);
2183
- },
2184
- configurable: true,
2185
- enumerable: true
2186
- };
2187
- };
1941
+ get firstElementChild() {
1942
+ var vm = getAssociatedVM(this);
1943
+ var renderer = vm.renderer;
2188
1944
 
2189
- for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2190
- _loop();
2191
- }
1945
+ return renderer.getFirstElementChild(vm.elm);
1946
+ },
2192
1947
 
2193
- var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll'];
1948
+ get lastChild() {
1949
+ var vm = getAssociatedVM(this);
1950
+ var renderer = vm.renderer;
2194
1951
 
2195
- function getQueryMethod(methodName) {
2196
- switch (methodName) {
2197
- case 'getElementsByClassName':
2198
- return getElementsByClassName$1;
1952
+ return renderer.getLastChild(vm.elm);
1953
+ },
2199
1954
 
2200
- case 'getElementsByTagName':
2201
- return getElementsByTagName$1;
1955
+ get lastElementChild() {
1956
+ var vm = getAssociatedVM(this);
1957
+ var renderer = vm.renderer;
2202
1958
 
2203
- case 'querySelector':
2204
- return querySelector$1;
1959
+ return renderer.getLastElementChild(vm.elm);
1960
+ },
2205
1961
 
2206
- case 'querySelectorAll':
2207
- return querySelectorAll$1;
1962
+ render: function render() {
1963
+ var vm = getAssociatedVM(this);
1964
+ return vm.def.template;
1965
+ },
1966
+ toString: function toString() {
1967
+ var vm = getAssociatedVM(this);
1968
+ return "[object ".concat(vm.def.name, "]");
2208
1969
  }
2209
- } // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2210
-
1970
+ };
1971
+ var queryAndChildGetterDescriptors = create(null);
1972
+ var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll']; // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2211
1973
 
2212
- var _loop2 = function _loop2() {
2213
- var queryMethod = _queryMethods[_i8];
1974
+ var _loop = function _loop() {
1975
+ var queryMethod = _queryMethods[_i7];
2214
1976
  queryAndChildGetterDescriptors[queryMethod] = {
2215
1977
  value: function value(arg) {
2216
1978
  var vm = getAssociatedVM(this);
2217
- var elm = vm.elm;
1979
+ var elm = vm.elm,
1980
+ renderer = vm.renderer;
2218
1981
 
2219
- return getQueryMethod(queryMethod)(elm, arg);
1982
+ return renderer[queryMethod](elm, arg);
2220
1983
  },
2221
1984
  configurable: true,
2222
1985
  enumerable: true,
@@ -2224,8 +1987,8 @@ var LWC = (function (exports) {
2224
1987
  };
2225
1988
  };
2226
1989
 
2227
- for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2228
- _loop2();
1990
+ for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
1991
+ _loop();
2229
1992
  }
2230
1993
 
2231
1994
  defineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);
@@ -2585,8 +2348,8 @@ var LWC = (function (exports) {
2585
2348
  }
2586
2349
 
2587
2350
  if (!isUndefined$1(fields)) {
2588
- for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
2589
- var _fieldName2 = fields[_i9];
2351
+ for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
2352
+ var _fieldName2 = fields[_i8];
2590
2353
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
2591
2354
  // tracked property. This is only here for backward compatibility purposes.
2592
2355
 
@@ -2840,8 +2603,8 @@ var LWC = (function (exports) {
2840
2603
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
2841
2604
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
2842
2605
 
2843
- for (var _i10 = 0, len = props.length; _i10 < len; _i10 += 1) {
2844
- var _propName = props[_i10];
2606
+ for (var _i9 = 0, len = props.length; _i9 < len; _i9 += 1) {
2607
+ var _propName = props[_i9];
2845
2608
  attributeToPropMap[htmlPropertyToAttribute(_propName)] = _propName;
2846
2609
  descriptors[_propName] = {
2847
2610
  get: createGetter(_propName),
@@ -2852,8 +2615,8 @@ var LWC = (function (exports) {
2852
2615
  } // expose public methods as props on the new Element Bridge
2853
2616
 
2854
2617
 
2855
- for (var _i11 = 0, _len3 = methods.length; _i11 < _len3; _i11 += 1) {
2856
- var methodName = methods[_i11];
2618
+ for (var _i10 = 0, _len3 = methods.length; _i10 < _len3; _i10 += 1) {
2619
+ var methodName = methods[_i10];
2857
2620
  descriptors[methodName] = {
2858
2621
  value: createMethodCaller(methodName),
2859
2622
  writable: true,
@@ -3156,12 +2919,15 @@ var LWC = (function (exports) {
3156
2919
  */
3157
2920
 
3158
2921
 
3159
- function getUpgradableConstructor(tagName) {
3160
- // Should never get a tag with upper case letter at this point, the compiler should
2922
+ function getUpgradableConstructor(tagName, renderer) {
2923
+ var getCustomElement = renderer.getCustomElement,
2924
+ RendererHTMLElement = renderer.HTMLElementExported,
2925
+ defineCustomElement = renderer.defineCustomElement; // Should never get a tag with upper case letter at this point, the compiler should
3161
2926
  // produce only tags with lowercase letters
3162
2927
  // But, for backwards compatibility, we will lower case the tagName
2928
+
3163
2929
  tagName = tagName.toLowerCase();
3164
- var CE = getCustomElement$1(tagName);
2930
+ var CE = getCustomElement(tagName);
3165
2931
 
3166
2932
  if (!isUndefined$1(CE)) {
3167
2933
  return CE;
@@ -3172,8 +2938,8 @@ var LWC = (function (exports) {
3172
2938
  */
3173
2939
 
3174
2940
 
3175
- CE = /*#__PURE__*/function (_HTMLElementExported$) {
3176
- _inherits(LWCUpgradableElement, _HTMLElementExported$);
2941
+ CE = /*#__PURE__*/function (_RendererHTMLElement) {
2942
+ _inherits(LWCUpgradableElement, _RendererHTMLElement);
3177
2943
 
3178
2944
  var _super5 = _createSuper(LWCUpgradableElement);
3179
2945
 
@@ -3192,9 +2958,9 @@ var LWC = (function (exports) {
3192
2958
  }
3193
2959
 
3194
2960
  return _createClass(LWCUpgradableElement);
3195
- }(HTMLElementExported$1);
2961
+ }(RendererHTMLElement);
3196
2962
 
3197
- defineCustomElement$1(tagName, CE);
2963
+ defineCustomElement(tagName, CE);
3198
2964
  return CE;
3199
2965
  }
3200
2966
  /*
@@ -3227,7 +2993,7 @@ var LWC = (function (exports) {
3227
2993
 
3228
2994
  var ColonCharCode = 58;
3229
2995
 
3230
- function patchAttributes(oldVnode, vnode) {
2996
+ function patchAttributes(oldVnode, vnode, renderer) {
3231
2997
  var attrs = vnode.data.attrs;
3232
2998
 
3233
2999
  if (isUndefined$1(attrs)) {
@@ -3241,6 +3007,8 @@ var LWC = (function (exports) {
3241
3007
  }
3242
3008
 
3243
3009
  var elm = vnode.elm;
3010
+ var setAttribute = renderer.setAttribute,
3011
+ removeAttribute = renderer.removeAttribute;
3244
3012
 
3245
3013
  for (var key in attrs) {
3246
3014
  var cur = attrs[key];
@@ -3251,14 +3019,14 @@ var LWC = (function (exports) {
3251
3019
 
3252
3020
  if (StringCharCodeAt.call(key, 3) === ColonCharCode) {
3253
3021
  // Assume xml namespace
3254
- setAttribute$1(elm, key, cur, XML_NAMESPACE);
3022
+ setAttribute(elm, key, cur, XML_NAMESPACE);
3255
3023
  } else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {
3256
3024
  // Assume xlink namespace
3257
- setAttribute$1(elm, key, cur, XLINK_NAMESPACE);
3025
+ setAttribute(elm, key, cur, XLINK_NAMESPACE);
3258
3026
  } else if (isNull(cur) || isUndefined$1(cur)) {
3259
- removeAttribute$1(elm, key);
3027
+ removeAttribute(elm, key);
3260
3028
  } else {
3261
- setAttribute$1(elm, key, cur);
3029
+ setAttribute(elm, key, cur);
3262
3030
  }
3263
3031
 
3264
3032
  lockAttribute();
@@ -3279,7 +3047,7 @@ var LWC = (function (exports) {
3279
3047
  return sel === 'input' && (key === 'value' || key === 'checked');
3280
3048
  }
3281
3049
 
3282
- function patchProps(oldVnode, vnode) {
3050
+ function patchProps(oldVnode, vnode, renderer) {
3283
3051
  var props = vnode.data.props;
3284
3052
 
3285
3053
  if (isUndefined$1(props)) {
@@ -3295,13 +3063,15 @@ var LWC = (function (exports) {
3295
3063
  var isFirstPatch = isNull(oldVnode);
3296
3064
  var elm = vnode.elm,
3297
3065
  sel = vnode.sel;
3066
+ var getProperty = renderer.getProperty,
3067
+ setProperty = renderer.setProperty;
3298
3068
 
3299
3069
  for (var key in props) {
3300
3070
  var cur = props[key]; // Set the property if it's the first time is is patched or if the previous property is
3301
3071
  // different than the one previously set.
3302
3072
 
3303
- if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty$1(elm, key) : oldProps[key])) {
3304
- setProperty$1(elm, key, cur);
3073
+ if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty(elm, key) : oldProps[key])) {
3074
+ setProperty(elm, key, cur);
3305
3075
  }
3306
3076
  }
3307
3077
  }
@@ -3353,7 +3123,7 @@ var LWC = (function (exports) {
3353
3123
  return map;
3354
3124
  }
3355
3125
 
3356
- function patchClassAttribute(oldVnode, vnode) {
3126
+ function patchClassAttribute(oldVnode, vnode, renderer) {
3357
3127
  var elm = vnode.elm,
3358
3128
  newClass = vnode.data.className;
3359
3129
  var oldClass = isNull(oldVnode) ? undefined : oldVnode.data.className;
@@ -3362,7 +3132,8 @@ var LWC = (function (exports) {
3362
3132
  return;
3363
3133
  }
3364
3134
 
3365
- var classList = getClassList$1(elm);
3135
+ var getClassList = renderer.getClassList;
3136
+ var classList = getClassList(elm);
3366
3137
  var newClassMap = getMapFromClassName(newClass);
3367
3138
  var oldClassMap = getMapFromClassName(oldClass);
3368
3139
  var name;
@@ -3389,7 +3160,7 @@ var LWC = (function (exports) {
3389
3160
  // The style property is a string when defined via an expression in the template.
3390
3161
 
3391
3162
 
3392
- function patchStyleAttribute(oldVnode, vnode) {
3163
+ function patchStyleAttribute(oldVnode, vnode, renderer) {
3393
3164
  var elm = vnode.elm,
3394
3165
  newStyle = vnode.data.style;
3395
3166
  var oldStyle = isNull(oldVnode) ? undefined : oldVnode.data.style;
@@ -3398,10 +3169,13 @@ var LWC = (function (exports) {
3398
3169
  return;
3399
3170
  }
3400
3171
 
3172
+ var setAttribute = renderer.setAttribute,
3173
+ removeAttribute = renderer.removeAttribute;
3174
+
3401
3175
  if (!isString(newStyle) || newStyle === '') {
3402
- removeAttribute$1(elm, 'style');
3176
+ removeAttribute(elm, 'style');
3403
3177
  } else {
3404
- setAttribute$1(elm, 'style', newStyle);
3178
+ setAttribute(elm, 'style', newStyle);
3405
3179
  }
3406
3180
  }
3407
3181
  /*
@@ -3412,7 +3186,7 @@ var LWC = (function (exports) {
3412
3186
  */
3413
3187
 
3414
3188
 
3415
- function applyEventListeners(vnode) {
3189
+ function applyEventListeners(vnode, renderer) {
3416
3190
  var elm = vnode.elm,
3417
3191
  on = vnode.data.on;
3418
3192
 
@@ -3420,9 +3194,11 @@ var LWC = (function (exports) {
3420
3194
  return;
3421
3195
  }
3422
3196
 
3197
+ var addEventListener = renderer.addEventListener;
3198
+
3423
3199
  for (var name in on) {
3424
3200
  var handler = on[name];
3425
- addEventListener$1(elm, name, handler);
3201
+ addEventListener(elm, name, handler);
3426
3202
  }
3427
3203
  }
3428
3204
  /*
@@ -3436,7 +3212,7 @@ var LWC = (function (exports) {
3436
3212
  // different classnames properties individually instead of via a string.
3437
3213
 
3438
3214
 
3439
- function applyStaticClassAttribute(vnode) {
3215
+ function applyStaticClassAttribute(vnode, renderer) {
3440
3216
  var elm = vnode.elm,
3441
3217
  classMap = vnode.data.classMap;
3442
3218
 
@@ -3444,7 +3220,8 @@ var LWC = (function (exports) {
3444
3220
  return;
3445
3221
  }
3446
3222
 
3447
- var classList = getClassList$1(elm);
3223
+ var getClassList = renderer.getClassList;
3224
+ var classList = getClassList(elm);
3448
3225
 
3449
3226
  for (var name in classMap) {
3450
3227
  classList.add(name);
@@ -3461,7 +3238,7 @@ var LWC = (function (exports) {
3461
3238
  // different style properties individually instead of via a string.
3462
3239
 
3463
3240
 
3464
- function applyStaticStyleAttribute(vnode) {
3241
+ function applyStaticStyleAttribute(vnode, renderer) {
3465
3242
  var elm = vnode.elm,
3466
3243
  styleDecls = vnode.data.styleDecls;
3467
3244
 
@@ -3469,13 +3246,15 @@ var LWC = (function (exports) {
3469
3246
  return;
3470
3247
  }
3471
3248
 
3472
- for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
3473
- var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
3249
+ var setCSSStyleProperty = renderer.setCSSStyleProperty;
3250
+
3251
+ for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
3252
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
3474
3253
  prop = _styleDecls$_i[0],
3475
3254
  value = _styleDecls$_i[1],
3476
3255
  important = _styleDecls$_i[2];
3477
3256
 
3478
- setCSSStyleProperty$1(elm, prop, value, important);
3257
+ setCSSStyleProperty(elm, prop, value, important);
3479
3258
  }
3480
3259
  }
3481
3260
  /*
@@ -3486,15 +3265,17 @@ var LWC = (function (exports) {
3486
3265
  */
3487
3266
 
3488
3267
 
3489
- function patchChildren(c1, c2, parent) {
3268
+ function patchChildren(c1, c2, parent, renderer) {
3490
3269
  if (hasDynamicChildren(c2)) {
3491
- updateDynamicChildren(c1, c2, parent);
3270
+ updateDynamicChildren(c1, c2, parent, renderer);
3492
3271
  } else {
3493
- updateStaticChildren(c1, c2, parent);
3272
+ updateStaticChildren(c1, c2, parent, renderer);
3494
3273
  }
3495
3274
  }
3496
3275
 
3497
- function patch(n1, n2) {
3276
+ function patch(n1, n2, renderer) {
3277
+ var _a, _b;
3278
+
3498
3279
  if (n1 === n2) {
3499
3280
  return;
3500
3281
  }
@@ -3503,112 +3284,123 @@ var LWC = (function (exports) {
3503
3284
  case 0
3504
3285
  /* Text */
3505
3286
  :
3506
- patchText(n1, n2);
3287
+ // VText has no special capability, fallback to the owner's renderer
3288
+ patchText(n1, n2, renderer);
3507
3289
  break;
3508
3290
 
3509
3291
  case 1
3510
3292
  /* Comment */
3511
3293
  :
3512
- patchComment(n1, n2);
3294
+ // VComment has no special capability, fallback to the owner's renderer
3295
+ patchComment(n1, n2, renderer);
3513
3296
  break;
3514
3297
 
3515
3298
  case 2
3516
3299
  /* Element */
3517
3300
  :
3518
- patchElement(n1, n2);
3301
+ patchElement(n1, n2, (_a = n2.data.renderer) !== null && _a !== void 0 ? _a : renderer);
3519
3302
  break;
3520
3303
 
3521
3304
  case 3
3522
3305
  /* CustomElement */
3523
3306
  :
3524
- patchCustomElement(n1, n2);
3307
+ patchCustomElement(n1, n2, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3525
3308
  break;
3526
3309
  }
3527
3310
  }
3528
3311
 
3529
- function mount(node, parent, anchor) {
3312
+ function mount(node, parent, renderer, anchor) {
3313
+ var _a, _b;
3314
+
3530
3315
  switch (node.type) {
3531
3316
  case 0
3532
3317
  /* Text */
3533
3318
  :
3534
- mountText(node, parent, anchor);
3319
+ // VText has no special capability, fallback to the owner's renderer
3320
+ mountText(node, parent, anchor, renderer);
3535
3321
  break;
3536
3322
 
3537
3323
  case 1
3538
3324
  /* Comment */
3539
3325
  :
3540
- mountComment(node, parent, anchor);
3326
+ // VComment has no special capability, fallback to the owner's renderer
3327
+ mountComment(node, parent, anchor, renderer);
3541
3328
  break;
3542
3329
 
3543
3330
  case 2
3544
3331
  /* Element */
3545
3332
  :
3546
- mountElement(node, parent, anchor);
3333
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
3334
+ mountElement(node, parent, anchor, (_a = node.data.renderer) !== null && _a !== void 0 ? _a : renderer);
3547
3335
  break;
3548
3336
 
3549
3337
  case 3
3550
3338
  /* CustomElement */
3551
3339
  :
3552
- mountCustomElement(node, parent, anchor);
3340
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
3341
+ mountCustomElement(node, parent, anchor, (_b = node.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3553
3342
  break;
3554
3343
  }
3555
3344
  }
3556
3345
 
3557
- function patchText(n1, n2) {
3346
+ function patchText(n1, n2, renderer) {
3558
3347
  n2.elm = n1.elm;
3559
3348
 
3560
3349
  if (n2.text !== n1.text) {
3561
- updateTextContent(n2);
3350
+ updateTextContent(n2, renderer);
3562
3351
  }
3563
3352
  }
3564
3353
 
3565
- function mountText(node, parent, anchor) {
3566
- var owner = node.owner;
3567
- var textNode = node.elm = createText$1(node.text);
3568
- linkNodeToShadow(textNode, owner);
3569
- insertNode(textNode, parent, anchor);
3354
+ function mountText(vnode, parent, anchor, renderer) {
3355
+ var owner = vnode.owner;
3356
+ var createText = renderer.createText;
3357
+ var textNode = vnode.elm = createText(vnode.text);
3358
+ linkNodeToShadow(textNode, owner, renderer);
3359
+ insertNode(textNode, parent, anchor, renderer);
3570
3360
  }
3571
3361
 
3572
- function patchComment(n1, n2) {
3362
+ function patchComment(n1, n2, renderer) {
3573
3363
  n2.elm = n1.elm; // FIXME: Comment nodes should be static, we shouldn't need to diff them together. However
3574
3364
  // it is the case today.
3575
3365
 
3576
3366
  if (n2.text !== n1.text) {
3577
- updateTextContent(n2);
3367
+ updateTextContent(n2, renderer);
3578
3368
  }
3579
3369
  }
3580
3370
 
3581
- function mountComment(node, parent, anchor) {
3582
- var owner = node.owner;
3583
- var commentNode = node.elm = createComment$1(node.text);
3584
- linkNodeToShadow(commentNode, owner);
3585
- insertNode(commentNode, parent, anchor);
3371
+ function mountComment(vnode, parent, anchor, renderer) {
3372
+ var owner = vnode.owner;
3373
+ var createComment = renderer.createComment;
3374
+ var commentNode = vnode.elm = createComment(vnode.text);
3375
+ linkNodeToShadow(commentNode, owner, renderer);
3376
+ insertNode(commentNode, parent, anchor, renderer);
3586
3377
  }
3587
3378
 
3588
- function mountElement(vnode, parent, anchor) {
3379
+ function mountElement(vnode, parent, anchor, renderer) {
3589
3380
  var sel = vnode.sel,
3590
3381
  owner = vnode.owner,
3591
3382
  svg = vnode.data.svg;
3383
+ var createElement = renderer.createElement;
3592
3384
  var namespace = isTrue(svg) ? SVG_NAMESPACE : undefined;
3593
- var elm = createElement$2(sel, namespace);
3594
- linkNodeToShadow(elm, owner);
3595
- fallbackElmHook(elm, vnode);
3385
+ var elm = createElement(sel, namespace);
3386
+ linkNodeToShadow(elm, owner, renderer);
3387
+ fallbackElmHook(elm, vnode, renderer);
3596
3388
  vnode.elm = elm;
3597
- patchElementPropsAndAttrs$1(null, vnode);
3598
- insertNode(elm, parent, anchor);
3599
- mountVNodes(vnode.children, elm, null);
3389
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
3390
+ insertNode(elm, parent, anchor, renderer);
3391
+ mountVNodes(vnode.children, elm, renderer, null);
3600
3392
  }
3601
3393
 
3602
- function patchElement(n1, n2) {
3394
+ function patchElement(n1, n2, renderer) {
3603
3395
  var elm = n2.elm = n1.elm;
3604
- patchElementPropsAndAttrs$1(n1, n2);
3605
- patchChildren(n1.children, n2.children, elm);
3396
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
3397
+ patchChildren(n1.children, n2.children, elm, renderer);
3606
3398
  }
3607
3399
 
3608
- function mountCustomElement(vnode, parent, anchor) {
3400
+ function mountCustomElement(vnode, parent, anchor, renderer) {
3609
3401
  var sel = vnode.sel,
3610
3402
  owner = vnode.owner;
3611
- var UpgradableConstructor = getUpgradableConstructor(sel);
3403
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
3612
3404
  /**
3613
3405
  * Note: if the upgradable constructor does not expect, or throw when we new it
3614
3406
  * with a callback as the first argument, we could implement a more advanced
@@ -3619,9 +3411,9 @@ var LWC = (function (exports) {
3619
3411
  var vm;
3620
3412
  var elm = new UpgradableConstructor(function (elm) {
3621
3413
  // the custom element from the registry is expecting an upgrade callback
3622
- vm = createViewModelHook(elm, vnode);
3414
+ vm = createViewModelHook(elm, vnode, renderer);
3623
3415
  });
3624
- linkNodeToShadow(elm, owner);
3416
+ linkNodeToShadow(elm, owner, renderer);
3625
3417
  vnode.elm = elm;
3626
3418
  vnode.vm = vm;
3627
3419
 
@@ -3631,25 +3423,25 @@ var LWC = (function (exports) {
3631
3423
  throw new TypeError("Incorrect Component Constructor");
3632
3424
  }
3633
3425
 
3634
- patchElementPropsAndAttrs$1(null, vnode);
3635
- insertNode(elm, parent, anchor);
3426
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
3427
+ insertNode(elm, parent, anchor, renderer);
3636
3428
 
3637
3429
  if (vm) {
3638
3430
 
3639
3431
  runConnectedCallback(vm);
3640
3432
  }
3641
3433
 
3642
- mountVNodes(vnode.children, elm, null);
3434
+ mountVNodes(vnode.children, elm, renderer, null);
3643
3435
 
3644
3436
  if (vm) {
3645
3437
  appendVM(vm);
3646
3438
  }
3647
3439
  }
3648
3440
 
3649
- function patchCustomElement(n1, n2) {
3441
+ function patchCustomElement(n1, n2, renderer) {
3650
3442
  var elm = n2.elm = n1.elm;
3651
3443
  var vm = n2.vm = n1.vm;
3652
- patchElementPropsAndAttrs$1(n1, n2);
3444
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
3653
3445
 
3654
3446
  if (!isUndefined$1(vm)) {
3655
3447
  // in fallback mode, the allocation will always set children to
@@ -3659,7 +3451,7 @@ var LWC = (function (exports) {
3659
3451
  // will happen, but in native, it does allocate the light dom
3660
3452
 
3661
3453
 
3662
- patchChildren(n1.children, n2.children, elm);
3454
+ patchChildren(n1.children, n2.children, elm, renderer);
3663
3455
 
3664
3456
  if (!isUndefined$1(vm)) {
3665
3457
  // this will probably update the shadowRoot, but only if the vm is in a dirty state
@@ -3668,28 +3460,30 @@ var LWC = (function (exports) {
3668
3460
  }
3669
3461
  }
3670
3462
 
3671
- function mountVNodes(vnodes, parent, anchor) {
3672
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
3673
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
3463
+ function mountVNodes(vnodes, parent, renderer, anchor) {
3464
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
3465
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
3674
3466
 
3675
3467
  for (; start < end; ++start) {
3676
3468
  var vnode = vnodes[start];
3677
3469
 
3678
3470
  if (isVNode(vnode)) {
3679
- mount(vnode, parent, anchor);
3471
+ mount(vnode, parent, renderer, anchor);
3680
3472
  }
3681
3473
  }
3682
3474
  }
3683
3475
 
3684
- function unmount(vnode, parent) {
3685
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3476
+ function unmount(vnode, parent, renderer) {
3477
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
3686
3478
  var type = vnode.type,
3687
3479
  elm = vnode.elm,
3688
3480
  sel = vnode.sel; // When unmounting a VNode subtree not all the elements have to removed from the DOM. The
3689
3481
  // subtree root, is the only element worth unmounting from the subtree.
3690
3482
 
3691
3483
  if (doRemove) {
3692
- removeNode(elm, parent);
3484
+ // The vnode might or might not have a data.renderer associated to it
3485
+ // but the removal used here is from the owner instead.
3486
+ removeNode(elm, parent, renderer);
3693
3487
  }
3694
3488
 
3695
3489
  switch (type) {
@@ -3699,10 +3493,10 @@ var LWC = (function (exports) {
3699
3493
  {
3700
3494
  // Slot content is removed to trigger slotchange event when removing slot.
3701
3495
  // Only required for synthetic shadow.
3702
- var removeChildren = sel === 'slot' && vnode.owner.shadowMode === 1
3496
+ var shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1
3703
3497
  /* Synthetic */
3704
3498
  ;
3705
- unmountVNodes(vnode.children, elm, removeChildren);
3499
+ unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);
3706
3500
  break;
3707
3501
  }
3708
3502
 
@@ -3720,16 +3514,16 @@ var LWC = (function (exports) {
3720
3514
  }
3721
3515
  }
3722
3516
 
3723
- function unmountVNodes(vnodes, parent) {
3724
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3725
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
3726
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
3517
+ function unmountVNodes(vnodes, parent, renderer) {
3518
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
3519
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
3520
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
3727
3521
 
3728
3522
  for (; start < end; ++start) {
3729
3523
  var ch = vnodes[start];
3730
3524
 
3731
3525
  if (isVNode(ch)) {
3732
- unmount(ch, parent, doRemove);
3526
+ unmount(ch, parent, renderer, doRemove);
3733
3527
  }
3734
3528
  }
3735
3529
  }
@@ -3747,22 +3541,26 @@ var LWC = (function (exports) {
3747
3541
  } // Set the scope token class for *.scoped.css styles
3748
3542
 
3749
3543
 
3750
- function setScopeTokenClassIfNecessary(elm, owner) {
3544
+ function setScopeTokenClassIfNecessary(elm, owner, renderer) {
3751
3545
  var cmpTemplate = owner.cmpTemplate,
3752
3546
  context = owner.context;
3547
+ var getClassList = renderer.getClassList;
3753
3548
  var token = cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken;
3754
3549
 
3755
3550
  if (!isUndefined$1(token) && context.hasScopedStyles) {
3756
- getClassList$1(elm).add(token);
3551
+ // TODO [#2762]: this dot notation with add is probably problematic
3552
+ // probably we should have a renderer api for just the add operation
3553
+ getClassList(elm).add(token);
3757
3554
  }
3758
3555
  }
3759
3556
 
3760
- function linkNodeToShadow(elm, owner) {
3557
+ function linkNodeToShadow(elm, owner, renderer) {
3761
3558
  var renderRoot = owner.renderRoot,
3762
3559
  renderMode = owner.renderMode,
3763
- shadowMode = owner.shadowMode; // TODO [#1164]: this should eventually be done by the polyfill directly
3560
+ shadowMode = owner.shadowMode;
3561
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined; // TODO [#1164]: this should eventually be done by the polyfill directly
3764
3562
 
3765
- if (isSyntheticShadowDefined$1) {
3563
+ if (isSyntheticShadowDefined) {
3766
3564
  if (shadowMode === 1
3767
3565
  /* Synthetic */
3768
3566
  || renderMode === 0
@@ -3773,41 +3571,42 @@ var LWC = (function (exports) {
3773
3571
  }
3774
3572
  }
3775
3573
 
3776
- function updateTextContent(vnode) {
3574
+ function updateTextContent(vnode, renderer) {
3777
3575
  var elm = vnode.elm,
3778
3576
  text = vnode.text;
3577
+ var setText = renderer.setText;
3779
3578
 
3780
- setText$1(elm, text);
3579
+ setText(elm, text);
3781
3580
  }
3782
3581
 
3783
- function insertNode(node, parent, anchor) {
3582
+ function insertNode(node, parent, anchor, renderer) {
3784
3583
 
3785
- insert$1(node, parent, anchor);
3584
+ renderer.insert(node, parent, anchor);
3786
3585
  }
3787
3586
 
3788
- function removeNode(node, parent) {
3587
+ function removeNode(node, parent, renderer) {
3789
3588
 
3790
- remove$1(node, parent);
3589
+ renderer.remove(node, parent);
3791
3590
  }
3792
3591
 
3793
- function patchElementPropsAndAttrs$1(oldVnode, vnode) {
3592
+ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
3794
3593
  if (isNull(oldVnode)) {
3795
- applyEventListeners(vnode);
3796
- applyStaticClassAttribute(vnode);
3797
- applyStaticStyleAttribute(vnode);
3594
+ applyEventListeners(vnode, renderer);
3595
+ applyStaticClassAttribute(vnode, renderer);
3596
+ applyStaticStyleAttribute(vnode, renderer);
3798
3597
  } // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if
3799
3598
  // value is set before type=radio.
3800
3599
 
3801
3600
 
3802
- patchClassAttribute(oldVnode, vnode);
3803
- patchStyleAttribute(oldVnode, vnode);
3804
- patchAttributes(oldVnode, vnode);
3805
- patchProps(oldVnode, vnode);
3601
+ patchClassAttribute(oldVnode, vnode, renderer);
3602
+ patchStyleAttribute(oldVnode, vnode, renderer);
3603
+ patchAttributes(oldVnode, vnode, renderer);
3604
+ patchProps(oldVnode, vnode, renderer);
3806
3605
  }
3807
3606
 
3808
- function fallbackElmHook(elm, vnode) {
3607
+ function fallbackElmHook(elm, vnode, renderer) {
3809
3608
  var owner = vnode.owner;
3810
- setScopeTokenClassIfNecessary(elm, owner);
3609
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3811
3610
 
3812
3611
  if (owner.shadowMode === 1
3813
3612
  /* Synthetic */
@@ -3860,7 +3659,7 @@ var LWC = (function (exports) {
3860
3659
  }
3861
3660
  }
3862
3661
 
3863
- function createViewModelHook(elm, vnode) {
3662
+ function createViewModelHook(elm, vnode, renderer) {
3864
3663
  var vm = getAssociatedVMIfPresent(elm); // There is a possibility that a custom element is registered under tagName, in which case, the
3865
3664
  // initialization is already carry on, and there is nothing else to do here since this hook is
3866
3665
  // called right after invoking `document.createElement`.
@@ -3873,7 +3672,7 @@ var LWC = (function (exports) {
3873
3672
  mode = vnode.mode,
3874
3673
  ctor = vnode.ctor,
3875
3674
  owner = vnode.owner;
3876
- setScopeTokenClassIfNecessary(elm, owner);
3675
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
3877
3676
 
3878
3677
  if (owner.shadowMode === 1
3879
3678
  /* Synthetic */
@@ -3886,7 +3685,7 @@ var LWC = (function (exports) {
3886
3685
  }
3887
3686
  }
3888
3687
 
3889
- vm = createVM(elm, ctor, {
3688
+ vm = createVM(elm, ctor, renderer, {
3890
3689
  mode: mode,
3891
3690
  owner: owner,
3892
3691
  tagName: sel
@@ -3901,8 +3700,8 @@ var LWC = (function (exports) {
3901
3700
  var oldSlots = vm.cmpSlots;
3902
3701
  var cmpSlots = vm.cmpSlots = create(null);
3903
3702
 
3904
- for (var _i13 = 0, len = children.length; _i13 < len; _i13 += 1) {
3905
- var vnode = children[_i13];
3703
+ for (var _i12 = 0, len = children.length; _i12 < len; _i12 += 1) {
3704
+ var vnode = children[_i12];
3906
3705
 
3907
3706
  if (isNull(vnode)) {
3908
3707
  continue;
@@ -3928,8 +3727,8 @@ var LWC = (function (exports) {
3928
3727
  return;
3929
3728
  }
3930
3729
 
3931
- for (var _i14 = 0, _len4 = oldKeys.length; _i14 < _len4; _i14 += 1) {
3932
- var key = oldKeys[_i14];
3730
+ for (var _i13 = 0, _len4 = oldKeys.length; _i13 < _len4; _i13 += 1) {
3731
+ var key = oldKeys[_i13];
3933
3732
 
3934
3733
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
3935
3734
  markComponentAsDirty(vm);
@@ -3979,7 +3778,7 @@ var LWC = (function (exports) {
3979
3778
  return map;
3980
3779
  }
3981
3780
 
3982
- function updateDynamicChildren(oldCh, newCh, parent) {
3781
+ function updateDynamicChildren(oldCh, newCh, parent, renderer) {
3983
3782
  var oldStartIdx = 0;
3984
3783
  var newStartIdx = 0;
3985
3784
  var oldEndIdx = oldCh.length - 1;
@@ -4005,23 +3804,23 @@ var LWC = (function (exports) {
4005
3804
  } else if (!isVNode(newEndVnode)) {
4006
3805
  newEndVnode = newCh[--newEndIdx];
4007
3806
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
4008
- patch(oldStartVnode, newStartVnode);
3807
+ patch(oldStartVnode, newStartVnode, renderer);
4009
3808
  oldStartVnode = oldCh[++oldStartIdx];
4010
3809
  newStartVnode = newCh[++newStartIdx];
4011
3810
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
4012
- patch(oldEndVnode, newEndVnode);
3811
+ patch(oldEndVnode, newEndVnode, renderer);
4013
3812
  oldEndVnode = oldCh[--oldEndIdx];
4014
3813
  newEndVnode = newCh[--newEndIdx];
4015
3814
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
4016
3815
  // Vnode moved right
4017
- patch(oldStartVnode, newEndVnode);
4018
- insertNode(oldStartVnode.elm, parent, nextSibling$1(oldEndVnode.elm));
3816
+ patch(oldStartVnode, newEndVnode, renderer);
3817
+ insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
4019
3818
  oldStartVnode = oldCh[++oldStartIdx];
4020
3819
  newEndVnode = newCh[--newEndIdx];
4021
3820
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
4022
3821
  // Vnode moved left
4023
- patch(oldEndVnode, newStartVnode);
4024
- insertNode(newStartVnode.elm, parent, oldStartVnode.elm);
3822
+ patch(oldEndVnode, newStartVnode, renderer);
3823
+ insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
4025
3824
  oldEndVnode = oldCh[--oldEndIdx];
4026
3825
  newStartVnode = newCh[++newStartIdx];
4027
3826
  } else {
@@ -4033,7 +3832,7 @@ var LWC = (function (exports) {
4033
3832
 
4034
3833
  if (isUndefined$1(idxInOld)) {
4035
3834
  // New element
4036
- mount(newStartVnode, parent, oldStartVnode.elm);
3835
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4037
3836
  newStartVnode = newCh[++newStartIdx];
4038
3837
  } else {
4039
3838
  elmToMove = oldCh[idxInOld];
@@ -4041,9 +3840,9 @@ var LWC = (function (exports) {
4041
3840
  if (isVNode(elmToMove)) {
4042
3841
  if (elmToMove.sel !== newStartVnode.sel) {
4043
3842
  // New element
4044
- mount(newStartVnode, parent, oldStartVnode.elm);
3843
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4045
3844
  } else {
4046
- patch(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
3845
+ patch(elmToMove, newStartVnode, renderer); // Delete the old child, but copy the array since it is read-only.
4047
3846
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
4048
3847
  // so we only care about the `oldCh` object inside this function.
4049
3848
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -4056,7 +3855,7 @@ var LWC = (function (exports) {
4056
3855
 
4057
3856
 
4058
3857
  oldCh[idxInOld] = undefined;
4059
- insertNode(elmToMove.elm, parent, oldStartVnode.elm);
3858
+ insertNode(elmToMove.elm, parent, oldStartVnode.elm, renderer);
4060
3859
  }
4061
3860
  }
4062
3861
 
@@ -4069,35 +3868,35 @@ var LWC = (function (exports) {
4069
3868
  if (oldStartIdx > oldEndIdx) {
4070
3869
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
4071
3870
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
4072
- var _i15 = newEndIdx;
3871
+ var _i14 = newEndIdx;
4073
3872
  var n;
4074
3873
 
4075
3874
  do {
4076
- n = newCh[++_i15];
4077
- } while (!isVNode(n) && _i15 < newChEnd);
3875
+ n = newCh[++_i14];
3876
+ } while (!isVNode(n) && _i14 < newChEnd);
4078
3877
 
4079
3878
  before = isVNode(n) ? n.elm : null;
4080
- mountVNodes(newCh, parent, before, newStartIdx, newEndIdx + 1);
3879
+ mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
4081
3880
  } else {
4082
- unmountVNodes(oldCh, parent, true, oldStartIdx, oldEndIdx + 1);
3881
+ unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);
4083
3882
  }
4084
3883
  }
4085
3884
  }
4086
3885
 
4087
- function updateStaticChildren(c1, c2, parent) {
3886
+ function updateStaticChildren(c1, c2, parent, renderer) {
4088
3887
  var c1Length = c1.length;
4089
3888
  var c2Length = c2.length;
4090
3889
 
4091
3890
  if (c1Length === 0) {
4092
3891
  // the old list is empty, we can directly insert anything new
4093
- mountVNodes(c2, parent, null);
3892
+ mountVNodes(c2, parent, renderer, null);
4094
3893
  return;
4095
3894
  }
4096
3895
 
4097
3896
  if (c2Length === 0) {
4098
3897
  // the old list is nonempty and the new list is empty so we can directly remove all old nodes
4099
3898
  // this is the case in which the dynamic children of an if-directive should be removed
4100
- unmountVNodes(c1, parent, true);
3899
+ unmountVNodes(c1, parent, renderer, true);
4101
3900
  return;
4102
3901
  } // if the old list is not empty, the new list MUST have the same
4103
3902
  // amount of nodes, that's why we call this static children
@@ -4105,22 +3904,22 @@ var LWC = (function (exports) {
4105
3904
 
4106
3905
  var anchor = null;
4107
3906
 
4108
- for (var _i16 = c2Length - 1; _i16 >= 0; _i16 -= 1) {
4109
- var n1 = c1[_i16];
4110
- var n2 = c2[_i16];
3907
+ for (var _i15 = c2Length - 1; _i15 >= 0; _i15 -= 1) {
3908
+ var n1 = c1[_i15];
3909
+ var n2 = c2[_i15];
4111
3910
 
4112
3911
  if (n2 !== n1) {
4113
3912
  if (isVNode(n1)) {
4114
3913
  if (isVNode(n2)) {
4115
3914
  // both vnodes are equivalent, and we just need to patch them
4116
- patch(n1, n2);
3915
+ patch(n1, n2, renderer);
4117
3916
  anchor = n2.elm;
4118
3917
  } else {
4119
3918
  // removing the old vnode since the new one is null
4120
- unmount(n1, parent, true);
3919
+ unmount(n1, parent, renderer, true);
4121
3920
  }
4122
3921
  } else if (isVNode(n2)) {
4123
- mount(n2, parent, anchor);
3922
+ mount(n2, parent, renderer, anchor);
4124
3923
  anchor = n2.elm;
4125
3924
  }
4126
3925
  }
@@ -4532,7 +4331,11 @@ var LWC = (function (exports) {
4532
4331
  var elm = vm.elm,
4533
4332
  context = vm.context,
4534
4333
  renderMode = vm.renderMode,
4535
- shadowMode = vm.shadowMode;
4334
+ shadowMode = vm.shadowMode,
4335
+ _vm$renderer = vm.renderer,
4336
+ getClassList = _vm$renderer.getClassList,
4337
+ removeAttribute = _vm$renderer.removeAttribute,
4338
+ setAttribute = _vm$renderer.setAttribute;
4536
4339
  var newStylesheets = template.stylesheets,
4537
4340
  newStylesheetToken = template.stylesheetToken;
4538
4341
  var isSyntheticShadow = renderMode === 1
@@ -4551,11 +4354,11 @@ var LWC = (function (exports) {
4551
4354
 
4552
4355
  if (!isUndefined$1(oldToken)) {
4553
4356
  if (oldHasTokenInClass) {
4554
- getClassList$1(elm).remove(makeHostToken(oldToken));
4357
+ getClassList(elm).remove(makeHostToken(oldToken));
4555
4358
  }
4556
4359
 
4557
4360
  if (oldHasTokenInAttribute) {
4558
- removeAttribute$1(elm, makeHostToken(oldToken));
4361
+ removeAttribute(elm, makeHostToken(oldToken));
4559
4362
  }
4560
4363
  } // Apply the new template styling token to the host element, if the new template has any
4561
4364
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
@@ -4568,12 +4371,12 @@ var LWC = (function (exports) {
4568
4371
 
4569
4372
  if (!isUndefined$1(newToken)) {
4570
4373
  if (hasScopedStyles) {
4571
- getClassList$1(elm).add(makeHostToken(newToken));
4374
+ getClassList(elm).add(makeHostToken(newToken));
4572
4375
  newHasTokenInClass = true;
4573
4376
  }
4574
4377
 
4575
4378
  if (isSyntheticShadow) {
4576
- setAttribute$1(elm, makeHostToken(newToken), '');
4379
+ setAttribute(elm, makeHostToken(newToken), '');
4577
4380
  newHasTokenInAttribute = true;
4578
4381
  }
4579
4382
  } // Update the styling tokens present on the context object.
@@ -4588,8 +4391,8 @@ var LWC = (function (exports) {
4588
4391
  var content = [];
4589
4392
  var root;
4590
4393
 
4591
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4592
- var stylesheet = stylesheets[_i17];
4394
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4395
+ var stylesheet = stylesheets[_i16];
4593
4396
 
4594
4397
  if (isArray$1(stylesheet)) {
4595
4398
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4686,17 +4489,20 @@ var LWC = (function (exports) {
4686
4489
 
4687
4490
  function createStylesheet(vm, stylesheets) {
4688
4491
  var renderMode = vm.renderMode,
4689
- shadowMode = vm.shadowMode;
4492
+ shadowMode = vm.shadowMode,
4493
+ _vm$renderer2 = vm.renderer,
4494
+ ssr = _vm$renderer2.ssr,
4495
+ insertStylesheet = _vm$renderer2.insertStylesheet;
4690
4496
 
4691
4497
  if (renderMode === 1
4692
4498
  /* Shadow */
4693
4499
  && shadowMode === 1
4694
4500
  /* Synthetic */
4695
4501
  ) {
4696
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4697
- insertStylesheet$1(stylesheets[_i18]);
4502
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4503
+ insertStylesheet(stylesheets[_i17]);
4698
4504
  }
4699
- } else if (ssr$1 || vm.hydrated) {
4505
+ } else if (ssr || vm.hydrated) {
4700
4506
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
4701
4507
  // This works in the client, because the stylesheets are created, and cached in the VM
4702
4508
  // the first time the VM renders.
@@ -4709,8 +4515,8 @@ var LWC = (function (exports) {
4709
4515
 
4710
4516
  var target = isNull(root) ? undefined : root.shadowRoot;
4711
4517
 
4712
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4713
- insertStylesheet$1(stylesheets[_i19], target);
4518
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4519
+ insertStylesheet(stylesheets[_i18], target);
4714
4520
  }
4715
4521
  }
4716
4522
 
@@ -4894,8 +4700,8 @@ var LWC = (function (exports) {
4894
4700
  var stylesheets = template.stylesheets;
4895
4701
 
4896
4702
  if (!isUndefined$1(stylesheets)) {
4897
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4898
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4703
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4704
+ if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4899
4705
  return true;
4900
4706
  }
4901
4707
  }
@@ -5084,8 +4890,8 @@ var LWC = (function (exports) {
5084
4890
 
5085
4891
  function register(service) {
5086
4892
 
5087
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
5088
- var hookName = hooks[_i21];
4893
+ for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4894
+ var hookName = hooks[_i20];
5089
4895
 
5090
4896
  if (hookName in service) {
5091
4897
  var l = Services[hookName];
@@ -5105,8 +4911,8 @@ var LWC = (function (exports) {
5105
4911
  def = vm.def,
5106
4912
  context = vm.context;
5107
4913
 
5108
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
5109
- cbs[_i22].call(undefined, component, {}, def, context);
4914
+ for (var _i21 = 0, len = cbs.length; _i21 < len; ++_i21) {
4915
+ cbs[_i21].call(undefined, component, {}, def, context);
5110
4916
  }
5111
4917
  }
5112
4918
  /*
@@ -5211,7 +5017,7 @@ var LWC = (function (exports) {
5211
5017
  return ancestor;
5212
5018
  }
5213
5019
 
5214
- function createVM(elm, ctor, options) {
5020
+ function createVM(elm, ctor, renderer, options) {
5215
5021
  var mode = options.mode,
5216
5022
  owner = options.owner,
5217
5023
  tagName = options.tagName,
@@ -5258,9 +5064,10 @@ var LWC = (function (exports) {
5258
5064
  renderRoot: null,
5259
5065
  callHook: callHook,
5260
5066
  setHook: setHook,
5261
- getHook: getHook
5067
+ getHook: getHook,
5068
+ renderer: renderer
5262
5069
  };
5263
- vm.shadowMode = computeShadowMode(vm);
5070
+ vm.shadowMode = computeShadowMode(vm, renderer);
5264
5071
  vm.tro = getTemplateReactiveObserver(vm);
5265
5072
 
5266
5073
 
@@ -5273,11 +5080,13 @@ var LWC = (function (exports) {
5273
5080
  return vm;
5274
5081
  }
5275
5082
 
5276
- function computeShadowMode(vm) {
5083
+ function computeShadowMode(vm, renderer) {
5277
5084
  var def = vm.def;
5085
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined,
5086
+ isNativeShadowDefined = renderer.isNativeShadowDefined;
5278
5087
  var shadowMode;
5279
5088
 
5280
- if (isSyntheticShadowDefined$1) {
5089
+ if (isSyntheticShadowDefined) {
5281
5090
  if (def.renderMode === 0
5282
5091
  /* Light */
5283
5092
  ) {
@@ -5286,7 +5095,7 @@ var LWC = (function (exports) {
5286
5095
  shadowMode = 0
5287
5096
  /* Native */
5288
5097
  ;
5289
- } else if (isNativeShadowDefined$1) {
5098
+ } else if (isNativeShadowDefined) {
5290
5099
  // Not combined with above condition because @lwc/features only supports identifiers in
5291
5100
  // the if-condition.
5292
5101
  if (runtimeFlags.ENABLE_MIXED_SHADOW_MODE) {
@@ -5361,7 +5170,8 @@ var LWC = (function (exports) {
5361
5170
 
5362
5171
  function patchShadowRoot(vm, newCh) {
5363
5172
  var renderRoot = vm.renderRoot,
5364
- oldCh = vm.children; // caching the new children collection
5173
+ oldCh = vm.children,
5174
+ renderer = vm.renderer; // caching the new children collection
5365
5175
 
5366
5176
  vm.children = newCh;
5367
5177
 
@@ -5376,7 +5186,7 @@ var LWC = (function (exports) {
5376
5186
  , vm);
5377
5187
  }, function () {
5378
5188
  // job
5379
- patchChildren(oldCh, newCh, renderRoot);
5189
+ patchChildren(oldCh, newCh, renderRoot, renderer);
5380
5190
  }, function () {
5381
5191
  // post
5382
5192
  logOperationEnd(2
@@ -5398,9 +5208,10 @@ var LWC = (function (exports) {
5398
5208
  }
5399
5209
 
5400
5210
  function runRenderedCallback(vm) {
5401
- var renderedCallback = vm.def.renderedCallback;
5211
+ var renderedCallback = vm.def.renderedCallback,
5212
+ ssr = vm.renderer.ssr;
5402
5213
 
5403
- if (isTrue(ssr$1)) {
5214
+ if (isTrue(ssr)) {
5404
5215
  return;
5405
5216
  }
5406
5217
 
@@ -5433,19 +5244,19 @@ var LWC = (function (exports) {
5433
5244
  });
5434
5245
  rehydrateQueue = []; // reset to a new queue
5435
5246
 
5436
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
5437
- var vm = vms[_i23];
5247
+ for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
5248
+ var vm = vms[_i22];
5438
5249
 
5439
5250
  try {
5440
5251
  rehydrate(vm);
5441
5252
  } catch (error) {
5442
- if (_i23 + 1 < len) {
5253
+ if (_i22 + 1 < len) {
5443
5254
  // pieces of the queue are still pending to be rehydrated, those should have priority
5444
5255
  if (rehydrateQueue.length === 0) {
5445
5256
  addCallbackToNextTick(flushRehydrationQueue);
5446
5257
  }
5447
5258
 
5448
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
5259
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
5449
5260
  } // we need to end the measure before throwing.
5450
5261
 
5451
5262
 
@@ -5544,8 +5355,8 @@ var LWC = (function (exports) {
5544
5355
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5545
5356
  // inserted in reserved order.
5546
5357
 
5547
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
5548
- var elm = vCustomElementCollection[_i24].elm; // There are two cases where the element could be undefined:
5358
+ for (var _i23 = vCustomElementCollection.length - 1; _i23 >= 0; _i23 -= 1) {
5359
+ var elm = vCustomElementCollection[_i23].elm; // There are two cases where the element could be undefined:
5549
5360
  // * when there is an error during the construction phase, and an error
5550
5361
  // boundary picks it, there is a possibility that the VCustomElement
5551
5362
  // is not properly initialized, and therefore is should be ignored.
@@ -5579,8 +5390,8 @@ var LWC = (function (exports) {
5579
5390
 
5580
5391
 
5581
5392
  function recursivelyDisconnectChildren(vnodes) {
5582
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
5583
- var vnode = vnodes[_i25];
5393
+ for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
5394
+ var vnode = vnodes[_i24];
5584
5395
 
5585
5396
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5586
5397
  switch (vnode.type) {
@@ -5609,13 +5420,14 @@ var LWC = (function (exports) {
5609
5420
 
5610
5421
  function resetComponentRoot(vm) {
5611
5422
  var children = vm.children,
5612
- renderRoot = vm.renderRoot;
5423
+ renderRoot = vm.renderRoot,
5424
+ remove = vm.renderer.remove;
5613
5425
 
5614
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
5615
- var child = children[_i26];
5426
+ for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
5427
+ var child = children[_i25];
5616
5428
 
5617
5429
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5618
- remove$1(child.elm, renderRoot);
5430
+ remove(child.elm, renderRoot);
5619
5431
  }
5620
5432
  }
5621
5433
 
@@ -5625,7 +5437,9 @@ var LWC = (function (exports) {
5625
5437
  }
5626
5438
 
5627
5439
  function scheduleRehydration(vm) {
5628
- if (isTrue(ssr$1) || isTrue(vm.isScheduled)) {
5440
+ var ssr = vm.renderer.ssr;
5441
+
5442
+ if (isTrue(ssr) || isTrue(vm.isScheduled)) {
5629
5443
  return;
5630
5444
  }
5631
5445
 
@@ -5792,7 +5606,8 @@ var LWC = (function (exports) {
5792
5606
  var elm = vm.elm,
5793
5607
  _vm$context = vm.context,
5794
5608
  wiredConnecting = _vm$context.wiredConnecting,
5795
- wiredDisconnecting = _vm$context.wiredDisconnecting; // waiting for the component to be connected to formally request the context via the token
5609
+ wiredDisconnecting = _vm$context.wiredDisconnecting,
5610
+ dispatchEvent = vm.renderer.dispatchEvent; // waiting for the component to be connected to formally request the context via the token
5796
5611
 
5797
5612
  ArrayPush$1.call(wiredConnecting, function () {
5798
5613
  // This event is responsible for connecting the host element with another
@@ -5812,7 +5627,7 @@ var LWC = (function (exports) {
5812
5627
  ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
5813
5628
  }
5814
5629
  });
5815
- dispatchEvent$1(elm, contextRegistrationEvent);
5630
+ dispatchEvent(elm, contextRegistrationEvent);
5816
5631
  });
5817
5632
  }
5818
5633
 
@@ -5962,8 +5777,8 @@ var LWC = (function (exports) {
5962
5777
  function connectWireAdapters(vm) {
5963
5778
  var wiredConnecting = vm.context.wiredConnecting;
5964
5779
 
5965
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
5966
- wiredConnecting[_i27]();
5780
+ for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
5781
+ wiredConnecting[_i26]();
5967
5782
  }
5968
5783
  }
5969
5784
 
@@ -5971,8 +5786,8 @@ var LWC = (function (exports) {
5971
5786
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5972
5787
  runWithBoundaryProtection(vm, vm, noop, function () {
5973
5788
  // job
5974
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
5975
- wiredDisconnecting[_i28]();
5789
+ for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
5790
+ wiredDisconnecting[_i27]();
5976
5791
  }
5977
5792
  }, noop);
5978
5793
  }
@@ -6066,79 +5881,87 @@ var LWC = (function (exports) {
6066
5881
  function hydrateVM(vm) {
6067
5882
  var children = renderComponent(vm);
6068
5883
  vm.children = children;
6069
- var parentNode = vm.renderRoot;
6070
- hydrateChildren(getFirstChild$1(parentNode), children, parentNode);
5884
+ var parentNode = vm.renderRoot,
5885
+ getFirstChild = vm.renderer.getFirstChild;
5886
+ hydrateChildren(getFirstChild(parentNode), children, parentNode, vm);
6071
5887
  runRenderedCallback(vm);
6072
5888
  }
6073
5889
 
6074
- function hydrateNode(node, vnode) {
5890
+ function hydrateNode(node, vnode, renderer) {
5891
+ var _a, _b;
5892
+
6075
5893
  var hydratedNode;
6076
5894
 
6077
5895
  switch (vnode.type) {
6078
5896
  case 0
6079
5897
  /* Text */
6080
5898
  :
6081
- hydratedNode = hydrateText(node, vnode);
5899
+ // VText has no special capability, fallback to the owner's renderer
5900
+ hydratedNode = hydrateText(node, vnode, renderer);
6082
5901
  break;
6083
5902
 
6084
5903
  case 1
6085
5904
  /* Comment */
6086
5905
  :
6087
- hydratedNode = hydrateComment(node, vnode);
5906
+ // VComment has no special capability, fallback to the owner's renderer
5907
+ hydratedNode = hydrateComment(node, vnode, renderer);
6088
5908
  break;
6089
5909
 
6090
5910
  case 2
6091
5911
  /* Element */
6092
5912
  :
6093
- hydratedNode = hydrateElement(node, vnode);
5913
+ hydratedNode = hydrateElement(node, vnode, (_a = vnode.data.renderer) !== null && _a !== void 0 ? _a : renderer);
6094
5914
  break;
6095
5915
 
6096
5916
  case 3
6097
5917
  /* CustomElement */
6098
5918
  :
6099
- hydratedNode = hydrateCustomElement(node, vnode);
5919
+ hydratedNode = hydrateCustomElement(node, vnode, (_b = vnode.data.renderer) !== null && _b !== void 0 ? _b : renderer);
6100
5920
  break;
6101
5921
  }
6102
5922
 
6103
- return nextSibling$1(hydratedNode);
5923
+ return renderer.nextSibling(hydratedNode);
6104
5924
  }
6105
5925
 
6106
- function hydrateText(node, vnode) {
5926
+ function hydrateText(node, vnode, renderer) {
6107
5927
  var _a;
6108
5928
 
6109
5929
  if (!hasCorrectNodeType(vnode, node, 3
6110
5930
  /* TEXT */
6111
- )) {
6112
- return handleMismatch(node, vnode);
5931
+ , renderer)) {
5932
+ return handleMismatch(node, vnode, renderer);
6113
5933
  }
6114
5934
 
6115
- setText$1(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
5935
+ var setText = renderer.setText;
5936
+ setText(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
6116
5937
  vnode.elm = node;
6117
5938
  return node;
6118
5939
  }
6119
5940
 
6120
- function hydrateComment(node, vnode) {
5941
+ function hydrateComment(node, vnode, renderer) {
6121
5942
  var _a;
6122
5943
 
6123
5944
  if (!hasCorrectNodeType(vnode, node, 8
6124
5945
  /* COMMENT */
6125
- )) {
6126
- return handleMismatch(node, vnode);
5946
+ , renderer)) {
5947
+ return handleMismatch(node, vnode, renderer);
6127
5948
  }
6128
5949
 
6129
- setProperty$1(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
5950
+ var setProperty = renderer.setProperty;
5951
+ setProperty(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
6130
5952
  vnode.elm = node;
6131
5953
  return node;
6132
5954
  }
6133
5955
 
6134
- function hydrateElement(elm, vnode) {
5956
+ function hydrateElement(elm, vnode, renderer) {
6135
5957
  if (!hasCorrectNodeType(vnode, elm, 1
6136
5958
  /* ELEMENT */
6137
- ) || !isMatchingElement(vnode, elm)) {
6138
- return handleMismatch(elm, vnode);
5959
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
5960
+ return handleMismatch(elm, vnode, renderer);
6139
5961
  }
6140
5962
 
6141
5963
  vnode.elm = elm;
5964
+ var owner = vnode.owner;
6142
5965
  var context = vnode.data.context;
6143
5966
  var isDomManual = Boolean(!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
6144
5967
  /* Manual */
@@ -6148,9 +5971,10 @@ var LWC = (function (exports) {
6148
5971
  // it may be that this element has lwc:inner-html, we need to diff and in case are the same,
6149
5972
  // remove the innerHTML from props so it reuses the existing dom elements.
6150
5973
  var props = vnode.data.props;
5974
+ var _getProperty3 = renderer.getProperty;
6151
5975
 
6152
5976
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
6153
- if (getProperty$1(elm, 'innerHTML') === props.innerHTML) {
5977
+ if (_getProperty3(elm, 'innerHTML') === props.innerHTML) {
6154
5978
  // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
6155
5979
  vnode.data = Object.assign(Object.assign({}, vnode.data), {
6156
5980
  props: cloneAndOmitKey(props, 'innerHTML')
@@ -6159,27 +5983,28 @@ var LWC = (function (exports) {
6159
5983
  }
6160
5984
  }
6161
5985
 
6162
- patchElementPropsAndAttrs(vnode);
5986
+ patchElementPropsAndAttrs(vnode, renderer);
6163
5987
 
6164
5988
  if (!isDomManual) {
6165
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vnode.owner);
5989
+ var _getFirstChild = renderer.getFirstChild;
5990
+ hydrateChildren(_getFirstChild(elm), vnode.children, elm, owner);
6166
5991
  }
6167
5992
 
6168
5993
  return elm;
6169
5994
  }
6170
5995
 
6171
- function hydrateCustomElement(elm, vnode) {
5996
+ function hydrateCustomElement(elm, vnode, renderer) {
6172
5997
  if (!hasCorrectNodeType(vnode, elm, 1
6173
5998
  /* ELEMENT */
6174
- ) || !isMatchingElement(vnode, elm)) {
6175
- return handleMismatch(elm, vnode);
5999
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
6000
+ return handleMismatch(elm, vnode, renderer);
6176
6001
  }
6177
6002
 
6178
6003
  var sel = vnode.sel,
6179
6004
  mode = vnode.mode,
6180
6005
  ctor = vnode.ctor,
6181
6006
  owner = vnode.owner;
6182
- var vm = createVM(elm, ctor, {
6007
+ var vm = createVM(elm, ctor, renderer, {
6183
6008
  mode: mode,
6184
6009
  owner: owner,
6185
6010
  tagName: sel,
@@ -6188,16 +6013,17 @@ var LWC = (function (exports) {
6188
6013
  vnode.elm = elm;
6189
6014
  vnode.vm = vm;
6190
6015
  allocateChildren(vnode, vm);
6191
- patchElementPropsAndAttrs(vnode); // Insert hook section:
6016
+ patchElementPropsAndAttrs(vnode, renderer); // Insert hook section:
6192
6017
 
6193
6018
  runConnectedCallback(vm);
6194
6019
 
6195
6020
  if (vm.renderMode !== 0
6196
6021
  /* Light */
6197
6022
  ) {
6198
- // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
6023
+ var _getFirstChild2 = renderer.getFirstChild; // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
6199
6024
  // Note: for Light DOM, this is handled while hydrating the VM
6200
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm);
6025
+
6026
+ hydrateChildren(_getFirstChild2(elm), vnode.children, elm, vm);
6201
6027
  }
6202
6028
 
6203
6029
  hydrateVM(vm);
@@ -6207,18 +6033,19 @@ var LWC = (function (exports) {
6207
6033
  function hydrateChildren(node, children, parentNode, owner) {
6208
6034
  var nextNode = node;
6209
6035
  var anchor = null;
6036
+ var renderer = owner.renderer;
6210
6037
 
6211
- for (var _i29 = 0; _i29 < children.length; _i29++) {
6212
- var childVnode = children[_i29];
6038
+ for (var _i28 = 0; _i28 < children.length; _i28++) {
6039
+ var childVnode = children[_i28];
6213
6040
 
6214
6041
  if (!isNull(childVnode)) {
6215
6042
  if (nextNode) {
6216
- nextNode = hydrateNode(nextNode, childVnode);
6043
+ nextNode = hydrateNode(nextNode, childVnode, renderer);
6217
6044
  anchor = childVnode.elm;
6218
6045
  } else {
6219
6046
  hasMismatch = true;
6220
6047
 
6221
- mount(childVnode, parentNode, anchor);
6048
+ mount(childVnode, parentNode, renderer, anchor);
6222
6049
  anchor = childVnode.elm;
6223
6050
  }
6224
6051
  }
@@ -6226,31 +6053,39 @@ var LWC = (function (exports) {
6226
6053
 
6227
6054
  if (nextNode) {
6228
6055
  hasMismatch = true;
6056
+ // a good reference to what element to act upon, we instead
6057
+ // rely on the vm's associated renderer for navigating to the
6058
+ // next node in the list to be hydrated.
6059
+
6060
+
6061
+ var _nextSibling = renderer.nextSibling;
6229
6062
 
6230
6063
  do {
6231
6064
  var current = nextNode;
6232
- nextNode = nextSibling$1(nextNode);
6233
- removeNode(current, parentNode);
6065
+ nextNode = _nextSibling(nextNode);
6066
+ removeNode(current, parentNode, renderer);
6234
6067
  } while (nextNode);
6235
6068
  }
6236
6069
  }
6237
6070
 
6238
- function handleMismatch(node, vnode, msg) {
6071
+ function handleMismatch(node, vnode, renderer) {
6239
6072
  hasMismatch = true;
6240
-
6241
- var parentNode = getProperty$1(node, 'parentNode');
6242
- mount(vnode, parentNode, node);
6243
- removeNode(node, parentNode);
6073
+ var getProperty = renderer.getProperty;
6074
+ var parentNode = getProperty(node, 'parentNode');
6075
+ mount(vnode, parentNode, renderer, node);
6076
+ removeNode(node, parentNode, renderer);
6244
6077
  return vnode.elm;
6245
6078
  }
6246
6079
 
6247
- function patchElementPropsAndAttrs(vnode) {
6248
- applyEventListeners(vnode);
6249
- patchProps(null, vnode);
6080
+ function patchElementPropsAndAttrs(vnode, renderer) {
6081
+ applyEventListeners(vnode, renderer);
6082
+ patchProps(null, vnode, renderer);
6250
6083
  }
6251
6084
 
6252
- function hasCorrectNodeType(vnode, node, nodeType) {
6253
- if (getProperty$1(node, 'nodeType') !== nodeType) {
6085
+ function hasCorrectNodeType(vnode, node, nodeType, renderer) {
6086
+ var getProperty = renderer.getProperty;
6087
+
6088
+ if (getProperty(node, 'nodeType') !== nodeType) {
6254
6089
 
6255
6090
  return false;
6256
6091
  }
@@ -6258,30 +6093,35 @@ var LWC = (function (exports) {
6258
6093
  return true;
6259
6094
  }
6260
6095
 
6261
- function isMatchingElement(vnode, elm) {
6262
- if (vnode.sel.toLowerCase() !== getProperty$1(elm, 'tagName').toLowerCase()) {
6096
+ function isMatchingElement(vnode, elm, renderer) {
6097
+ var getProperty = renderer.getProperty;
6098
+
6099
+ if (vnode.sel.toLowerCase() !== getProperty(elm, 'tagName').toLowerCase()) {
6263
6100
 
6264
6101
  return false;
6265
6102
  }
6266
6103
 
6267
- var hasIncompatibleAttrs = validateAttrs(vnode, elm);
6268
- var hasIncompatibleClass = validateClassAttr(vnode, elm);
6269
- var hasIncompatibleStyle = validateStyleAttr(vnode, elm);
6104
+ var hasIncompatibleAttrs = validateAttrs(vnode, elm, renderer);
6105
+ var hasIncompatibleClass = validateClassAttr(vnode, elm, renderer);
6106
+ var hasIncompatibleStyle = validateStyleAttr(vnode, elm, renderer);
6270
6107
  return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
6271
6108
  }
6272
6109
 
6273
- function validateAttrs(vnode, elm) {
6110
+ function validateAttrs(vnode, elm, renderer) {
6274
6111
  var _vnode$data$attrs = vnode.data.attrs,
6275
6112
  attrs = _vnode$data$attrs === void 0 ? {} : _vnode$data$attrs;
6276
6113
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
6277
6114
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6278
6115
 
6279
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
6280
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
6116
+ for (var _i29 = 0, _Object$entries = Object.entries(attrs); _i29 < _Object$entries.length; _i29++) {
6117
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i29], 2),
6281
6118
  attrName = _Object$entries$_i[0],
6282
6119
  attrValue = _Object$entries$_i[1];
6283
6120
 
6284
- var elmAttrValue = getAttribute$1(elm, attrName);
6121
+ vnode.owner;
6122
+ var _getAttribute = renderer.getAttribute;
6123
+
6124
+ var elmAttrValue = _getAttribute(elm, attrName);
6285
6125
 
6286
6126
  if (String(attrValue) !== elmAttrValue) {
6287
6127
 
@@ -6292,18 +6132,20 @@ var LWC = (function (exports) {
6292
6132
  return nodesAreCompatible;
6293
6133
  }
6294
6134
 
6295
- function validateClassAttr(vnode, elm) {
6135
+ function validateClassAttr(vnode, elm, renderer) {
6296
6136
  var _vnode$data = vnode.data,
6297
6137
  className = _vnode$data.className,
6298
6138
  classMap = _vnode$data.classMap;
6139
+ var getProperty = renderer.getProperty,
6140
+ getClassList = renderer.getClassList;
6299
6141
  var nodesAreCompatible = true;
6300
6142
 
6301
- if (!isUndefined$1(className) && String(className) !== getProperty$1(elm, 'className')) {
6143
+ if (!isUndefined$1(className) && String(className) !== getProperty(elm, 'className')) {
6302
6144
  // className is used when class is bound to an expr.
6303
6145
  nodesAreCompatible = false;
6304
6146
  } else if (!isUndefined$1(classMap)) {
6305
6147
  // classMap is used when class is set to static value.
6306
- var classList = getClassList$1(elm);
6148
+ var classList = getClassList(elm);
6307
6149
  var computedClassName = ''; // all classes from the vnode should be in the element.classList
6308
6150
 
6309
6151
  for (var name in classMap) {
@@ -6324,11 +6166,12 @@ var LWC = (function (exports) {
6324
6166
  return nodesAreCompatible;
6325
6167
  }
6326
6168
 
6327
- function validateStyleAttr(vnode, elm) {
6169
+ function validateStyleAttr(vnode, elm, renderer) {
6328
6170
  var _vnode$data2 = vnode.data,
6329
6171
  style = _vnode$data2.style,
6330
6172
  styleDecls = _vnode$data2.styleDecls;
6331
- var elmStyle = getAttribute$1(elm, 'style') || '';
6173
+ var getAttribute = renderer.getAttribute;
6174
+ var elmStyle = getAttribute(elm, 'style') || '';
6332
6175
  var nodesAreCompatible = true;
6333
6176
 
6334
6177
  if (!isUndefined$1(style) && style !== elmStyle) {
@@ -6337,8 +6180,8 @@ var LWC = (function (exports) {
6337
6180
  var parsedVnodeStyle = parseStyleText(elmStyle);
6338
6181
  var expectedStyle = []; // styleMap is used when style is set to static value.
6339
6182
 
6340
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
6341
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
6183
+ for (var _i30 = 0, n = styleDecls.length; _i30 < n; _i30++) {
6184
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i30], 3),
6342
6185
  prop = _styleDecls$_i2[0],
6343
6186
  value = _styleDecls$_i2[1],
6344
6187
  important = _styleDecls$_i2[2];
@@ -6411,7 +6254,7 @@ var LWC = (function (exports) {
6411
6254
 
6412
6255
  return ctor;
6413
6256
  }
6414
- /* version: 2.14.1 */
6257
+ /* version: 2.14.2 */
6415
6258
 
6416
6259
  /*
6417
6260
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6581,7 +6424,7 @@ var LWC = (function (exports) {
6581
6424
  try {
6582
6425
  // dereference HTMLElement global because babel wraps globals in compat mode with a
6583
6426
  // _wrapNativeSuper()
6584
- // This is a problem because LWCUpgradableElement extends renderer.HTMLElement which does not
6427
+ // This is a problem because LWCUpgradableElement extends renderer.HTMLElementExported which does not
6585
6428
  // get wrapped by babel.
6586
6429
  var HTMLElementAlias = HTMLElement; // In case we use compat mode with a modern browser, the compat mode transformation
6587
6430
  // invokes the DOM api with an .apply() or .call() to initialize any DOM api sub-classing,
@@ -6657,6 +6500,11 @@ var LWC = (function (exports) {
6657
6500
  }
6658
6501
 
6659
6502
  var ssr = false;
6503
+
6504
+ function isHydrating() {
6505
+ return hydrating;
6506
+ }
6507
+
6660
6508
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
6661
6509
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
6662
6510
 
@@ -6791,44 +6639,52 @@ var LWC = (function (exports) {
6791
6639
  return node.isConnected;
6792
6640
  }
6793
6641
 
6642
+ function assertInstanceOfHTMLElement(elm, msg) {
6643
+ assert.invariant(elm instanceof HTMLElement, msg);
6644
+ }
6645
+
6794
6646
  var HTMLElementExported = HTMLElementConstructor;
6795
- setAttachShadow(attachShadow);
6796
- setCreateComment(createComment);
6797
- setCreateElement(createElement$1);
6798
- setCreateText(createText);
6799
- setDefineCustomElement(defineCustomElement);
6800
- setDispatchEvent(dispatchEvent);
6801
- setGetAttribute(getAttribute);
6802
- setGetBoundingClientRect(getBoundingClientRect);
6803
- setGetChildNodes(getChildNodes);
6804
- setGetChildren(getChildren);
6805
- setGetClassList(getClassList);
6806
- setGetCustomElement(getCustomElement);
6807
- setGetElementsByClassName(getElementsByClassName);
6808
- setGetElementsByTagName(getElementsByTagName);
6809
- setGetFirstChild(getFirstChild);
6810
- setGetFirstElementChild(getFirstElementChild);
6811
- setGetLastChild(getLastChild);
6812
- setGetLastElementChild(getLastElementChild);
6813
- setGetProperty(getProperty);
6814
- setHTMLElement(HTMLElementExported);
6815
- setInsert(insert);
6816
- setIsConnected(isConnected);
6817
- setIsNativeShadowDefined(isNativeShadowDefined);
6818
- setIsSyntheticShadowDefined(isSyntheticShadowDefined);
6819
- setNextSibling(nextSibling);
6820
- setQuerySelector(querySelector);
6821
- setQuerySelectorAll(querySelectorAll);
6822
- setRemove(remove);
6823
- setRemoveAttribute(removeAttribute);
6824
- setRemoveEventListener(removeEventListener);
6825
- setSetAttribute(setAttribute);
6826
- setSetCSSStyleProperty(setCSSStyleProperty);
6827
- setSetProperty(setProperty);
6828
- setSetText(setText);
6829
- setSsr(ssr);
6830
- setAddEventListener(addEventListener);
6831
- setInsertStylesheet(insertStylesheet);
6647
+ var renderer = {
6648
+ ssr: ssr,
6649
+ isNativeShadowDefined: isNativeShadowDefined,
6650
+ isSyntheticShadowDefined: isSyntheticShadowDefined,
6651
+ HTMLElementExported: HTMLElementExported,
6652
+ isHydrating: isHydrating,
6653
+ insert: insert,
6654
+ remove: remove,
6655
+ createElement: createElement$1,
6656
+ createText: createText,
6657
+ createComment: createComment,
6658
+ nextSibling: nextSibling,
6659
+ attachShadow: attachShadow,
6660
+ getProperty: getProperty,
6661
+ setProperty: setProperty,
6662
+ setText: setText,
6663
+ getAttribute: getAttribute,
6664
+ setAttribute: setAttribute,
6665
+ removeAttribute: removeAttribute,
6666
+ addEventListener: addEventListener,
6667
+ removeEventListener: removeEventListener,
6668
+ dispatchEvent: dispatchEvent,
6669
+ getClassList: getClassList,
6670
+ setCSSStyleProperty: setCSSStyleProperty,
6671
+ getBoundingClientRect: getBoundingClientRect,
6672
+ querySelector: querySelector,
6673
+ querySelectorAll: querySelectorAll,
6674
+ getElementsByTagName: getElementsByTagName,
6675
+ getElementsByClassName: getElementsByClassName,
6676
+ getChildren: getChildren,
6677
+ getChildNodes: getChildNodes,
6678
+ getFirstChild: getFirstChild,
6679
+ getFirstElementChild: getFirstElementChild,
6680
+ getLastChild: getLastChild,
6681
+ getLastElementChild: getLastElementChild,
6682
+ isConnected: isConnected,
6683
+ insertStylesheet: insertStylesheet,
6684
+ assertInstanceOfHTMLElement: assertInstanceOfHTMLElement,
6685
+ defineCustomElement: defineCustomElement,
6686
+ getCustomElement: getCustomElement
6687
+ };
6832
6688
  /*
6833
6689
  * Copyright (c) 2018, salesforce.com, inc.
6834
6690
  * All rights reserved.
@@ -6836,7 +6692,6 @@ var LWC = (function (exports) {
6836
6692
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6837
6693
  */
6838
6694
 
6839
-
6840
6695
  function resetShadowRootAndLightDom(element, Ctor) {
6841
6696
  if (element.shadowRoot) {
6842
6697
  var shadowRoot = element.shadowRoot;
@@ -6854,15 +6709,15 @@ var LWC = (function (exports) {
6854
6709
  }
6855
6710
 
6856
6711
  function createVMWithProps(element, Ctor, props) {
6857
- var vm = createVM(element, Ctor, {
6712
+ var vm = createVM(element, Ctor, renderer, {
6858
6713
  mode: 'open',
6859
6714
  owner: null,
6860
6715
  tagName: element.tagName.toLowerCase(),
6861
6716
  hydrated: true
6862
6717
  });
6863
6718
 
6864
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6865
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6719
+ for (var _i31 = 0, _Object$entries2 = Object.entries(props); _i31 < _Object$entries2.length; _i31++) {
6720
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i31], 2),
6866
6721
  key = _Object$entries2$_i[0],
6867
6722
  value = _Object$entries2$_i[1];
6868
6723
 
@@ -6970,7 +6825,7 @@ var LWC = (function (exports) {
6970
6825
  hydrateComponent(_assertThisInitialized(_this6), Ctor, {});
6971
6826
  hydratedCustomElements.add(_assertThisInitialized(_this6));
6972
6827
  } else {
6973
- createVM(_assertThisInitialized(_this6), Ctor, {
6828
+ createVM(_assertThisInitialized(_this6), Ctor, renderer, {
6974
6829
  mode: 'open',
6975
6830
  owner: null,
6976
6831
  tagName: _this6.tagName
@@ -7079,7 +6934,7 @@ var LWC = (function (exports) {
7079
6934
  throw new TypeError("\"createElement\" function expects an \"is\" option with a valid component constructor.");
7080
6935
  }
7081
6936
 
7082
- var UpgradableConstructor = getUpgradableConstructor(sel);
6937
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
7083
6938
  var wasComponentUpgraded = false; // the custom element from the registry is expecting an upgrade callback
7084
6939
 
7085
6940
  /**
@@ -7090,7 +6945,7 @@ var LWC = (function (exports) {
7090
6945
  */
7091
6946
 
7092
6947
  var element = new UpgradableConstructor(function (elm) {
7093
- createVM(elm, Ctor, {
6948
+ createVM(elm, Ctor, renderer, {
7094
6949
  tagName: sel,
7095
6950
  mode: options.mode !== 'closed' ? 'open' : 'closed',
7096
6951
  owner: null
@@ -7187,7 +7042,7 @@ var LWC = (function (exports) {
7187
7042
  });
7188
7043
  freeze(LightningElement);
7189
7044
  seal(LightningElement.prototype);
7190
- /* version: 2.14.1 */
7045
+ /* version: 2.14.2 */
7191
7046
 
7192
7047
  exports.LightningElement = LightningElement;
7193
7048
  exports.__unstable__ProfilerControl = profilerControl;
@@ -7206,6 +7061,7 @@ var LWC = (function (exports) {
7206
7061
  exports.registerComponent = registerComponent;
7207
7062
  exports.registerDecorators = registerDecorators;
7208
7063
  exports.registerTemplate = registerTemplate;
7064
+ exports.renderer = renderer;
7209
7065
  exports.sanitizeAttribute = sanitizeAttribute;
7210
7066
  exports.setFeatureFlag = setFeatureFlag;
7211
7067
  exports.setFeatureFlagForTest = setFeatureFlagForTest;