lwc 2.13.4 → 2.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +488 -547
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +488 -546
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +430 -490
  5. package/dist/engine-dom/iife/es5/engine-dom.js +600 -715
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +535 -655
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +488 -546
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +430 -490
  11. package/dist/engine-dom/umd/es5/engine-dom.js +600 -715
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +535 -655
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +371 -450
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +371 -451
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  28. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  29. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  31. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  35. package/package.json +7 -7
@@ -368,9 +368,9 @@
368
368
  */
369
369
  // Increment whenever the LWC template compiler changes
370
370
 
371
- var LWC_VERSION = "2.13.4";
371
+ var LWC_VERSION = "2.14.2";
372
372
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
373
- /** version: 2.13.4 */
373
+ /** version: 2.14.2 */
374
374
 
375
375
  /*
376
376
  * Copyright (c) 2018, salesforce.com, inc.
@@ -549,8 +549,33 @@
549
549
  setFeatureFlag(name, value);
550
550
  }
551
551
  }
552
- /** version: 2.13.4 */
552
+ /** version: 2.14.2 */
553
553
 
554
+ /*
555
+ * Copyright (c) 2018, salesforce.com, inc.
556
+ * All rights reserved.
557
+ * SPDX-License-Identifier: MIT
558
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
559
+ */
560
+ // @ts-ignore
561
+
562
+
563
+ if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
564
+ window.addEventListener('test-dummy-flag', function () {
565
+ var hasFlag = false;
566
+
567
+ if (runtimeFlags.DUMMY_TEST_FLAG) {
568
+ hasFlag = true;
569
+ }
570
+
571
+ window.dispatchEvent(new CustomEvent('has-dummy-flag', {
572
+ detail: {
573
+ package: '@lwc/engine-dom',
574
+ hasFlag: hasFlag
575
+ }
576
+ }));
577
+ });
578
+ }
554
579
  /* proxy-compat-disable */
555
580
 
