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