556
581
  /*
@@ -702,237 +727,6 @@
702
727
  }
703
728
 
704
729
  return list;
705
- } //
706
- // Primitives
707
- //
708
-
709
-
710
- var ssr$1;
711
-
712
- function setSsr(ssrImpl) {
713
- ssr$1 = ssrImpl;
714
- }
715
-
716
- var isNativeShadowDefined$1;
717
-
718
- function setIsNativeShadowDefined(isNativeShadowDefinedImpl) {
719
- isNativeShadowDefined$1 = isNativeShadowDefinedImpl;
720
- }
721
-
722
- var isSyntheticShadowDefined$1;
723
-
724
- function setIsSyntheticShadowDefined(isSyntheticShadowDefinedImpl) {
725
- isSyntheticShadowDefined$1 = isSyntheticShadowDefinedImpl;
726
- }
727
-
728
- var HTMLElementExported$1;
729
-
730
- function setHTMLElement(HTMLElementImpl) {
731
- HTMLElementExported$1 = HTMLElementImpl;
732
- }
733
-
734
- var insert$1;
735
-
736
- function setInsert(insertImpl) {
737
- insert$1 = insertImpl;
738
- }
739
-
740
- var remove$1;
741
-
742
- function setRemove(removeImpl) {
743
- remove$1 = removeImpl;
744
- }
745
-
746
- var createElement$2;
747
-
748
- function setCreateElement(createElementImpl) {
749
- createElement$2 = createElementImpl;
750
- }
751
-
752
- var createText$1;
753
-
754
- function setCreateText(createTextImpl) {
755
- createText$1 = createTextImpl;
756
- }
757
-
758
- var createComment$1;
759
-
760
- function setCreateComment(createCommentImpl) {
761
- createComment$1 = createCommentImpl;
762
- }
763
-
764
- var nextSibling$1;
765
-
766
- function setNextSibling(nextSiblingImpl) {
767
- nextSibling$1 = nextSiblingImpl;
768
- }
769
-
770
- var attachShadow$1;
771
-
772
- function setAttachShadow(attachShadowImpl) {
773
- attachShadow$1 = attachShadowImpl;
774
- }
775
-
776
- var getProperty$1;
777
-
778
- function setGetProperty(getPropertyImpl) {
779
- getProperty$1 = getPropertyImpl;
780
- }
781
-
782
- var setProperty$1;
783
-
784
- function setSetProperty(setPropertyImpl) {
785
- setProperty$1 = setPropertyImpl;
786
- }
787
-
788
- var setText$1;
789
-
790
- function setSetText(setTextImpl) {
791
- setText$1 = setTextImpl;
792
- }
793
-
794
- var getAttribute$1;
795
-
796
- function setGetAttribute(getAttributeImpl) {
797
- getAttribute$1 = getAttributeImpl;
798
- }
799
-
800
- var setAttribute$1;
801
-
802
- function setSetAttribute(setAttributeImpl) {
803
- setAttribute$1 = setAttributeImpl;
804
- }
805
-
806
- var removeAttribute$1;
807
-
808
- function setRemoveAttribute(removeAttributeImpl) {
809
- removeAttribute$1 = removeAttributeImpl;
810
- }
811
-
812
- var addEventListener$1;
813
-
814
- function setAddEventListener(addEventListenerImpl) {
815
- addEventListener$1 = addEventListenerImpl;
816
- }
817
-
818
- var removeEventListener$1;
819
-
820
- function setRemoveEventListener(removeEventListenerImpl) {
821
- removeEventListener$1 = removeEventListenerImpl;
822
- }
823
-
824
- var dispatchEvent$1;
825
-
826
- function setDispatchEvent(dispatchEventImpl) {
827
- dispatchEvent$1 = dispatchEventImpl;
828
- }
829
-
830
- var getClassList$1;
831
-
832
- function setGetClassList(getClassListImpl) {
833
- getClassList$1 = getClassListImpl;
834
- }
835
-
836
- var setCSSStyleProperty$1;
837
-
838
- function setSetCSSStyleProperty(setCSSStylePropertyImpl) {
839
- setCSSStyleProperty$1 = setCSSStylePropertyImpl;
840
- }
841
-
842
- var getBoundingClientRect$1;
843
-
844
- function setGetBoundingClientRect(getBoundingClientRectImpl) {
845
- getBoundingClientRect$1 = getBoundingClientRectImpl;
846
- }
847
-
848
- var querySelector$1;
849
-
850
- function setQuerySelector(querySelectorImpl) {
851
- querySelector$1 = querySelectorImpl;
852
- }
853
-
854
- var querySelectorAll$1;
855
-
856
- function setQuerySelectorAll(querySelectorAllImpl) {
857
- querySelectorAll$1 = querySelectorAllImpl;
858
- }
859
-
860
- var getElementsByTagName$1;
861
-
862
- function setGetElementsByTagName(getElementsByTagNameImpl) {
863
- getElementsByTagName$1 = getElementsByTagNameImpl;
864
- }
865
-
866
- var getElementsByClassName$1;
867
-
868
- function setGetElementsByClassName(getElementsByClassNameImpl) {
869
- getElementsByClassName$1 = getElementsByClassNameImpl;
870
- }
871
-
872
- var getChildren$1;
873
-
874
- function setGetChildren(getChildrenImpl) {
875
- getChildren$1 = getChildrenImpl;
876
- }
877
-
878
- var getChildNodes$1;
879
-
880
- function setGetChildNodes(getChildNodesImpl) {
881
- getChildNodes$1 = getChildNodesImpl;
882
- }
883
-
884
- var getFirstChild$1;
885
-
886
- function setGetFirstChild(getFirstChildImpl) {
887
- getFirstChild$1 = getFirstChildImpl;
888
- }
889
-
890
- var getFirstElementChild$1;
891
-
892
- function setGetFirstElementChild(getFirstElementChildImpl) {
893
- getFirstElementChild$1 = getFirstElementChildImpl;
894
- }
895
-
896
- var getLastChild$1;
897
-
898
- function setGetLastChild(getLastChildImpl) {
899
- getLastChild$1 = getLastChildImpl;
900
- }
901
-
902
- var getLastElementChild$1;
903
-
904
- function setGetLastElementChild(getLastElementChildImpl) {
905
- getLastElementChild$1 = getLastElementChildImpl;
906
- }
907
-
908
- var isConnected$1;
909
-
910
- function setIsConnected(isConnectedImpl) {
911
- isConnected$1 = isConnectedImpl;
912
- }
913
-
914
- var insertStylesheet$1;
915
-
916
- function setInsertStylesheet(insertStylesheetImpl) {
917
- insertStylesheet$1 = insertStylesheetImpl;
918
- }
919
-
920
- var assertInstanceOfHTMLElement$1;
921
-
922
- function setAssertInstanceOfHTMLElement(assertInstanceOfHTMLElementImpl) {
923
- assertInstanceOfHTMLElement$1 = assertInstanceOfHTMLElementImpl;
924
- }
925
-
926
- var defineCustomElement$1;
927
-
928
- function setDefineCustomElement(defineCustomElementImpl) {
929
- defineCustomElement$1 = defineCustomElementImpl;
930
- }
931
-
932
- var getCustomElement$1;
933
-
934
- function setGetCustomElement(getCustomElementImpl) {
935
- getCustomElement$1 = getCustomElementImpl;
936
730
  }
937
731
  /*
938
732
  * Copyright (c) 2019, salesforce.com, inc.
@@ -2585,7 +2379,9 @@
2585
2379
  var bridge = def.bridge;
2586
2380
 
2587
2381
  if (process.env.NODE_ENV !== 'production') {
2588
- assertInstanceOfHTMLElement$1(vm.elm, "Component creation requires a DOM element to be associated to ".concat(vm, "."));
2382
+ var _assertInstanceOfHTMLElement = vm.renderer.assertInstanceOfHTMLElement;
2383
+
2384
+ _assertInstanceOfHTMLElement(vm.elm, "Component creation requires a DOM element to be associated to ".concat(vm, "."));
2589
2385
  }
2590
2386
 
2591
2387
  var component = this;
@@ -2629,13 +2425,14 @@
2629
2425
  };
2630
2426
 
2631
2427
  function doAttachShadow(vm) {
2632
- var _attachShadow$;
2428
+ var _attachShadow;
2633
2429
 
2634
2430
  var elm = vm.elm,
2635
2431
  mode = vm.mode,
2636
2432
  shadowMode = vm.shadowMode,
2637
- ctor = vm.def.ctor;
2638
- var shadowRoot = attachShadow$1(elm, (_attachShadow$ = {}, _defineProperty(_attachShadow$, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow$, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow$, "mode", mode), _attachShadow$));
2433
+ ctor = vm.def.ctor,
2434
+ attachShadow = vm.renderer.attachShadow;
2435
+ var shadowRoot = attachShadow(elm, (_attachShadow = {}, _defineProperty(_attachShadow, KEY__SYNTHETIC_MODE, shadowMode === 1), _defineProperty(_attachShadow, "delegatesFocus", Boolean(ctor.delegatesFocus)), _defineProperty(_attachShadow, "mode", mode), _attachShadow));
2639
2436
  vm.shadowRoot = shadowRoot;
2640
2437
  associateVM(shadowRoot, vm);
2641
2438
 
@@ -2656,14 +2453,15 @@
2656
2453
  LightningElement.prototype = {
2657
2454
  constructor: LightningElement,
2658
2455
  dispatchEvent: function dispatchEvent(event) {
2659
- var _getAssociatedVM = getAssociatedVM(this),
2660
- elm = _getAssociatedVM.elm;
2661
-
2662
- return dispatchEvent$1(elm, event);
2456
+ var vm = getAssociatedVM(this);
2457
+ var elm = vm.elm,
2458
+ dispatchEvent = vm.renderer.dispatchEvent;
2459
+ return dispatchEvent(elm, event);
2663
2460
  },
2664
2461
  addEventListener: function addEventListener(type, listener, options) {
2665
2462
  var vm = getAssociatedVM(this);
2666
- var elm = vm.elm;
2463
+ var elm = vm.elm,
2464
+ addEventListener = vm.renderer.addEventListener;
2667
2465
 
2668
2466
  if (process.env.NODE_ENV !== 'production') {
2669
2467
  var _vmBeingRendered2 = getVMBeingRendered();
@@ -2674,99 +2472,105 @@
2674
2472
  }
2675
2473
 
2676
2474
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2677
- addEventListener$1(elm, type, wrappedListener, options);
2475
+ addEventListener(elm, type, wrappedListener, options);
2678
2476
  },
2679
2477
  removeEventListener: function removeEventListener(type, listener, options) {
2680
2478
  var vm = getAssociatedVM(this);
2681
- var elm = vm.elm;
2479
+ var elm = vm.elm,
2480
+ removeEventListener = vm.renderer.removeEventListener;
2682
2481
  var wrappedListener = getWrappedComponentsListener(vm, listener);
2683
- removeEventListener$1(elm, type, wrappedListener, options);
2482
+ removeEventListener(elm, type, wrappedListener, options);
2684
2483
  },
2685
2484
  hasAttribute: function hasAttribute(name) {
2686
- var _getAssociatedVM2 = getAssociatedVM(this),
2687
- elm = _getAssociatedVM2.elm;
2688
-
2689
- return !isNull(getAttribute$1(elm, name));
2485
+ var vm = getAssociatedVM(this);
2486
+ var elm = vm.elm,
2487
+ getAttribute = vm.renderer.getAttribute;
2488
+ return !isNull(getAttribute(elm, name));
2690
2489
  },
2691
2490
  hasAttributeNS: function hasAttributeNS(namespace, name) {
2692
- var _getAssociatedVM3 = getAssociatedVM(this),
2693
- elm = _getAssociatedVM3.elm;
2694
-
2695
- return !isNull(getAttribute$1(elm, name, namespace));
2491
+ var vm = getAssociatedVM(this);
2492
+ var elm = vm.elm,
2493
+ getAttribute = vm.renderer.getAttribute;
2494
+ return !isNull(getAttribute(elm, name, namespace));
2696
2495
  },
2697
2496
  removeAttribute: function removeAttribute(name) {
2698
- var _getAssociatedVM4 = getAssociatedVM(this),
2699
- elm = _getAssociatedVM4.elm;
2700
-
2497
+ var vm = getAssociatedVM(this);
2498
+ var elm = vm.elm,
2499
+ removeAttribute = vm.renderer.removeAttribute;
2701
2500
  unlockAttribute(elm, name);
2702
- removeAttribute$1(elm, name);
2501
+ removeAttribute(elm, name);
2703
2502
  lockAttribute();
2704
2503
  },
2705
2504
  removeAttributeNS: function removeAttributeNS(namespace, name) {
2706
- var _getAssociatedVM5 = getAssociatedVM(this),
2707
- elm = _getAssociatedVM5.elm;
2505
+ var _getAssociatedVM = getAssociatedVM(this),
2506
+ elm = _getAssociatedVM.elm,
2507
+ removeAttribute = _getAssociatedVM.renderer.removeAttribute;
2708
2508
 
2709
2509
  unlockAttribute(elm, name);
2710
- removeAttribute$1(elm, name, namespace);
2510
+ removeAttribute(elm, name, namespace);
2711
2511
  lockAttribute();
2712
2512
  },
2713
2513
  getAttribute: function getAttribute(name) {
2714
- var _getAssociatedVM6 = getAssociatedVM(this),
2715
- elm = _getAssociatedVM6.elm;
2716
-
2717
- return getAttribute$1(elm, name);
2514
+ var vm = getAssociatedVM(this);
2515
+ var elm = vm.elm;
2516
+ var getAttribute = vm.renderer.getAttribute;
2517
+ return getAttribute(elm, name);
2718
2518
  },
2719
2519
  getAttributeNS: function getAttributeNS(namespace, name) {
2720
- var _getAssociatedVM7 = getAssociatedVM(this),
2721
- elm = _getAssociatedVM7.elm;
2722
-
2723
- return getAttribute$1(elm, name, namespace);
2520
+ var vm = getAssociatedVM(this);
2521
+ var elm = vm.elm;
2522
+ var getAttribute = vm.renderer.getAttribute;
2523
+ return getAttribute(elm, name, namespace);
2724
2524
  },
2725
2525
  setAttribute: function setAttribute(name, value) {
2726
2526
  var vm = getAssociatedVM(this);
2727
- var elm = vm.elm;
2527
+ var elm = vm.elm,
2528
+ setAttribute = vm.renderer.setAttribute;
2728
2529
 
2729
2530
  if (process.env.NODE_ENV !== 'production') {
2730
2531
  assert.isFalse(isBeingConstructed(vm), "Failed to construct '".concat(getComponentTag(vm), "': The result must not have attributes."));
2731
2532
  }
2732
2533
 
2733
2534
  unlockAttribute(elm, name);
2734
- setAttribute$1(elm, name, value);
2535
+ setAttribute(elm, name, value);
2735
2536
  lockAttribute();
2736
2537
  },
2737
2538
  setAttributeNS: function setAttributeNS(namespace, name, value) {
2738
2539
  var vm = getAssociatedVM(this);
2739
- var elm = vm.elm;
2540
+ var elm = vm.elm,
2541
+ setAttribute = vm.renderer.setAttribute;
2740
2542
 
2741
2543
  if (process.env.NODE_ENV !== 'production') {
2742
2544
  assert.isFalse(isBeingConstructed(vm), "Failed to construct '".concat(getComponentTag(vm), "': The result must not have attributes."));
2743
2545
  }
2744
2546
 
2745
2547
  unlockAttribute(elm, name);
2746
- setAttribute$1(elm, name, value, namespace);
2548
+ setAttribute(elm, name, value, namespace);
2747
2549
  lockAttribute();
2748
2550
  },
2749
2551
  getBoundingClientRect: function getBoundingClientRect() {
2750
2552
  var vm = getAssociatedVM(this);
2751
- var elm = vm.elm;
2553
+ var elm = vm.elm,
2554
+ getBoundingClientRect = vm.renderer.getBoundingClientRect;
2752
2555
 
2753
2556
  if (process.env.NODE_ENV !== 'production') {
2754
2557
  warnIfInvokedDuringConstruction(vm, 'getBoundingClientRect()');
2755
2558
  }
2756
2559
 
2757
- return getBoundingClientRect$1(elm);
2560
+ return getBoundingClientRect(elm);
2758
2561
  },
2759
2562
 
2760
2563
  get isConnected() {
2761
- var _getAssociatedVM8 = getAssociatedVM(this),
2762
- elm = _getAssociatedVM8.elm;
2763
-
2764
- return isConnected$1(elm);
2564
+ var vm = getAssociatedVM(this);
2565
+ var elm = vm.elm,
2566
+ isConnected = vm.renderer.isConnected;
2567
+ return isConnected(elm);
2765
2568
  },
2766
2569
 
2767
2570
  get classList() {
2768
2571
  var vm = getAssociatedVM(this);
2769
- var elm = vm.elm;
2572
+ var elm = vm.elm,
2573
+ getClassList = vm.renderer.getClassList;
2770
2574
 
2771
2575
  if (process.env.NODE_ENV !== 'production') {
2772
2576
  // TODO [#1290]: this still fails in dev but works in production, eventually, we should
@@ -2774,7 +2578,7 @@
2774
2578
  assert.isFalse(isBeingConstructed(vm), "Failed to construct ".concat(vm, ": The result must not have attributes. Adding or tampering with classname in constructor is not allowed in a web component, use connectedCallback() instead."));
2775
2579
  }
2776
2580
 
2777
- return getClassList$1(elm);
2581
+ return getClassList(elm);
2778
2582
  },
2779
2583
 
2780
2584
  get template() {
@@ -2797,97 +2601,97 @@
2797
2601
  return null;
2798
2602
  },
2799
2603
 
2800
- render: function render() {
2604
+ get children() {
2801
2605
  var vm = getAssociatedVM(this);
2802
- return vm.def.template;
2803
- },
2804
- toString: function toString() {
2805
- var vm = getAssociatedVM(this);
2806
- return "[object ".concat(vm.def.name, "]");
2807
- }
2808
- };
2809
- var queryAndChildGetterDescriptors = create(null); // The reason we don't just call `import * as renderer from '../renderer'` here is that the bundle size
2810
- // is smaller if we reference each function individually. Otherwise Rollup will create one big frozen
2811
- // object representing the renderer, with a lot of methods we don't actually need.
2606
+ var renderer = vm.renderer;
2812
2607
 
2813
- var childGetters = ['children', 'childNodes', 'firstChild', 'firstElementChild', 'lastChild', 'lastElementChild'];
2608
+ if (process.env.NODE_ENV !== 'production') {
2609
+ warnIfInvokedDuringConstruction(vm, 'children');
2610
+ }
2814
2611
 
2815
- function getChildGetter(methodName) {
2816
- switch (methodName) {
2817
- case 'children':
2818
- return getChildren$1;
2612
+ return renderer.getChildren(vm.elm);
2613
+ },
2819
2614
 
2820
- case 'childNodes':
2821
- return getChildNodes$1;
2615
+ get childNodes() {
2616
+ var vm = getAssociatedVM(this);
2617
+ var renderer = vm.renderer;
2822
2618
 
2823
- case 'firstChild':
2824
- return getFirstChild$1;
2619
+ if (process.env.NODE_ENV !== 'production') {
2620
+ warnIfInvokedDuringConstruction(vm, 'childNodes');
2621
+ }
2825
2622
 
2826
- case 'firstElementChild':
2827
- return getFirstElementChild$1;
2623
+ return renderer.getChildNodes(vm.elm);
2624
+ },
2828
2625
 
2829
- case 'lastChild':
2830
- return getLastChild$1;
2626
+ get firstChild() {
2627
+ var vm = getAssociatedVM(this);
2628
+ var renderer = vm.renderer;
2831
2629
 
2832
- case 'lastElementChild':
2833
- return getLastElementChild$1;
2834
- }
2835
- } // Generic passthrough for child getters on HTMLElement to the relevant Renderer APIs
2630
+ if (process.env.NODE_ENV !== 'production') {
2631
+ warnIfInvokedDuringConstruction(vm, 'firstChild');
2632
+ }
2836
2633
 
2634
+ return renderer.getFirstChild(vm.elm);
2635
+ },
2837
2636
 
2838
- var _loop = function _loop() {
2839
- var childGetter = _childGetters[_i7];
2840
- queryAndChildGetterDescriptors[childGetter] = {
2841
- get: function get() {
2842
- var vm = getAssociatedVM(this);
2843
- var elm = vm.elm;
2637
+ get firstElementChild() {
2638
+ var vm = getAssociatedVM(this);
2639
+ var renderer = vm.renderer;
2844
2640
 
2845
- if (process.env.NODE_ENV !== 'production') {
2846
- warnIfInvokedDuringConstruction(vm, childGetter);
2847
- }
2641
+ if (process.env.NODE_ENV !== 'production') {
2642
+ warnIfInvokedDuringConstruction(vm, 'firstElementChild');
2643
+ }
2848
2644
 
2849
- return getChildGetter(childGetter)(elm);
2850
- },
2851
- configurable: true,
2852
- enumerable: true
2853
- };
2854
- };
2645
+ return renderer.getFirstElementChild(vm.elm);
2646
+ },
2855
2647
 
2856
- for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2857
- _loop();
2858
- }
2648
+ get lastChild() {
2649
+ var vm = getAssociatedVM(this);
2650
+ var renderer = vm.renderer;
2859
2651
 
2860
- var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll'];
2652
+ if (process.env.NODE_ENV !== 'production') {
2653
+ warnIfInvokedDuringConstruction(vm, 'lastChild');
2654
+ }
2861
2655
 
2862
- function getQueryMethod(methodName) {
2863
- switch (methodName) {
2864
- case 'getElementsByClassName':
2865
- return getElementsByClassName$1;
2656
+ return renderer.getLastChild(vm.elm);
2657
+ },
2866
2658
 
2867
- case 'getElementsByTagName':
2868
- return getElementsByTagName$1;
2659
+ get lastElementChild() {
2660
+ var vm = getAssociatedVM(this);
2661
+ var renderer = vm.renderer;
2869
2662
 
2870
- case 'querySelector':
2871
- return querySelector$1;
2663
+ if (process.env.NODE_ENV !== 'production') {
2664
+ warnIfInvokedDuringConstruction(vm, 'lastElementChild');
2665
+ }
2872
2666
 
2873
- case 'querySelectorAll':
2874
- return querySelectorAll$1;
2875
- }
2876
- } // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2667
+ return renderer.getLastElementChild(vm.elm);
2668
+ },
2877
2669
 
2670
+ render: function render() {
2671
+ var vm = getAssociatedVM(this);
2672
+ return vm.def.template;
2673
+ },
2674
+ toString: function toString() {
2675
+ var vm = getAssociatedVM(this);
2676
+ return "[object ".concat(vm.def.name, "]");
2677
+ }
2678
+ };
2679
+ var queryAndChildGetterDescriptors = create(null);
2680
+ var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll']; // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2878
2681
 
2879
- var _loop2 = function _loop2() {
2880
- var queryMethod = _queryMethods[_i8];
2682
+ var _loop = function _loop() {
2683
+ var queryMethod = _queryMethods[_i7];
2881
2684
  queryAndChildGetterDescriptors[queryMethod] = {
2882
2685
  value: function value(arg) {
2883
2686
  var vm = getAssociatedVM(this);
2884
- var elm = vm.elm;
2687
+ var elm = vm.elm,
2688
+ renderer = vm.renderer;
2885
2689
 
2886
2690
  if (process.env.NODE_ENV !== 'production') {
2887
2691
  warnIfInvokedDuringConstruction(vm, "".concat(queryMethod, "()"));
2888
2692
  }
2889
2693
 
2890
- return getQueryMethod(queryMethod)(elm, arg);
2694
+ return renderer[queryMethod](elm, arg);
2891
2695
  },
2892
2696
  configurable: true,
2893
2697
  enumerable: true,
@@ -2895,8 +2699,8 @@
2895
2699
  };
2896
2700
  };
2897
2701
 
2898
- for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2899
- _loop2();
2702
+ for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
2703
+ _loop();
2900
2704
  }
2901
2705
 
2902
2706
  defineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);
@@ -3418,8 +3222,8 @@
3418
3222
  }
3419
3223
 
3420
3224
  if (!isUndefined$1(fields)) {
3421
- for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
3422
- var _fieldName2 = fields[_i9];
3225
+ for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
3226
+ var _fieldName2 = fields[_i8];
3423
3227
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
3424
3228
 
3425
3229
  if (process.env.NODE_ENV !== 'production') {
@@ -3475,9 +3279,9 @@
3475
3279
  */
3476
3280
 
3477
3281
 
3478
- var warned = false;
3282
+ var warned = false; // @ts-ignore
3479
3283
 
3480
- if (process.env.NODE_ENV === 'development') {
3284
+ if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
3481
3285
  // @ts-ignore
3482
3286
  window.__lwcResetWarnedOnVersionMismatch = function () {
3483
3287
  warned = false;
@@ -3722,8 +3526,8 @@
3722
3526
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
3723
3527
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
3724
3528
 
3725
- for (var _i10 = 0, len = props.length; _i10 < len; _i10 += 1) {
3726
- var _propName = props[_i10];
3529
+ for (var _i9 = 0, len = props.length; _i9 < len; _i9 += 1) {
3530
+ var _propName = props[_i9];
3727
3531
  attributeToPropMap[htmlPropertyToAttribute(_propName)] = _propName;
3728
3532
  descriptors[_propName] = {
3729
3533
  get: createGetter(_propName),
@@ -3734,8 +3538,8 @@
3734
3538
  } // expose public methods as props on the new Element Bridge
3735
3539
 
3736
3540
 
3737
- for (var _i11 = 0, _len3 = methods.length; _i11 < _len3; _i11 += 1) {
3738
- var methodName = methods[_i11];
3541
+ for (var _i10 = 0, _len3 = methods.length; _i10 < _len3; _i10 += 1) {
3542
+ var methodName = methods[_i10];
3739
3543
  descriptors[methodName] = {
3740
3544
  value: createMethodCaller(methodName),
3741
3545
  writable: true,
@@ -4323,12 +4127,15 @@
4323
4127
  */
4324
4128
 
4325
4129
 
4326
- function getUpgradableConstructor(tagName) {
4327
- // Should never get a tag with upper case letter at this point, the compiler should
4130
+ function getUpgradableConstructor(tagName, renderer) {
4131
+ var getCustomElement = renderer.getCustomElement,
4132
+ RendererHTMLElement = renderer.HTMLElementExported,
4133
+ defineCustomElement = renderer.defineCustomElement; // Should never get a tag with upper case letter at this point, the compiler should
4328
4134
  // produce only tags with lowercase letters
4329
4135
  // But, for backwards compatibility, we will lower case the tagName
4136
+
4330
4137
  tagName = tagName.toLowerCase();
4331
- var CE = getCustomElement$1(tagName);
4138
+ var CE = getCustomElement(tagName);
4332
4139
 
4333
4140
  if (!isUndefined$1(CE)) {
4334
4141
  return CE;
@@ -4339,8 +4146,8 @@
4339
4146
  */
4340
4147
 
4341
4148
 
4342
- CE = /*#__PURE__*/function (_HTMLElementExported$) {
4343
- _inherits(LWCUpgradableElement, _HTMLElementExported$);
4149
+ CE = /*#__PURE__*/function (_RendererHTMLElement) {
4150
+ _inherits(LWCUpgradableElement, _RendererHTMLElement);
4344
4151
 
4345
4152
  var _super5 = _createSuper(LWCUpgradableElement);
4346
4153
 
@@ -4359,9 +4166,9 @@
4359
4166
  }
4360
4167
 
4361
4168
  return _createClass(LWCUpgradableElement);
4362
- }(HTMLElementExported$1);
4169
+ }(RendererHTMLElement);
4363
4170
 
4364
- defineCustomElement$1(tagName, CE);
4171
+ defineCustomElement(tagName, CE);
4365
4172
  return CE;
4366
4173
  }
4367
4174
  /*
@@ -4394,7 +4201,7 @@
4394
4201
 
4395
4202
  var ColonCharCode = 58;
4396
4203
 
4397
- function patchAttributes(oldVnode, vnode) {
4204
+ function patchAttributes(oldVnode, vnode, renderer) {
4398
4205
  var attrs = vnode.data.attrs;
4399
4206
 
4400
4207
  if (isUndefined$1(attrs)) {
@@ -4408,6 +4215,8 @@
4408
4215
  }
4409
4216
 
4410
4217
  var elm = vnode.elm;
4218
+ var setAttribute = renderer.setAttribute,
4219
+ removeAttribute = renderer.removeAttribute;
4411
4220
 
4412
4221
  for (var key in attrs) {
4413
4222
  var cur = attrs[key];
@@ -4418,14 +4227,14 @@
4418
4227
 
4419
4228
  if (StringCharCodeAt.call(key, 3) === ColonCharCode) {
4420
4229
  // Assume xml namespace
4421
- setAttribute$1(elm, key, cur, XML_NAMESPACE);
4230
+ setAttribute(elm, key, cur, XML_NAMESPACE);
4422
4231
  } else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {
4423
4232
  // Assume xlink namespace
4424
- setAttribute$1(elm, key, cur, XLINK_NAMESPACE);
4233
+ setAttribute(elm, key, cur, XLINK_NAMESPACE);
4425
4234
  } else if (isNull(cur) || isUndefined$1(cur)) {
4426
- removeAttribute$1(elm, key);
4235
+ removeAttribute(elm, key);
4427
4236
  } else {
4428
- setAttribute$1(elm, key, cur);
4237
+ setAttribute(elm, key, cur);
4429
4238
  }
4430
4239
 
4431
4240
  lockAttribute();
@@ -4446,7 +4255,7 @@
4446
4255
  return sel === 'input' && (key === 'value' || key === 'checked');
4447
4256
  }
4448
4257
 
4449
- function patchProps(oldVnode, vnode) {
4258
+ function patchProps(oldVnode, vnode, renderer) {
4450
4259
  var props = vnode.data.props;
4451
4260
 
4452
4261
  if (isUndefined$1(props)) {
@@ -4462,13 +4271,15 @@
4462
4271
  var isFirstPatch = isNull(oldVnode);
4463
4272
  var elm = vnode.elm,
4464
4273
  sel = vnode.sel;
4274
+ var getProperty = renderer.getProperty,
4275
+ setProperty = renderer.setProperty;
4465
4276
 
4466
4277
  for (var key in props) {
4467
4278
  var cur = props[key]; // Set the property if it's the first time is is patched or if the previous property is
4468
4279
  // different than the one previously set.
4469
4280
 
4470
- if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty$1(elm, key) : oldProps[key])) {
4471
- setProperty$1(elm, key, cur);
4281
+ if (isFirstPatch || cur !== (isLiveBindingProp(sel, key) ? getProperty(elm, key) : oldProps[key])) {
4282
+ setProperty(elm, key, cur);
4472
4283
  }
4473
4284
  }
4474
4285
  }
@@ -4525,7 +4336,7 @@
4525
4336
  return map;
4526
4337
  }
4527
4338
 
4528
- function patchClassAttribute(oldVnode, vnode) {
4339
+ function patchClassAttribute(oldVnode, vnode, renderer) {
4529
4340
  var elm = vnode.elm,
4530
4341
  newClass = vnode.data.className;
4531
4342
  var oldClass = isNull(oldVnode) ? undefined : oldVnode.data.className;
@@ -4534,7 +4345,8 @@
4534
4345
  return;
4535
4346
  }
4536
4347
 
4537
- var classList = getClassList$1(elm);
4348
+ var getClassList = renderer.getClassList;
4349
+ var classList = getClassList(elm);
4538
4350
  var newClassMap = getMapFromClassName(newClass);
4539
4351
  var oldClassMap = getMapFromClassName(oldClass);
4540
4352
  var name;
@@ -4561,7 +4373,7 @@
4561
4373
  // The style property is a string when defined via an expression in the template.
4562
4374
 
4563
4375
 
4564
- function patchStyleAttribute(oldVnode, vnode) {
4376
+ function patchStyleAttribute(oldVnode, vnode, renderer) {
4565
4377
  var elm = vnode.elm,
4566
4378
  newStyle = vnode.data.style;
4567
4379
  var oldStyle = isNull(oldVnode) ? undefined : oldVnode.data.style;
@@ -4570,10 +4382,13 @@
4570
4382
  return;
4571
4383
  }
4572
4384
 
4385
+ var setAttribute = renderer.setAttribute,
4386
+ removeAttribute = renderer.removeAttribute;
4387
+
4573
4388
  if (!isString(newStyle) || newStyle === '') {
4574
- removeAttribute$1(elm, 'style');
4389
+ removeAttribute(elm, 'style');
4575
4390
  } else {
4576
- setAttribute$1(elm, 'style', newStyle);
4391
+ setAttribute(elm, 'style', newStyle);
4577
4392
  }
4578
4393
  }
4579
4394
  /*
@@ -4584,7 +4399,7 @@
4584
4399
  */
4585
4400
 
4586
4401
 
4587
- function applyEventListeners(vnode) {
4402
+ function applyEventListeners(vnode, renderer) {
4588
4403
  var elm = vnode.elm,
4589
4404
  on = vnode.data.on;
4590
4405
 
@@ -4592,9 +4407,11 @@
4592
4407
  return;
4593
4408
  }
4594
4409
 
4410
+ var addEventListener = renderer.addEventListener;
4411
+
4595
4412
  for (var name in on) {
4596
4413
  var handler = on[name];
4597
- addEventListener$1(elm, name, handler);
4414
+ addEventListener(elm, name, handler);
4598
4415
  }
4599
4416
  }
4600
4417
  /*
@@ -4608,7 +4425,7 @@
4608
4425
  // different classnames properties individually instead of via a string.
4609
4426
 
4610
4427
 
4611
- function applyStaticClassAttribute(vnode) {
4428
+ function applyStaticClassAttribute(vnode, renderer) {
4612
4429
  var elm = vnode.elm,
4613
4430
  classMap = vnode.data.classMap;
4614
4431
 
@@ -4616,7 +4433,8 @@
4616
4433
  return;
4617
4434
  }
4618
4435
 
4619
- var classList = getClassList$1(elm);
4436
+ var getClassList = renderer.getClassList;
4437
+ var classList = getClassList(elm);
4620
4438
 
4621
4439
  for (var name in classMap) {
4622
4440
  classList.add(name);
@@ -4633,7 +4451,7 @@
4633
4451
  // different style properties individually instead of via a string.
4634
4452
 
4635
4453
 
4636
- function applyStaticStyleAttribute(vnode) {
4454
+ function applyStaticStyleAttribute(vnode, renderer) {
4637
4455
  var elm = vnode.elm,
4638
4456
  styleDecls = vnode.data.styleDecls;
4639
4457
 
@@ -4641,13 +4459,15 @@
4641
4459
  return;
4642
4460
  }
4643
4461
 
4644
- for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
4645
- var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
4462
+ var setCSSStyleProperty = renderer.setCSSStyleProperty;
4463
+
4464
+ for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
4465
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
4646
4466
  prop = _styleDecls$_i[0],
4647
4467
  value = _styleDecls$_i[1],
4648
4468
  important = _styleDecls$_i[2];
4649
4469
 
4650
- setCSSStyleProperty$1(elm, prop, value, important);
4470
+ setCSSStyleProperty(elm, prop, value, important);
4651
4471
  }
4652
4472
  }
4653
4473
  /*
@@ -4658,15 +4478,17 @@
4658
4478
  */
4659
4479
 
4660
4480
 
4661
- function patchChildren(c1, c2, parent) {
4481
+ function patchChildren(c1, c2, parent, renderer) {
4662
4482
  if (hasDynamicChildren(c2)) {
4663
- updateDynamicChildren(c1, c2, parent);
4483
+ updateDynamicChildren(c1, c2, parent, renderer);
4664
4484
  } else {
4665
- updateStaticChildren(c1, c2, parent);
4485
+ updateStaticChildren(c1, c2, parent, renderer);
4666
4486
  }
4667
4487
  }
4668
4488
 
4669
- function patch(n1, n2) {
4489
+ function patch(n1, n2, renderer) {
4490
+ var _a, _b;
4491
+
4670
4492
  if (n1 === n2) {
4671
4493
  return;
4672
4494
  }
@@ -4687,112 +4509,123 @@
4687
4509
  case 0
4688
4510
  /* Text */
4689
4511
  :
4690
- patchText(n1, n2);
4512
+ // VText has no special capability, fallback to the owner's renderer
4513
+ patchText(n1, n2, renderer);
4691
4514
  break;
4692
4515
 
4693
4516
  case 1
4694
4517
  /* Comment */
4695
4518
  :
4696
- patchComment(n1, n2);
4519
+ // VComment has no special capability, fallback to the owner's renderer
4520
+ patchComment(n1, n2, renderer);
4697
4521
  break;
4698
4522
 
4699
4523
  case 2
4700
4524
  /* Element */
4701
4525
  :
4702
- patchElement(n1, n2);
4526
+ patchElement(n1, n2, (_a = n2.data.renderer) !== null && _a !== void 0 ? _a : renderer);
4703
4527
  break;
4704
4528
 
4705
4529
  case 3
4706
4530
  /* CustomElement */
4707
4531
  :
4708
- patchCustomElement(n1, n2);
4532
+ patchCustomElement(n1, n2, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);
4709
4533
  break;
4710
4534
  }
4711
4535
  }
4712
4536
 
4713
- function mount(node, parent, anchor) {
4537
+ function mount(node, parent, renderer, anchor) {
4538
+ var _a, _b;
4539
+
4714
4540
  switch (node.type) {
4715
4541
  case 0
4716
4542
  /* Text */
4717
4543
  :
4718
- mountText(node, parent, anchor);
4544
+ // VText has no special capability, fallback to the owner's renderer
4545
+ mountText(node, parent, anchor, renderer);
4719
4546
  break;
4720
4547
 
4721
4548
  case 1
4722
4549
  /* Comment */
4723
4550
  :
4724
- mountComment(node, parent, anchor);
4551
+ // VComment has no special capability, fallback to the owner's renderer
4552
+ mountComment(node, parent, anchor, renderer);
4725
4553
  break;
4726
4554
 
4727
4555
  case 2
4728
4556
  /* Element */
4729
4557
  :
4730
- mountElement(node, parent, anchor);
4558
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
4559
+ mountElement(node, parent, anchor, (_a = node.data.renderer) !== null && _a !== void 0 ? _a : renderer);
4731
4560
  break;
4732
4561
 
4733
4562
  case 3
4734
4563
  /* CustomElement */
4735
4564
  :
4736
- mountCustomElement(node, parent, anchor);
4565
+ // If the vnode data has a renderer override use it, else fallback to owner's renderer
4566
+ mountCustomElement(node, parent, anchor, (_b = node.data.renderer) !== null && _b !== void 0 ? _b : renderer);
4737
4567
  break;
4738
4568
  }
4739
4569
  }
4740
4570
 
4741
- function patchText(n1, n2) {
4571
+ function patchText(n1, n2, renderer) {
4742
4572
  n2.elm = n1.elm;
4743
4573
 
4744
4574
  if (n2.text !== n1.text) {
4745
- updateTextContent(n2);
4575
+ updateTextContent(n2, renderer);
4746
4576
  }
4747
4577
  }
4748
4578
 
4749
- function mountText(node, parent, anchor) {
4750
- var owner = node.owner;
4751
- var textNode = node.elm = createText$1(node.text);
4752
- linkNodeToShadow(textNode, owner);
4753
- insertNode(textNode, parent, anchor);
4579
+ function mountText(vnode, parent, anchor, renderer) {
4580
+ var owner = vnode.owner;
4581
+ var createText = renderer.createText;
4582
+ var textNode = vnode.elm = createText(vnode.text);
4583
+ linkNodeToShadow(textNode, owner, renderer);
4584
+ insertNode(textNode, parent, anchor, renderer);
4754
4585
  }
4755
4586
 
4756
- function patchComment(n1, n2) {
4587
+ function patchComment(n1, n2, renderer) {
4757
4588
  n2.elm = n1.elm; // FIXME: Comment nodes should be static, we shouldn't need to diff them together. However
4758
4589
  // it is the case today.
4759
4590
 
4760
4591
  if (n2.text !== n1.text) {
4761
- updateTextContent(n2);
4592
+ updateTextContent(n2, renderer);
4762
4593
  }
4763
4594
  }
4764
4595
 
4765
- function mountComment(node, parent, anchor) {
4766
- var owner = node.owner;
4767
- var commentNode = node.elm = createComment$1(node.text);
4768
- linkNodeToShadow(commentNode, owner);
4769
- insertNode(commentNode, parent, anchor);
4596
+ function mountComment(vnode, parent, anchor, renderer) {
4597
+ var owner = vnode.owner;
4598
+ var createComment = renderer.createComment;
4599
+ var commentNode = vnode.elm = createComment(vnode.text);
4600
+ linkNodeToShadow(commentNode, owner, renderer);
4601
+ insertNode(commentNode, parent, anchor, renderer);
4770
4602
  }
4771
4603
 
4772
- function mountElement(vnode, parent, anchor) {
4604
+ function mountElement(vnode, parent, anchor, renderer) {
4773
4605
  var sel = vnode.sel,
4774
4606
  owner = vnode.owner,
4775
4607
  svg = vnode.data.svg;
4608
+ var createElement = renderer.createElement;
4776
4609
  var namespace = isTrue(svg) ? SVG_NAMESPACE : undefined;
4777
- var elm = createElement$2(sel, namespace);
4778
- linkNodeToShadow(elm, owner);
4779
- fallbackElmHook(elm, vnode);
4610
+ var elm = createElement(sel, namespace);
4611
+ linkNodeToShadow(elm, owner, renderer);
4612
+ fallbackElmHook(elm, vnode, renderer);
4780
4613
  vnode.elm = elm;
4781
- patchElementPropsAndAttrs$1(null, vnode);
4782
- insertNode(elm, parent, anchor);
4783
- mountVNodes(vnode.children, elm, null);
4614
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
4615
+ insertNode(elm, parent, anchor, renderer);
4616
+ mountVNodes(vnode.children, elm, renderer, null);
4784
4617
  }
4785
4618
 
4786
- function patchElement(n1, n2) {
4619
+ function patchElement(n1, n2, renderer) {
4787
4620
  var elm = n2.elm = n1.elm;
4788
- patchElementPropsAndAttrs$1(n1, n2);
4789
- patchChildren(n1.children, n2.children, elm);
4621
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
4622
+ patchChildren(n1.children, n2.children, elm, renderer);
4790
4623
  }
4791
4624
 
4792
- function mountCustomElement(vnode, parent, anchor) {
4625
+ function mountCustomElement(vnode, parent, anchor, renderer) {
4793
4626
  var sel = vnode.sel,
4794
4627
  owner = vnode.owner;
4795
- var UpgradableConstructor = getUpgradableConstructor(sel);
4628
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
4796
4629
  /**
4797
4630
  * Note: if the upgradable constructor does not expect, or throw when we new it
4798
4631
  * with a callback as the first argument, we could implement a more advanced
@@ -4803,9 +4636,9 @@
4803
4636
  var vm;
4804
4637
  var elm = new UpgradableConstructor(function (elm) {
4805
4638
  // the custom element from the registry is expecting an upgrade callback
4806
- vm = createViewModelHook(elm, vnode);
4639
+ vm = createViewModelHook(elm, vnode, renderer);
4807
4640
  });
4808
- linkNodeToShadow(elm, owner);
4641
+ linkNodeToShadow(elm, owner, renderer);
4809
4642
  vnode.elm = elm;
4810
4643
  vnode.vm = vm;
4811
4644
 
@@ -4815,8 +4648,8 @@
4815
4648
  throw new TypeError("Incorrect Component Constructor");
4816
4649
  }
4817
4650
 
4818
- patchElementPropsAndAttrs$1(null, vnode);
4819
- insertNode(elm, parent, anchor);
4651
+ patchElementPropsAndAttrs$1(null, vnode, renderer);
4652
+ insertNode(elm, parent, anchor, renderer);
4820
4653
 
4821
4654
  if (vm) {
4822
4655
  if (process.env.NODE_ENV !== 'production') {
@@ -4828,17 +4661,17 @@
4828
4661
  runConnectedCallback(vm);
4829
4662
  }
4830
4663
 
4831
- mountVNodes(vnode.children, elm, null);
4664
+ mountVNodes(vnode.children, elm, renderer, null);
4832
4665
 
4833
4666
  if (vm) {
4834
4667
  appendVM(vm);
4835
4668
  }
4836
4669
  }
4837
4670
 
4838
- function patchCustomElement(n1, n2) {
4671
+ function patchCustomElement(n1, n2, renderer) {
4839
4672
  var elm = n2.elm = n1.elm;
4840
4673
  var vm = n2.vm = n1.vm;
4841
- patchElementPropsAndAttrs$1(n1, n2);
4674
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
4842
4675
 
4843
4676
  if (!isUndefined$1(vm)) {
4844
4677
  // in fallback mode, the allocation will always set children to
@@ -4848,7 +4681,7 @@
4848
4681
  // will happen, but in native, it does allocate the light dom
4849
4682
 
4850
4683
 
4851
- patchChildren(n1.children, n2.children, elm);
4684
+ patchChildren(n1.children, n2.children, elm, renderer);
4852
4685
 
4853
4686
  if (!isUndefined$1(vm)) {
4854
4687
  // this will probably update the shadowRoot, but only if the vm is in a dirty state
@@ -4857,38 +4690,45 @@
4857
4690
  }
4858
4691
  }
4859
4692
 
4860
- function mountVNodes(vnodes, parent, anchor) {
4861
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
4862
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
4693
+ function mountVNodes(vnodes, parent, renderer, anchor) {
4694
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
4695
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
4863
4696
 
4864
4697
  for (; start < end; ++start) {
4865
4698
  var vnode = vnodes[start];
4866
4699
 
4867
4700
  if (isVNode(vnode)) {
4868
- mount(vnode, parent, anchor);
4701
+ mount(vnode, parent, renderer, anchor);
4869
4702
  }
4870
4703
  }
4871
4704
  }
4872
4705
 
4873
- function unmount(vnode, parent) {
4874
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4706
+ function unmount(vnode, parent, renderer) {
4707
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4875
4708
  var type = vnode.type,
4876
4709
  elm = vnode.elm,
4877
4710
  sel = vnode.sel; // When unmounting a VNode subtree not all the elements have to removed from the DOM. The
4878
4711
  // subtree root, is the only element worth unmounting from the subtree.
4879
4712
 
4880
4713
  if (doRemove) {
4881
- removeNode(elm, parent);
4714
+ // The vnode might or might not have a data.renderer associated to it
4715
+ // but the removal used here is from the owner instead.
4716
+ removeNode(elm, parent, renderer);
4882
4717
  }
4883
4718
 
4884
- var removeChildren = sel === 'slot'; // slot content is removed to trigger slotchange event when removing slot
4885
-
4886
4719
  switch (type) {
4887
4720
  case 2
4888
4721
  /* Element */
4889
4722
  :
4890
- unmountVNodes(vnode.children, elm, removeChildren);
4891
- break;
4723
+ {
4724
+ // Slot content is removed to trigger slotchange event when removing slot.
4725
+ // Only required for synthetic shadow.
4726
+ var shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1
4727
+ /* Synthetic */
4728
+ ;
4729
+ unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);
4730
+ break;
4731
+ }
4892
4732
 
4893
4733
  case 3
4894
4734
  /* CustomElement */
@@ -4904,16 +4744,16 @@
4904
4744
  }
4905
4745
  }
4906
4746
 
4907
- function unmountVNodes(vnodes, parent) {
4908
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4909
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
4910
- var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : vnodes.length;
4747
+ function unmountVNodes(vnodes, parent, renderer) {
4748
+ var doRemove = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4749
+ var start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
4750
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : vnodes.length;
4911
4751
 
4912
4752
  for (; start < end; ++start) {
4913
4753
  var ch = vnodes[start];
4914
4754
 
4915
4755
  if (isVNode(ch)) {
4916
- unmount(ch, parent, doRemove);
4756
+ unmount(ch, parent, renderer, doRemove);
4917
4757
  }
4918
4758
  }
4919
4759
  }
@@ -4931,22 +4771,26 @@
4931
4771
  } // Set the scope token class for *.scoped.css styles
4932
4772
 
4933
4773
 
4934
- function setScopeTokenClassIfNecessary(elm, owner) {
4774
+ function setScopeTokenClassIfNecessary(elm, owner, renderer) {
4935
4775
  var cmpTemplate = owner.cmpTemplate,
4936
4776
  context = owner.context;
4777
+ var getClassList = renderer.getClassList;
4937
4778
  var token = cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken;
4938
4779
 
4939
4780
  if (!isUndefined$1(token) && context.hasScopedStyles) {
4940
- getClassList$1(elm).add(token);
4781
+ // TODO [#2762]: this dot notation with add is probably problematic
4782
+ // probably we should have a renderer api for just the add operation
4783
+ getClassList(elm).add(token);
4941
4784
  }
4942
4785
  }
4943
4786
 
4944
- function linkNodeToShadow(elm, owner) {
4787
+ function linkNodeToShadow(elm, owner, renderer) {
4945
4788
  var renderRoot = owner.renderRoot,
4946
4789
  renderMode = owner.renderMode,
4947
- shadowMode = owner.shadowMode; // TODO [#1164]: this should eventually be done by the polyfill directly
4790
+ shadowMode = owner.shadowMode;
4791
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined; // TODO [#1164]: this should eventually be done by the polyfill directly
4948
4792
 
4949
- if (isSyntheticShadowDefined$1) {
4793
+ if (isSyntheticShadowDefined) {
4950
4794
  if (shadowMode === 1
4951
4795
  /* Synthetic */
4952
4796
  || renderMode === 0
@@ -4957,63 +4801,64 @@
4957
4801
  }
4958
4802
  }
4959
4803
 
4960
- function updateTextContent(vnode) {
4804
+ function updateTextContent(vnode, renderer) {
4961
4805
  var elm = vnode.elm,
4962
4806
  text = vnode.text;
4807
+ var setText = renderer.setText;
4963
4808
 
4964
4809
  if (process.env.NODE_ENV !== 'production') {
4965
4810
  unlockDomMutation();
4966
4811
  }
4967
4812
 
4968
- setText$1(elm, text);
4813
+ setText(elm, text);
4969
4814
 
4970
4815
  if (process.env.NODE_ENV !== 'production') {
4971
4816
  lockDomMutation();
4972
4817
  }
4973
4818
  }
4974
4819
 
4975
- function insertNode(node, parent, anchor) {
4820
+ function insertNode(node, parent, anchor, renderer) {
4976
4821
  if (process.env.NODE_ENV !== 'production') {
4977
4822
  unlockDomMutation();
4978
4823
  }
4979
4824
 
4980
- insert$1(node, parent, anchor);
4825
+ renderer.insert(node, parent, anchor);
4981
4826
 
4982
4827
  if (process.env.NODE_ENV !== 'production') {
4983
4828
  lockDomMutation();
4984
4829
  }
4985
4830
  }
4986
4831
 
4987
- function removeNode(node, parent) {
4832
+ function removeNode(node, parent, renderer) {
4988
4833
  if (process.env.NODE_ENV !== 'production') {
4989
4834
  unlockDomMutation();
4990
4835
  }
4991
4836
 
4992
- remove$1(node, parent);
4837
+ renderer.remove(node, parent);
4993
4838
 
4994
4839
  if (process.env.NODE_ENV !== 'production') {
4995
4840
  lockDomMutation();
4996
4841
  }
4997
4842
  }
4998
4843
 
4999
- function patchElementPropsAndAttrs$1(oldVnode, vnode) {
4844
+ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
5000
4845
  if (isNull(oldVnode)) {
5001
- applyEventListeners(vnode);
5002
- applyStaticClassAttribute(vnode);
5003
- applyStaticStyleAttribute(vnode);
4846
+ applyEventListeners(vnode, renderer);
4847
+ applyStaticClassAttribute(vnode, renderer);
4848
+ applyStaticStyleAttribute(vnode, renderer);
5004
4849
  } // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if
5005
4850
  // value is set before type=radio.
5006
4851
 
5007
4852
 
5008
- patchClassAttribute(oldVnode, vnode);
5009
- patchStyleAttribute(oldVnode, vnode);
5010
- patchAttributes(oldVnode, vnode);
5011
- patchProps(oldVnode, vnode);
4853
+ patchClassAttribute(oldVnode, vnode, renderer);
4854
+ patchStyleAttribute(oldVnode, vnode, renderer);
4855
+ patchAttributes(oldVnode, vnode, renderer);
4856
+ patchProps(oldVnode, vnode, renderer);
5012
4857
  }
5013
4858
 
5014
- function fallbackElmHook(elm, vnode) {
4859
+ function fallbackElmHook(elm, vnode, renderer) {
5015
4860
  var owner = vnode.owner;
5016
- setScopeTokenClassIfNecessary(elm, owner);
4861
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
5017
4862
 
5018
4863
  if (owner.shadowMode === 1
5019
4864
  /* Synthetic */
@@ -5080,7 +4925,7 @@
5080
4925
  }
5081
4926
  }
5082
4927
 
5083
- function createViewModelHook(elm, vnode) {
4928
+ function createViewModelHook(elm, vnode, renderer) {
5084
4929
  var vm = getAssociatedVMIfPresent(elm); // There is a possibility that a custom element is registered under tagName, in which case, the
5085
4930
  // initialization is already carry on, and there is nothing else to do here since this hook is
5086
4931
  // called right after invoking `document.createElement`.
@@ -5093,7 +4938,7 @@
5093
4938
  mode = vnode.mode,
5094
4939
  ctor = vnode.ctor,
5095
4940
  owner = vnode.owner;
5096
- setScopeTokenClassIfNecessary(elm, owner);
4941
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
5097
4942
 
5098
4943
  if (owner.shadowMode === 1
5099
4944
  /* Synthetic */
@@ -5106,7 +4951,7 @@
5106
4951
  }
5107
4952
  }
5108
4953
 
5109
- vm = createVM(elm, ctor, {
4954
+ vm = createVM(elm, ctor, renderer, {
5110
4955
  mode: mode,
5111
4956
  owner: owner,
5112
4957
  tagName: sel
@@ -5125,8 +4970,8 @@
5125
4970
  var oldSlots = vm.cmpSlots;
5126
4971
  var cmpSlots = vm.cmpSlots = create(null);
5127
4972
 
5128
- for (var _i13 = 0, len = children.length; _i13 < len; _i13 += 1) {
5129
- var vnode = children[_i13];
4973
+ for (var _i12 = 0, len = children.length; _i12 < len; _i12 += 1) {
4974
+ var vnode = children[_i12];
5130
4975
 
5131
4976
  if (isNull(vnode)) {
5132
4977
  continue;
@@ -5152,8 +4997,8 @@
5152
4997
  return;
5153
4998
  }
5154
4999
 
5155
- for (var _i14 = 0, _len4 = oldKeys.length; _i14 < _len4; _i14 += 1) {
5156
- var key = oldKeys[_i14];
5000
+ for (var _i13 = 0, _len4 = oldKeys.length; _i13 < _len4; _i13 += 1) {
5001
+ var key = oldKeys[_i13];
5157
5002
 
5158
5003
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
5159
5004
  markComponentAsDirty(vm);
@@ -5203,7 +5048,7 @@
5203
5048
  return map;
5204
5049
  }
5205
5050
 
5206
- function updateDynamicChildren(oldCh, newCh, parent) {
5051
+ function updateDynamicChildren(oldCh, newCh, parent, renderer) {
5207
5052
  var oldStartIdx = 0;
5208
5053
  var newStartIdx = 0;
5209
5054
  var oldEndIdx = oldCh.length - 1;
@@ -5229,23 +5074,23 @@
5229
5074
  } else if (!isVNode(newEndVnode)) {
5230
5075
  newEndVnode = newCh[--newEndIdx];
5231
5076
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
5232
- patch(oldStartVnode, newStartVnode);
5077
+ patch(oldStartVnode, newStartVnode, renderer);
5233
5078
  oldStartVnode = oldCh[++oldStartIdx];
5234
5079
  newStartVnode = newCh[++newStartIdx];
5235
5080
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
5236
- patch(oldEndVnode, newEndVnode);
5081
+ patch(oldEndVnode, newEndVnode, renderer);
5237
5082
  oldEndVnode = oldCh[--oldEndIdx];
5238
5083
  newEndVnode = newCh[--newEndIdx];
5239
5084
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
5240
5085
  // Vnode moved right
5241
- patch(oldStartVnode, newEndVnode);
5242
- insertNode(oldStartVnode.elm, parent, nextSibling$1(oldEndVnode.elm));
5086
+ patch(oldStartVnode, newEndVnode, renderer);
5087
+ insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
5243
5088
  oldStartVnode = oldCh[++oldStartIdx];
5244
5089
  newEndVnode = newCh[--newEndIdx];
5245
5090
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
5246
5091
  // Vnode moved left
5247
- patch(oldEndVnode, newStartVnode);
5248
- insertNode(newStartVnode.elm, parent, oldStartVnode.elm);
5092
+ patch(oldEndVnode, newStartVnode, renderer);
5093
+ insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
5249
5094
  oldEndVnode = oldCh[--oldEndIdx];
5250
5095
  newStartVnode = newCh[++newStartIdx];
5251
5096
  } else {
@@ -5257,7 +5102,7 @@
5257
5102
 
5258
5103
  if (isUndefined$1(idxInOld)) {
5259
5104
  // New element
5260
- mount(newStartVnode, parent, oldStartVnode.elm);
5105
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
5261
5106
  newStartVnode = newCh[++newStartIdx];
5262
5107
  } else {
5263
5108
  elmToMove = oldCh[idxInOld];
@@ -5265,9 +5110,9 @@
5265
5110
  if (isVNode(elmToMove)) {
5266
5111
  if (elmToMove.sel !== newStartVnode.sel) {
5267
5112
  // New element
5268
- mount(newStartVnode, parent, oldStartVnode.elm);
5113
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
5269
5114
  } else {
5270
- patch(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
5115
+ patch(elmToMove, newStartVnode, renderer); // Delete the old child, but copy the array since it is read-only.
5271
5116
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
5272
5117
  // so we only care about the `oldCh` object inside this function.
5273
5118
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -5280,7 +5125,7 @@
5280
5125
 
5281
5126
 
5282
5127
  oldCh[idxInOld] = undefined;
5283
- insertNode(elmToMove.elm, parent, oldStartVnode.elm);
5128
+ insertNode(elmToMove.elm, parent, oldStartVnode.elm, renderer);
5284
5129
  }
5285
5130
  }
5286
5131
 
@@ -5293,35 +5138,35 @@
5293
5138
  if (oldStartIdx > oldEndIdx) {
5294
5139
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
5295
5140
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
5296
- var _i15 = newEndIdx;
5141
+ var _i14 = newEndIdx;
5297
5142
  var n;
5298
5143
 
5299
5144
  do {
5300
- n = newCh[++_i15];
5301
- } while (!isVNode(n) && _i15 < newChEnd);
5145
+ n = newCh[++_i14];
5146
+ } while (!isVNode(n) && _i14 < newChEnd);
5302
5147
 
5303
5148
  before = isVNode(n) ? n.elm : null;
5304
- mountVNodes(newCh, parent, before, newStartIdx, newEndIdx + 1);
5149
+ mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
5305
5150
  } else {
5306
- unmountVNodes(oldCh, parent, true, oldStartIdx, oldEndIdx + 1);
5151
+ unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);
5307
5152
  }
5308
5153
  }
5309
5154
  }
5310
5155
 
5311
- function updateStaticChildren(c1, c2, parent) {
5156
+ function updateStaticChildren(c1, c2, parent, renderer) {
5312
5157
  var c1Length = c1.length;
5313
5158
  var c2Length = c2.length;
5314
5159
 
5315
5160
  if (c1Length === 0) {
5316
5161
  // the old list is empty, we can directly insert anything new
5317
- mountVNodes(c2, parent, null);
5162
+ mountVNodes(c2, parent, renderer, null);
5318
5163
  return;
5319
5164
  }
5320
5165
 
5321
5166
  if (c2Length === 0) {
5322
5167
  // the old list is nonempty and the new list is empty so we can directly remove all old nodes
5323
5168
  // this is the case in which the dynamic children of an if-directive should be removed
5324
- unmountVNodes(c1, parent, true);
5169
+ unmountVNodes(c1, parent, renderer, true);
5325
5170
  return;
5326
5171
  } // if the old list is not empty, the new list MUST have the same
5327
5172
  // amount of nodes, that's why we call this static children
@@ -5329,22 +5174,22 @@
5329
5174
 
5330
5175
  var anchor = null;
5331
5176
 
5332
- for (var _i16 = c2Length - 1; _i16 >= 0; _i16 -= 1) {
5333
- var n1 = c1[_i16];
5334
- var n2 = c2[_i16];
5177
+ for (var _i15 = c2Length - 1; _i15 >= 0; _i15 -= 1) {
5178
+ var n1 = c1[_i15];
5179
+ var n2 = c2[_i15];
5335
5180
 
5336
5181
  if (n2 !== n1) {
5337
5182
  if (isVNode(n1)) {
5338
5183
  if (isVNode(n2)) {
5339
5184
  // both vnodes are equivalent, and we just need to patch them
5340
- patch(n1, n2);
5185
+ patch(n1, n2, renderer);
5341
5186
  anchor = n2.elm;
5342
5187
  } else {
5343
5188
  // removing the old vnode since the new one is null
5344
- unmount(n1, parent, true);
5189
+ unmount(n1, parent, renderer, true);
5345
5190
  }
5346
5191
  } else if (isVNode(n2)) {
5347
- mount(n2, parent, anchor);
5192
+ mount(n2, parent, renderer, anchor);
5348
5193
  anchor = n2.elm;
5349
5194
  }
5350
5195
  }
@@ -5879,7 +5724,11 @@
5879
5724
  var elm = vm.elm,
5880
5725
  context = vm.context,
5881
5726
  renderMode = vm.renderMode,
5882
- shadowMode = vm.shadowMode;
5727
+ shadowMode = vm.shadowMode,
5728
+ _vm$renderer = vm.renderer,
5729
+ getClassList = _vm$renderer.getClassList,
5730
+ removeAttribute = _vm$renderer.removeAttribute,
5731
+ setAttribute = _vm$renderer.setAttribute;
5883
5732
  var newStylesheets = template.stylesheets,
5884
5733
  newStylesheetToken = template.stylesheetToken;
5885
5734
  var isSyntheticShadow = renderMode === 1
@@ -5898,11 +5747,11 @@
5898
5747
 
5899
5748
  if (!isUndefined$1(oldToken)) {
5900
5749
  if (oldHasTokenInClass) {
5901
- getClassList$1(elm).remove(makeHostToken(oldToken));
5750
+ getClassList(elm).remove(makeHostToken(oldToken));
5902
5751
  }
5903
5752
 
5904
5753
  if (oldHasTokenInAttribute) {
5905
- removeAttribute$1(elm, makeHostToken(oldToken));
5754
+ removeAttribute(elm, makeHostToken(oldToken));
5906
5755
  }
5907
5756
  } // Apply the new template styling token to the host element, if the new template has any
5908
5757
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
@@ -5915,12 +5764,12 @@
5915
5764
 
5916
5765
  if (!isUndefined$1(newToken)) {
5917
5766
  if (hasScopedStyles) {
5918
- getClassList$1(elm).add(makeHostToken(newToken));
5767
+ getClassList(elm).add(makeHostToken(newToken));
5919
5768
  newHasTokenInClass = true;
5920
5769
  }
5921
5770
 
5922
5771
  if (isSyntheticShadow) {
5923
- setAttribute$1(elm, makeHostToken(newToken), '');
5772
+ setAttribute(elm, makeHostToken(newToken), '');
5924
5773
  newHasTokenInAttribute = true;
5925
5774
  }
5926
5775
  } // Update the styling tokens present on the context object.
@@ -5935,8 +5784,8 @@
5935
5784
  var content = [];
5936
5785
  var root;
5937
5786
 
5938
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5939
- var stylesheet = stylesheets[_i17];
5787
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
5788
+ var stylesheet = stylesheets[_i16];
5940
5789
 
5941
5790
  if (isArray$1(stylesheet)) {
5942
5791
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -6041,17 +5890,20 @@
6041
5890
 
6042
5891
  function createStylesheet(vm, stylesheets) {
6043
5892
  var renderMode = vm.renderMode,
6044
- shadowMode = vm.shadowMode;
5893
+ shadowMode = vm.shadowMode,
5894
+ _vm$renderer2 = vm.renderer,
5895
+ ssr = _vm$renderer2.ssr,
5896
+ insertStylesheet = _vm$renderer2.insertStylesheet;
6045
5897
 
6046
5898
  if (renderMode === 1
6047
5899
  /* Shadow */
6048
5900
  && shadowMode === 1
6049
5901
  /* Synthetic */
6050
5902
  ) {
6051
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
6052
- insertStylesheet$1(stylesheets[_i18]);
5903
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5904
+ insertStylesheet(stylesheets[_i17]);
6053
5905
  }
6054
- } else if (ssr$1 || vm.hydrated) {
5906
+ } else if (ssr || vm.hydrated) {
6055
5907
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
6056
5908
  // This works in the client, because the stylesheets are created, and cached in the VM
6057
5909
  // the first time the VM renders.
@@ -6064,8 +5916,8 @@
6064
5916
 
6065
5917
  var target = isNull(root) ? undefined : root.shadowRoot;
6066
5918
 
6067
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6068
- insertStylesheet$1(stylesheets[_i19], target);
5919
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
5920
+ insertStylesheet(stylesheets[_i18], target);
6069
5921
  }
6070
5922
  }
6071
5923
 
@@ -6341,8 +6193,8 @@
6341
6193
  var stylesheets = template.stylesheets;
6342
6194
 
6343
6195
  if (!isUndefined$1(stylesheets)) {
6344
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
6345
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
6196
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6197
+ if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
6346
6198
  return true;
6347
6199
  }
6348
6200
  }
@@ -6563,8 +6415,8 @@
6563
6415
  assert.isTrue(isObject(service), "Invalid service declaration, ".concat(service, ": service must be an object"));
6564
6416
  }
6565
6417
 
6566
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
6567
- var hookName = hooks[_i21];
6418
+ for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
6419
+ var hookName = hooks[_i20];
6568
6420
 
6569
6421
  if (hookName in service) {
6570
6422
  var l = Services[hookName];
@@ -6587,8 +6439,8 @@
6587
6439
  def = vm.def,
6588
6440
  context = vm.context;
6589
6441
 
6590
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
6591
- cbs[_i22].call(undefined, component, {}, def, context);
6442
+ for (var _i21 = 0, len = cbs.length; _i21 < len; ++_i21) {
6443
+ cbs[_i21].call(undefined, component, {}, def, context);
6592
6444
  }
6593
6445
  }
6594
6446
  /*
@@ -6692,9 +6544,19 @@
6692
6544
  resetComponentStateWhenRemoved(vm);
6693
6545
  }
6694
6546
 
6695
- function createVM(elm, ctor, options) {
6696
- var _a;
6547
+ function getNearestShadowAncestor(vm) {
6548
+ var ancestor = vm.owner;
6549
+
6550
+ while (!isNull(ancestor) && ancestor.renderMode === 0
6551
+ /* Light */
6552
+ ) {
6553
+ ancestor = ancestor.owner;
6554
+ }
6555
+
6556
+ return ancestor;
6557
+ }
6697
6558
 
6559
+ function createVM(elm, ctor, renderer, options) {
6698
6560
  var mode = options.mode,
6699
6561
  owner = options.owner,
6700
6562
  tagName = options.tagName,
@@ -6722,8 +6584,6 @@
6722
6584
  cmpTemplate: null,
6723
6585
  hydrated: Boolean(hydrated),
6724
6586
  renderMode: def.renderMode,
6725
- shadowMode: computeShadowMode(def, owner),
6726
- nearestShadowMode: (owner === null || owner === void 0 ? void 0 : owner.shadowRoot) ? owner.shadowMode : (_a = owner === null || owner === void 0 ? void 0 : owner.nearestShadowMode) !== null && _a !== void 0 ? _a : null,
6727
6587
  context: {
6728
6588
  stylesheetToken: undefined,
6729
6589
  hasTokenInClass: undefined,
@@ -6736,14 +6596,17 @@
6736
6596
  },
6737
6597
  // Properties set right after VM creation.
6738
6598
  tro: null,
6599
+ shadowMode: null,
6739
6600
  // Properties set by the LightningElement constructor.
6740
6601
  component: null,
6741
6602
  shadowRoot: null,
6742
6603
  renderRoot: null,
6743
6604
  callHook: callHook,
6744
6605
  setHook: setHook,
6745
- getHook: getHook
6606
+ getHook: getHook,
6607
+ renderer: renderer
6746
6608
  };
6609
+ vm.shadowMode = computeShadowMode(vm, renderer);
6747
6610
  vm.tro = getTemplateReactiveObserver(vm);
6748
6611
 
6749
6612
  if (process.env.NODE_ENV !== 'production') {
@@ -6768,12 +6631,13 @@
6768
6631
  return vm;
6769
6632
  }
6770
6633
 
6771
- function computeShadowMode(def, owner) {
6772
- var _a;
6773
-
6634
+ function computeShadowMode(vm, renderer) {
6635
+ var def = vm.def;
6636
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined,
6637
+ isNativeShadowDefined = renderer.isNativeShadowDefined;
6774
6638
  var shadowMode;
6775
6639
 
6776
- if (isSyntheticShadowDefined$1) {
6640
+ if (isSyntheticShadowDefined) {
6777
6641
  if (def.renderMode === 0
6778
6642
  /* Light */
6779
6643
  ) {
@@ -6782,7 +6646,7 @@
6782
6646
  shadowMode = 0
6783
6647
  /* Native */
6784
6648
  ;
6785
- } else if (isNativeShadowDefined$1) {
6649
+ } else if (isNativeShadowDefined) {
6786
6650
  // Not combined with above condition because @lwc/features only supports identifiers in
6787
6651
  // the if-condition.
6788
6652
  if (runtimeFlags.ENABLE_MIXED_SHADOW_MODE) {
@@ -6793,13 +6657,23 @@
6793
6657
  /* Native */
6794
6658
  ;
6795
6659
  } else {
6796
- // Transitive support for native Shadow DOM. A component in native mode
6797
- // transitively opts all of its descendants into native.
6798
- // Synthetic if neither this component nor any of its ancestors are configured
6799
- // to be native.
6800
- shadowMode = (_a = owner === null || owner === void 0 ? void 0 : owner.nearestShadowMode) !== null && _a !== void 0 ? _a : 1
6801
- /* Synthetic */
6802
- ;
6660
+ var shadowAncestor = getNearestShadowAncestor(vm);
6661
+
6662
+ if (!isNull(shadowAncestor) && shadowAncestor.shadowMode === 0
6663
+ /* Native */
6664
+ ) {
6665
+ // Transitive support for native Shadow DOM. A component in native mode
6666
+ // transitively opts all of its descendants into native.
6667
+ shadowMode = 0
6668
+ /* Native */
6669
+ ;
6670
+ } else {
6671
+ // Synthetic if neither this component nor any of its ancestors are configured
6672
+ // to be native.
6673
+ shadowMode = 1
6674
+ /* Synthetic */
6675
+ ;
6676
+ }
6803
6677
  }
6804
6678
  } else {
6805
6679
  shadowMode = 1
@@ -6863,7 +6737,8 @@
6863
6737
 
6864
6738
  function patchShadowRoot(vm, newCh) {
6865
6739
  var renderRoot = vm.renderRoot,
6866
- oldCh = vm.children; // caching the new children collection
6740
+ oldCh = vm.children,
6741
+ renderer = vm.renderer; // caching the new children collection
6867
6742
 
6868
6743
  vm.children = newCh;
6869
6744
 
@@ -6878,7 +6753,7 @@
6878
6753
  , vm);
6879
6754
  }, function () {
6880
6755
  // job
6881
- patchChildren(oldCh, newCh, renderRoot);
6756
+ patchChildren(oldCh, newCh, renderRoot, renderer);
6882
6757
  }, function () {
6883
6758
  // post
6884
6759
  logOperationEnd(2
@@ -6900,9 +6775,10 @@
6900
6775
  }
6901
6776
 
6902
6777
  function runRenderedCallback(vm) {
6903
- var renderedCallback = vm.def.renderedCallback;
6778
+ var renderedCallback = vm.def.renderedCallback,
6779
+ ssr = vm.renderer.ssr;
6904
6780
 
6905
- if (isTrue(ssr$1)) {
6781
+ if (isTrue(ssr)) {
6906
6782
  return;
6907
6783
  }
6908
6784
 
@@ -6939,19 +6815,19 @@
6939
6815
  });
6940
6816
  rehydrateQueue = []; // reset to a new queue
6941
6817
 
6942
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
6943
- var vm = vms[_i23];
6818
+ for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
6819
+ var vm = vms[_i22];
6944
6820
 
6945
6821
  try {
6946
6822
  rehydrate(vm);
6947
6823
  } catch (error) {
6948
- if (_i23 + 1 < len) {
6824
+ if (_i22 + 1 < len) {
6949
6825
  // pieces of the queue are still pending to be rehydrated, those should have priority
6950
6826
  if (rehydrateQueue.length === 0) {
6951
6827
  addCallbackToNextTick(flushRehydrationQueue);
6952
6828
  }
6953
6829
 
6954
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
6830
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
6955
6831
  } // we need to end the measure before throwing.
6956
6832
 
6957
6833
 
@@ -7055,8 +6931,8 @@
7055
6931
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
7056
6932
  // inserted in reserved order.
7057
6933
 
7058
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
7059
- var elm = vCustomElementCollection[_i24].elm; // There are two cases where the element could be undefined:
6934
+ for (var _i23 = vCustomElementCollection.length - 1; _i23 >= 0; _i23 -= 1) {
6935
+ var elm = vCustomElementCollection[_i23].elm; // There are two cases where the element could be undefined:
7060
6936
  // * when there is an error during the construction phase, and an error
7061
6937
  // boundary picks it, there is a possibility that the VCustomElement
7062
6938
  // is not properly initialized, and therefore is should be ignored.
@@ -7090,8 +6966,8 @@
7090
6966
 
7091
6967
 
7092
6968
  function recursivelyDisconnectChildren(vnodes) {
7093
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
7094
- var vnode = vnodes[_i25];
6969
+ for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
6970
+ var vnode = vnodes[_i24];
7095
6971
 
7096
6972
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
7097
6973
  switch (vnode.type) {
@@ -7120,13 +6996,14 @@
7120
6996
 
7121
6997
  function resetComponentRoot(vm) {
7122
6998
  var children = vm.children,
7123
- renderRoot = vm.renderRoot;
6999
+ renderRoot = vm.renderRoot,
7000
+ remove = vm.renderer.remove;
7124
7001
 
7125
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
7126
- var child = children[_i26];
7002
+ for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
7003
+ var child = children[_i25];
7127
7004
 
7128
7005
  if (!isNull(child) && !isUndefined$1(child.elm)) {
7129
- remove$1(child.elm, renderRoot);
7006
+ remove(child.elm, renderRoot);
7130
7007
  }
7131
7008
  }
7132
7009
 
@@ -7136,7 +7013,9 @@
7136
7013
  }
7137
7014
 
7138
7015
  function scheduleRehydration(vm) {
7139
- if (isTrue(ssr$1) || isTrue(vm.isScheduled)) {
7016
+ var ssr = vm.renderer.ssr;
7017
+
7018
+ if (isTrue(ssr) || isTrue(vm.isScheduled)) {
7140
7019
  return;
7141
7020
  }
7142
7021
 
@@ -7323,7 +7202,8 @@
7323
7202
  var elm = vm.elm,
7324
7203
  _vm$context = vm.context,
7325
7204
  wiredConnecting = _vm$context.wiredConnecting,
7326
- wiredDisconnecting = _vm$context.wiredDisconnecting; // waiting for the component to be connected to formally request the context via the token
7205
+ wiredDisconnecting = _vm$context.wiredDisconnecting,
7206
+ dispatchEvent = vm.renderer.dispatchEvent; // waiting for the component to be connected to formally request the context via the token
7327
7207
 
7328
7208
  ArrayPush$1.call(wiredConnecting, function () {
7329
7209
  // This event is responsible for connecting the host element with another
@@ -7343,7 +7223,7 @@
7343
7223
  ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
7344
7224
  }
7345
7225
  });
7346
- dispatchEvent$1(elm, contextRegistrationEvent);
7226
+ dispatchEvent(elm, contextRegistrationEvent);
7347
7227
  });
7348
7228
  }
7349
7229
 
@@ -7497,8 +7377,8 @@
7497
7377
  function connectWireAdapters(vm) {
7498
7378
  var wiredConnecting = vm.context.wiredConnecting;
7499
7379
 
7500
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
7501
- wiredConnecting[_i27]();
7380
+ for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
7381
+ wiredConnecting[_i26]();
7502
7382
  }
7503
7383
  }
7504
7384
 
@@ -7506,8 +7386,8 @@
7506
7386
  var wiredDisconnecting = vm.context.wiredDisconnecting;
7507
7387
  runWithBoundaryProtection(vm, vm, noop, function () {
7508
7388
  // job
7509
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
7510
- wiredDisconnecting[_i28]();
7389
+ for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
7390
+ wiredDisconnecting[_i27]();
7511
7391
  }
7512
7392
  }, noop);
7513
7393
  }
@@ -7607,95 +7487,107 @@
7607
7487
  function hydrateVM(vm) {
7608
7488
  var children = renderComponent(vm);
7609
7489
  vm.children = children;
7610
- var parentNode = vm.renderRoot;
7611
- hydrateChildren(getFirstChild$1(parentNode), children, parentNode, vm);
7490
+ var parentNode = vm.renderRoot,
7491
+ getFirstChild = vm.renderer.getFirstChild;
7492
+ hydrateChildren(getFirstChild(parentNode), children, parentNode, vm);
7612
7493
  runRenderedCallback(vm);
7613
7494
  }
7614
7495
 
7615
- function hydrateNode(node, vnode) {
7496
+ function hydrateNode(node, vnode, renderer) {
7497
+ var _a, _b;
7498
+
7616
7499
  var hydratedNode;
7617
7500
 
7618
7501
  switch (vnode.type) {
7619
7502
  case 0
7620
7503
  /* Text */
7621
7504
  :
7622
- hydratedNode = hydrateText(node, vnode);
7505
+ // VText has no special capability, fallback to the owner's renderer
7506
+ hydratedNode = hydrateText(node, vnode, renderer);
7623
7507
  break;
7624
7508
 
7625
7509
  case 1
7626
7510
  /* Comment */
7627
7511
  :
7628
- hydratedNode = hydrateComment(node, vnode);
7512
+ // VComment has no special capability, fallback to the owner's renderer
7513
+ hydratedNode = hydrateComment(node, vnode, renderer);
7629
7514
  break;
7630
7515
 
7631
7516
  case 2
7632
7517
  /* Element */
7633
7518
  :
7634
- hydratedNode = hydrateElement(node, vnode);
7519
+ hydratedNode = hydrateElement(node, vnode, (_a = vnode.data.renderer) !== null && _a !== void 0 ? _a : renderer);
7635
7520
  break;
7636
7521
 
7637
7522
  case 3
7638
7523
  /* CustomElement */
7639
7524
  :
7640
- hydratedNode = hydrateCustomElement(node, vnode);
7525
+ hydratedNode = hydrateCustomElement(node, vnode, (_b = vnode.data.renderer) !== null && _b !== void 0 ? _b : renderer);
7641
7526
  break;
7642
7527
  }
7643
7528
 
7644
- return nextSibling$1(hydratedNode);
7529
+ return renderer.nextSibling(hydratedNode);
7645
7530
  }
7646
7531
 
7647
- function hydrateText(node, vnode) {
7532
+ function hydrateText(node, vnode, renderer) {
7648
7533
  var _a;
7649
7534
 
7650
7535
  if (!hasCorrectNodeType(vnode, node, 3
7651
7536
  /* TEXT */
7652
- )) {
7653
- return handleMismatch(node, vnode);
7537
+ , renderer)) {
7538
+ return handleMismatch(node, vnode, renderer);
7654
7539
  }
7655
7540
 
7656
7541
  if (process.env.NODE_ENV !== 'production') {
7657
- var nodeValue = getProperty$1(node, 'nodeValue');
7542
+ var _getProperty = renderer.getProperty;
7543
+
7544
+ var nodeValue = _getProperty(node, 'nodeValue');
7658
7545
 
7659
7546
  if (nodeValue !== vnode.text && !(nodeValue === "\u200D" && vnode.text === '')) {
7660
7547
  logWarn('Hydration mismatch: text values do not match, will recover from the difference', vnode.owner);
7661
7548
  }
7662
7549
  }
7663
7550
 
7664
- setText$1(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
7551
+ var setText = renderer.setText;
7552
+ setText(node, (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
7665
7553
  vnode.elm = node;
7666
7554
  return node;
7667
7555
  }
7668
7556
 
7669
- function hydrateComment(node, vnode) {
7557
+ function hydrateComment(node, vnode, renderer) {
7670
7558
  var _a;
7671
7559
 
7672
7560
  if (!hasCorrectNodeType(vnode, node, 8
7673
7561
  /* COMMENT */
7674
- )) {
7675
- return handleMismatch(node, vnode);
7562
+ , renderer)) {
7563
+ return handleMismatch(node, vnode, renderer);
7676
7564
  }
7677
7565
 
7678
7566
  if (process.env.NODE_ENV !== 'production') {
7679
- var nodeValue = getProperty$1(node, 'nodeValue');
7567
+ var _getProperty2 = renderer.getProperty;
7568
+
7569
+ var nodeValue = _getProperty2(node, 'nodeValue');
7680
7570
 
7681
7571
  if (nodeValue !== vnode.text) {
7682
7572
  logWarn('Hydration mismatch: comment values do not match, will recover from the difference', vnode.owner);
7683
7573
  }
7684
7574
  }
7685
7575
 
7686
- setProperty$1(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
7576
+ var setProperty = renderer.setProperty;
7577
+ setProperty(node, 'nodeValue', (_a = vnode.text) !== null && _a !== void 0 ? _a : null);
7687
7578
  vnode.elm = node;
7688
7579
  return node;
7689
7580
  }
7690
7581
 
7691
- function hydrateElement(elm, vnode) {
7582
+ function hydrateElement(elm, vnode, renderer) {
7692
7583
  if (!hasCorrectNodeType(vnode, elm, 1
7693
7584
  /* ELEMENT */
7694
- ) || !isMatchingElement(vnode, elm)) {
7695
- return handleMismatch(elm, vnode);
7585
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
7586
+ return handleMismatch(elm, vnode, renderer);
7696
7587
  }
7697
7588
 
7698
7589
  vnode.elm = elm;
7590
+ var owner = vnode.owner;
7699
7591
  var context = vnode.data.context;
7700
7592
  var isDomManual = Boolean(!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
7701
7593
  /* Manual */
@@ -7705,42 +7597,44 @@
7705
7597
  // it may be that this element has lwc:inner-html, we need to diff and in case are the same,
7706
7598
  // remove the innerHTML from props so it reuses the existing dom elements.
7707
7599
  var props = vnode.data.props;
7600
+ var _getProperty3 = renderer.getProperty;
7708
7601
 
7709
7602
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
7710
- if (getProperty$1(elm, 'innerHTML') === props.innerHTML) {
7603
+ if (_getProperty3(elm, 'innerHTML') === props.innerHTML) {
7711
7604
  // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
7712
7605
  vnode.data = Object.assign(Object.assign({}, vnode.data), {
7713
7606
  props: cloneAndOmitKey(props, 'innerHTML')
7714
7607
  });
7715
7608
  } else {
7716
7609
  if (process.env.NODE_ENV !== 'production') {
7717
- logWarn("Mismatch hydrating element <".concat(getProperty$1(elm, 'tagName').toLowerCase(), ">: innerHTML values do not match for element, will recover from the difference"), vnode.owner);
7610
+ logWarn("Mismatch hydrating element <".concat(_getProperty3(elm, 'tagName').toLowerCase(), ">: innerHTML values do not match for element, will recover from the difference"), owner);
7718
7611
  }
7719
7612
  }
7720
7613
  }
7721
7614
  }
7722
7615
 
7723
- patchElementPropsAndAttrs(vnode);
7616
+ patchElementPropsAndAttrs(vnode, renderer);
7724
7617
 
7725
7618
  if (!isDomManual) {
7726
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vnode.owner);
7619
+ var _getFirstChild = renderer.getFirstChild;
7620
+ hydrateChildren(_getFirstChild(elm), vnode.children, elm, owner);
7727
7621
  }
7728
7622
 
7729
7623
  return elm;
7730
7624
  }
7731
7625
 
7732
- function hydrateCustomElement(elm, vnode) {
7626
+ function hydrateCustomElement(elm, vnode, renderer) {
7733
7627
  if (!hasCorrectNodeType(vnode, elm, 1
7734
7628
  /* ELEMENT */
7735
- ) || !isMatchingElement(vnode, elm)) {
7736
- return handleMismatch(elm, vnode);
7629
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
7630
+ return handleMismatch(elm, vnode, renderer);
7737
7631
  }
7738
7632
 
7739
7633
  var sel = vnode.sel,
7740
7634
  mode = vnode.mode,
7741
7635
  ctor = vnode.ctor,
7742
7636
  owner = vnode.owner;
7743
- var vm = createVM(elm, ctor, {
7637
+ var vm = createVM(elm, ctor, renderer, {
7744
7638
  mode: mode,
7745
7639
  owner: owner,
7746
7640
  tagName: sel,
@@ -7749,7 +7643,7 @@
7749
7643
  vnode.elm = elm;
7750
7644
  vnode.vm = vm;
7751
7645
  allocateChildren(vnode, vm);
7752
- patchElementPropsAndAttrs(vnode); // Insert hook section:
7646
+ patchElementPropsAndAttrs(vnode, renderer); // Insert hook section:
7753
7647
 
7754
7648
  if (process.env.NODE_ENV !== 'production') {
7755
7649
  assert.isTrue(vm.state === 0
@@ -7762,9 +7656,10 @@
7762
7656
  if (vm.renderMode !== 0
7763
7657
  /* Light */
7764
7658
  ) {
7765
- // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
7659
+ var _getFirstChild2 = renderer.getFirstChild; // VM is not rendering in Light DOM, we can proceed and hydrate the slotted content.
7766
7660
  // Note: for Light DOM, this is handled while hydrating the VM
7767
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vm);
7661
+
7662
+ hydrateChildren(_getFirstChild2(elm), vnode.children, elm, vm);
7768
7663
  }
7769
7664
 
7770
7665
  hydrateVM(vm);
@@ -7775,13 +7670,14 @@
7775
7670
  var hasWarned = false;
7776
7671
  var nextNode = node;
7777
7672
  var anchor = null;
7673
+ var renderer = owner.renderer;
7778
7674
 
7779
- for (var _i29 = 0; _i29 < children.length; _i29++) {
7780
- var childVnode = children[_i29];
7675
+ for (var _i28 = 0; _i28 < children.length; _i28++) {
7676
+ var childVnode = children[_i28];
7781
7677
 
7782
7678
  if (!isNull(childVnode)) {
7783
7679
  if (nextNode) {
7784
- nextNode = hydrateNode(nextNode, childVnode);
7680
+ nextNode = hydrateNode(nextNode, childVnode, renderer);
7785
7681
  anchor = childVnode.elm;
7786
7682
  } else {
7787
7683
  hasMismatch = true;
@@ -7793,7 +7689,7 @@
7793
7689
  }
7794
7690
  }
7795
7691
 
7796
- mount(childVnode, parentNode, anchor);
7692
+ mount(childVnode, parentNode, renderer, anchor);
7797
7693
  anchor = childVnode.elm;
7798
7694
  }
7799
7695
  }
@@ -7806,38 +7702,40 @@
7806
7702
  if (!hasWarned) {
7807
7703
  logError("Hydration mismatch: incorrect number of rendered nodes. Server rendered more nodes than the client.", owner);
7808
7704
  }
7809
- }
7705
+ } // nextSibling is mostly harmless, and since we don't have
7706
+ // a good reference to what element to act upon, we instead
7707
+ // rely on the vm's associated renderer for navigating to the
7708
+ // next node in the list to be hydrated.
7709
+
7710
+
7711
+ var _nextSibling = renderer.nextSibling;
7810
7712
 
7811
7713
  do {
7812
7714
  var current = nextNode;
7813
- nextNode = nextSibling$1(nextNode);
7814
- removeNode(current, parentNode);
7715
+ nextNode = _nextSibling(nextNode);
7716
+ removeNode(current, parentNode, renderer);
7815
7717
  } while (nextNode);
7816
7718
  }
7817
7719
  }
7818
7720
 
7819
- function handleMismatch(node, vnode, msg) {
7721
+ function handleMismatch(node, vnode, renderer) {
7820
7722
  hasMismatch = true;
7821
-
7822
- if (!isUndefined$1(msg)) {
7823
- if (process.env.NODE_ENV !== 'production') {
7824
- logError(msg, vnode.owner);
7825
- }
7826
- }
7827
-
7828
- var parentNode = getProperty$1(node, 'parentNode');
7829
- mount(vnode, parentNode, node);
7830
- removeNode(node, parentNode);
7723
+ var getProperty = renderer.getProperty;
7724
+ var parentNode = getProperty(node, 'parentNode');
7725
+ mount(vnode, parentNode, renderer, node);
7726
+ removeNode(node, parentNode, renderer);
7831
7727
  return vnode.elm;
7832
7728
  }
7833
7729
 
7834
- function patchElementPropsAndAttrs(vnode) {
7835
- applyEventListeners(vnode);
7836
- patchProps(null, vnode);
7730
+ function patchElementPropsAndAttrs(vnode, renderer) {
7731
+ applyEventListeners(vnode, renderer);
7732
+ patchProps(null, vnode, renderer);
7837
7733
  }
7838
7734
 
7839
- function hasCorrectNodeType(vnode, node, nodeType) {
7840
- if (getProperty$1(node, 'nodeType') !== nodeType) {
7735
+ function hasCorrectNodeType(vnode, node, nodeType, renderer) {
7736
+ var getProperty = renderer.getProperty;
7737
+
7738
+ if (getProperty(node, 'nodeType') !== nodeType) {
7841
7739
  if (process.env.NODE_ENV !== 'production') {
7842
7740
  logError('Hydration mismatch: incorrect node type received', vnode.owner);
7843
7741
  }
@@ -7848,37 +7746,43 @@
7848
7746
  return true;
7849
7747
  }
7850
7748
 
7851
- function isMatchingElement(vnode, elm) {
7852
- if (vnode.sel.toLowerCase() !== getProperty$1(elm, 'tagName').toLowerCase()) {
7749
+ function isMatchingElement(vnode, elm, renderer) {
7750
+ var getProperty = renderer.getProperty;
7751
+
7752
+ if (vnode.sel.toLowerCase() !== getProperty(elm, 'tagName').toLowerCase()) {
7853
7753
  if (process.env.NODE_ENV !== 'production') {
7854
- logError("Hydration mismatch: expecting element with tag \"".concat(vnode.sel.toLowerCase(), "\" but found \"").concat(getProperty$1(elm, 'tagName').toLowerCase(), "\"."), vnode.owner);
7754
+ logError("Hydration mismatch: expecting element with tag \"".concat(vnode.sel.toLowerCase(), "\" but found \"").concat(getProperty(elm, 'tagName').toLowerCase(), "\"."), vnode.owner);
7855
7755
  }
7856
7756
 
7857
7757
  return false;
7858
7758
  }
7859
7759
 
7860
- var hasIncompatibleAttrs = validateAttrs(vnode, elm);
7861
- var hasIncompatibleClass = validateClassAttr(vnode, elm);
7862
- var hasIncompatibleStyle = validateStyleAttr(vnode, elm);
7760
+ var hasIncompatibleAttrs = validateAttrs(vnode, elm, renderer);
7761
+ var hasIncompatibleClass = validateClassAttr(vnode, elm, renderer);
7762
+ var hasIncompatibleStyle = validateStyleAttr(vnode, elm, renderer);
7863
7763
  return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
7864
7764
  }
7865
7765
 
7866
- function validateAttrs(vnode, elm) {
7766
+ function validateAttrs(vnode, elm, renderer) {
7867
7767
  var _vnode$data$attrs = vnode.data.attrs,
7868
7768
  attrs = _vnode$data$attrs === void 0 ? {} : _vnode$data$attrs;
7869
7769
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
7870
7770
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
7871
7771
 
7872
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
7873
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
7772
+ for (var _i29 = 0, _Object$entries = Object.entries(attrs); _i29 < _Object$entries.length; _i29++) {
7773
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i29], 2),
7874
7774
  attrName = _Object$entries$_i[0],
7875
7775
  attrValue = _Object$entries$_i[1];
7876
7776
 
7877
- var elmAttrValue = getAttribute$1(elm, attrName);
7777
+ var owner = vnode.owner;
7778
+ var _getAttribute = renderer.getAttribute;
7779
+
7780
+ var elmAttrValue = _getAttribute(elm, attrName);
7878
7781
 
7879
7782
  if (String(attrValue) !== elmAttrValue) {
7880
7783
  if (process.env.NODE_ENV !== 'production') {
7881
- logError("Mismatch hydrating element <".concat(getProperty$1(elm, 'tagName').toLowerCase(), ">: attribute \"").concat(attrName, "\" has different values, expected \"").concat(attrValue, "\" but found \"").concat(elmAttrValue, "\""), vnode.owner);
7784
+ var _getProperty4 = renderer.getProperty;
7785
+ logError("Mismatch hydrating element <".concat(_getProperty4(elm, 'tagName').toLowerCase(), ">: attribute \"").concat(attrName, "\" has different values, expected \"").concat(attrValue, "\" but found \"").concat(elmAttrValue, "\""), owner);
7882
7786
  }
7883
7787
 
7884
7788
  nodesAreCompatible = false;
@@ -7888,20 +7792,22 @@
7888
7792
  return nodesAreCompatible;
7889
7793
  }
7890
7794
 
7891
- function validateClassAttr(vnode, elm) {
7795
+ function validateClassAttr(vnode, elm, renderer) {
7892
7796
  var _vnode$data = vnode.data,
7893
7797
  className = _vnode$data.className,
7894
7798
  classMap = _vnode$data.classMap;
7799
+ var getProperty = renderer.getProperty,
7800
+ getClassList = renderer.getClassList;
7895
7801
  var nodesAreCompatible = true;
7896
7802
  var vnodeClassName;
7897
7803
 
7898
- if (!isUndefined$1(className) && String(className) !== getProperty$1(elm, 'className')) {
7804
+ if (!isUndefined$1(className) && String(className) !== getProperty(elm, 'className')) {
7899
7805
  // className is used when class is bound to an expr.
7900
7806
  nodesAreCompatible = false;
7901
7807
  vnodeClassName = className;
7902
7808
  } else if (!isUndefined$1(classMap)) {
7903
7809
  // classMap is used when class is set to static value.
7904
- var classList = getClassList$1(elm);
7810
+ var classList = getClassList(elm);
7905
7811
  var computedClassName = ''; // all classes from the vnode should be in the element.classList
7906
7812
 
7907
7813
  for (var name in classMap) {
@@ -7921,18 +7827,19 @@
7921
7827
 
7922
7828
  if (!nodesAreCompatible) {
7923
7829
  if (process.env.NODE_ENV !== 'production') {
7924
- logError("Mismatch hydrating element <".concat(getProperty$1(elm, 'tagName').toLowerCase(), ">: attribute \"class\" has different values, expected \"").concat(vnodeClassName, "\" but found \"").concat(getProperty$1(elm, 'className'), "\""), vnode.owner);
7830
+ logError("Mismatch hydrating element <".concat(getProperty(elm, 'tagName').toLowerCase(), ">: attribute \"class\" has different values, expected \"").concat(vnodeClassName, "\" but found \"").concat(getProperty(elm, 'className'), "\""), vnode.owner);
7925
7831
  }
7926
7832
  }
7927
7833
 
7928
7834
  return nodesAreCompatible;
7929
7835
  }
7930
7836
 
7931
- function validateStyleAttr(vnode, elm) {
7837
+ function validateStyleAttr(vnode, elm, renderer) {
7932
7838
  var _vnode$data2 = vnode.data,
7933
7839
  style = _vnode$data2.style,
7934
7840
  styleDecls = _vnode$data2.styleDecls;
7935
- var elmStyle = getAttribute$1(elm, 'style') || '';
7841
+ var getAttribute = renderer.getAttribute;
7842
+ var elmStyle = getAttribute(elm, 'style') || '';
7936
7843
  var vnodeStyle;
7937
7844
  var nodesAreCompatible = true;
7938
7845
 
@@ -7943,8 +7850,8 @@
7943
7850
  var parsedVnodeStyle = parseStyleText(elmStyle);
7944
7851
  var expectedStyle = []; // styleMap is used when style is set to static value.
7945
7852
 
7946
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
7947
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
7853
+ for (var _i30 = 0, n = styleDecls.length; _i30 < n; _i30++) {
7854
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i30], 3),
7948
7855
  prop = _styleDecls$_i2[0],
7949
7856
  value = _styleDecls$_i2[1],
7950
7857
  important = _styleDecls$_i2[2];
@@ -7970,7 +7877,8 @@
7970
7877
 
7971
7878
  if (!nodesAreCompatible) {
7972
7879
  if (process.env.NODE_ENV !== 'production') {
7973
- logError("Mismatch hydrating element <".concat(getProperty$1(elm, 'tagName').toLowerCase(), ">: attribute \"style\" has different values, expected \"").concat(vnodeStyle, "\" but found \"").concat(elmStyle, "\"."), vnode.owner);
7880
+ var _getProperty5 = renderer.getProperty;
7881
+ logError("Mismatch hydrating element <".concat(_getProperty5(elm, 'tagName').toLowerCase(), ">: attribute \"style\" has different values, expected \"").concat(vnodeStyle, "\" but found \"").concat(elmStyle, "\"."), vnode.owner);
7974
7882
  }
7975
7883
  }
7976
7884
 
@@ -8045,7 +7953,7 @@
8045
7953
  _step3;
8046
7954
 
8047
7955
  try {
8048
- var _loop3 = function _loop3() {
7956
+ var _loop2 = function _loop2() {
8049
7957
  var prop = _step3.value;
8050
7958
  var originalArrayMethod = getOriginalArrayMethod(prop);
8051
7959
 
@@ -8057,7 +7965,7 @@
8057
7965
  };
8058
7966
 
8059
7967
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
8060
- _loop3();
7968
+ _loop2();
8061
7969
  }
8062
7970
  } catch (err) {
8063
7971
  _iterator3.e(err);
@@ -8078,7 +7986,7 @@
8078
7986
  _step4;
8079
7987
 
8080
7988
  try {
8081
- var _loop4 = function _loop4() {
7989
+ var _loop3 = function _loop3() {
8082
7990
  var prop = _step4.value;
8083
7991
  var value = tmpl[prop];
8084
7992
  defineProperty(tmpl, prop, {
@@ -8098,7 +8006,7 @@
8098
8006
  };
8099
8007
 
8100
8008
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
8101
- _loop4();
8009
+ _loop3();
8102
8010
  }
8103
8011
  } catch (err) {
8104
8012
  _iterator4.e(err);
@@ -8148,7 +8056,7 @@
8148
8056
 
8149
8057
  return ctor;
8150
8058
  }
8151
- /* version: 2.13.4 */
8059
+ /* version: 2.14.2 */
8152
8060
 
8153
8061
  /*
8154
8062
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8327,7 +8235,7 @@
8327
8235
  try {
8328
8236
  // dereference HTMLElement global because babel wraps globals in compat mode with a
8329
8237
  // _wrapNativeSuper()
8330
- // This is a problem because LWCUpgradableElement extends renderer.HTMLElement which does not
8238
+ // This is a problem because LWCUpgradableElement extends renderer.HTMLElementExported which does not
8331
8239
  // get wrapped by babel.
8332
8240
  var HTMLElementAlias = HTMLElement; // In case we use compat mode with a modern browser, the compat mode transformation
8333
8241
  // invokes the DOM api with an .apply() or .call() to initialize any DOM api sub-classing,
@@ -8403,6 +8311,11 @@
8403
8311
  }
8404
8312
 
8405
8313
  var ssr = false;
8314
+
8315
+ function isHydrating() {
8316
+ return hydrating;
8317
+ }
8318
+
8406
8319
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
8407
8320
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
8408
8321
 
@@ -8548,75 +8461,47 @@
8548
8461
  }
8549
8462
 
8550
8463
  var HTMLElementExported = HTMLElementConstructor;
8551
- /*
8552
- * Copyright (c) 2020, salesforce.com, inc.
8553
- * All rights reserved.
8554
- * SPDX-License-Identifier: MIT
8555
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8556
- */
8557
-
8558
- setAssertInstanceOfHTMLElement(assertInstanceOfHTMLElement);
8559
- setAttachShadow(attachShadow);
8560
- setCreateComment(createComment);
8561
- setCreateElement(createElement$1);
8562
- setCreateText(createText);
8563
- setDefineCustomElement(defineCustomElement);
8564
- setDispatchEvent(dispatchEvent);
8565
- setGetAttribute(getAttribute);
8566
- setGetBoundingClientRect(getBoundingClientRect);
8567
- setGetChildNodes(getChildNodes);
8568
- setGetChildren(getChildren);
8569
- setGetClassList(getClassList);
8570
- setGetCustomElement(getCustomElement);
8571
- setGetElementsByClassName(getElementsByClassName);
8572
- setGetElementsByTagName(getElementsByTagName);
8573
- setGetFirstChild(getFirstChild);
8574
- setGetFirstElementChild(getFirstElementChild);
8575
- setGetLastChild(getLastChild);
8576
- setGetLastElementChild(getLastElementChild);
8577
- setGetProperty(getProperty);
8578
- setHTMLElement(HTMLElementExported);
8579
- setInsert(insert);
8580
- setIsConnected(isConnected);
8581
- setIsNativeShadowDefined(isNativeShadowDefined);
8582
- setIsSyntheticShadowDefined(isSyntheticShadowDefined);
8583
- setNextSibling(nextSibling);
8584
- setQuerySelector(querySelector);
8585
- setQuerySelectorAll(querySelectorAll);
8586
- setRemove(remove);
8587
- setRemoveAttribute(removeAttribute);
8588
- setRemoveEventListener(removeEventListener);
8589
- setSetAttribute(setAttribute);
8590
- setSetCSSStyleProperty(setCSSStyleProperty);
8591
- setSetProperty(setProperty);
8592
- setSetText(setText);
8593
- setSsr(ssr);
8594
- setAddEventListener(addEventListener);
8595
- setInsertStylesheet(insertStylesheet);
8596
- /*
8597
- * Copyright (c) 2018, salesforce.com, inc.
8598
- * All rights reserved.
8599
- * SPDX-License-Identifier: MIT
8600
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8601
- */
8602
- // @ts-ignore
8603
-
8604
- if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
8605
- window.addEventListener('test-dummy-flag', function () {
8606
- var hasFlag = false;
8607
-
8608
- if (runtimeFlags.DUMMY_TEST_FLAG) {
8609
- hasFlag = true;
8610
- }
8611
-
8612
- window.dispatchEvent(new CustomEvent('has-dummy-flag', {
8613
- detail: {
8614
- package: '@lwc/engine-dom',
8615
- hasFlag: hasFlag
8616
- }
8617
- }));
8618
- });
8619
- }
8464
+ var renderer = {
8465
+ ssr: ssr,
8466
+ isNativeShadowDefined: isNativeShadowDefined,
8467
+ isSyntheticShadowDefined: isSyntheticShadowDefined,
8468
+ HTMLElementExported: HTMLElementExported,
8469
+ isHydrating: isHydrating,
8470
+ insert: insert,
8471
+ remove: remove,
8472
+ createElement: createElement$1,
8473
+ createText: createText,
8474
+ createComment: createComment,
8475
+ nextSibling: nextSibling,
8476
+ attachShadow: attachShadow,
8477
+ getProperty: getProperty,
8478
+ setProperty: setProperty,
8479
+ setText: setText,
8480
+ getAttribute: getAttribute,
8481
+ setAttribute: setAttribute,
8482
+ removeAttribute: removeAttribute,
8483
+ addEventListener: addEventListener,
8484
+ removeEventListener: removeEventListener,
8485
+ dispatchEvent: dispatchEvent,
8486
+ getClassList: getClassList,
8487
+ setCSSStyleProperty: setCSSStyleProperty,
8488
+ getBoundingClientRect: getBoundingClientRect,
8489
+ querySelector: querySelector,
8490
+ querySelectorAll: querySelectorAll,
8491
+ getElementsByTagName: getElementsByTagName,
8492
+ getElementsByClassName: getElementsByClassName,
8493
+ getChildren: getChildren,
8494
+ getChildNodes: getChildNodes,
8495
+ getFirstChild: getFirstChild,
8496
+ getFirstElementChild: getFirstElementChild,
8497
+ getLastChild: getLastChild,
8498
+ getLastElementChild: getLastElementChild,
8499
+ isConnected: isConnected,
8500
+ insertStylesheet: insertStylesheet,
8501
+ assertInstanceOfHTMLElement: assertInstanceOfHTMLElement,
8502
+ defineCustomElement: defineCustomElement,
8503
+ getCustomElement: getCustomElement
8504
+ };
8620
8505
  /*
8621
8506
  * Copyright (c) 2018, salesforce.com, inc.
8622
8507
  * All rights reserved.
@@ -8624,7 +8509,6 @@
8624
8509
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8625
8510
  */
8626
8511
 
8627
-
8628
8512
  function resetShadowRootAndLightDom(element, Ctor) {
8629
8513
  if (element.shadowRoot) {
8630
8514
  var shadowRoot = element.shadowRoot;
@@ -8642,15 +8526,15 @@
8642
8526
  }
8643
8527
 
8644
8528
  function createVMWithProps(element, Ctor, props) {
8645
- var vm = createVM(element, Ctor, {
8529
+ var vm = createVM(element, Ctor, renderer, {
8646
8530
  mode: 'open',
8647
8531
  owner: null,
8648
8532
  tagName: element.tagName.toLowerCase(),
8649
8533
  hydrated: true
8650
8534
  });
8651
8535
 
8652
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
8653
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
8536
+ for (var _i31 = 0, _Object$entries2 = Object.entries(props); _i31 < _Object$entries2.length; _i31++) {
8537
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i31], 2),
8654
8538
  key = _Object$entries2$_i[0],
8655
8539
  value = _Object$entries2$_i[1];
8656
8540
 
@@ -8762,7 +8646,7 @@
8762
8646
  hydrateComponent(_assertThisInitialized(_this6), Ctor, {});
8763
8647
  hydratedCustomElements.add(_assertThisInitialized(_this6));
8764
8648
  } else {
8765
- createVM(_assertThisInitialized(_this6), Ctor, {
8649
+ createVM(_assertThisInitialized(_this6), Ctor, renderer, {
8766
8650
  mode: 'open',
8767
8651
  owner: null,
8768
8652
  tagName: _this6.tagName
@@ -8874,7 +8758,7 @@
8874
8758
  throw new TypeError("\"createElement\" function expects an \"is\" option with a valid component constructor.");
8875
8759
  }
8876
8760
 
8877
- var UpgradableConstructor = getUpgradableConstructor(sel);
8761
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
8878
8762
  var wasComponentUpgraded = false; // the custom element from the registry is expecting an upgrade callback
8879
8763
 
8880
8764
  /**
@@ -8885,7 +8769,7 @@
8885
8769
  */
8886
8770
 
8887
8771
  var element = new UpgradableConstructor(function (elm) {
8888
- createVM(elm, Ctor, {
8772
+ createVM(elm, Ctor, renderer, {
8889
8773
  tagName: sel,
8890
8774
  mode: options.mode !== 'closed' ? 'open' : 'closed',
8891
8775
  owner: null
@@ -8982,7 +8866,7 @@
8982
8866
  });
8983
8867
  freeze(LightningElement);
8984
8868
  seal(LightningElement.prototype);
8985
- /* version: 2.13.4 */
8869
+ /* version: 2.14.2 */
8986
8870
 
8987
8871
  exports.LightningElement = LightningElement;
8988
8872
  exports.__unstable__ProfilerControl = profilerControl;
@@ -9001,6 +8885,7 @@
9001
8885
  exports.registerComponent = registerComponent;
9002
8886
  exports.registerDecorators = registerDecorators;
9003
8887
  exports.registerTemplate = registerTemplate;
8888
+ exports.renderer = renderer;
9004
8889
  exports.sanitizeAttribute = sanitizeAttribute;
9005
8890
  exports.setFeatureFlag = setFeatureFlag;
9006
8891
  exports.setFeatureFlagForTest = setFeatureFlagForTest;