lwc 2.14.1 → 2.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +449 -534
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +449 -533
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +393 -478
  5. package/dist/engine-dom/iife/es5/engine-dom.js +561 -700
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +498 -642
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +449 -533
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +393 -478
  11. package/dist/engine-dom/umd/es5/engine-dom.js +561 -700
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +498 -642
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +332 -437
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +332 -438
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  28. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  29. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  31. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  35. package/package.json +7 -7
@@ -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.14.1";
368
+ var LWC_VERSION = "2.14.2";
369
369
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
370
- /** version: 2.14.1 */
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.14.1 */
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') {
@@ -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,28 +4687,30 @@ 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
4716
  switch (type) {
@@ -4885,10 +4720,10 @@ var LWC = (function (exports) {
4885
4720
  {
4886
4721
  // Slot content is removed to trigger slotchange event when removing slot.
4887
4722
  // Only required for synthetic shadow.
4888
- var removeChildren = sel === 'slot' && vnode.owner.shadowMode === 1
4723
+ var shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1
4889
4724
  /* Synthetic */
4890
4725
  ;
4891
- unmountVNodes(vnode.children, elm, removeChildren);
4726
+ unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);
4892
4727
  break;
4893
4728
  }
4894
4729
 
@@ -4906,16 +4741,16 @@ var LWC = (function (exports) {
4906
4741
  }
4907
4742
  }
4908
4743
 
4909
- function unmountVNodes(vnodes, parent) {
4910
- var doRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4911
- var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
4912
- 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;
4913
4748
 
4914
4749
  for (; start < end; ++start) {
4915
4750
  var ch = vnodes[start];
4916
4751
 
4917
4752
  if (isVNode(ch)) {
4918
- unmount(ch, parent, doRemove);
4753
+ unmount(ch, parent, renderer, doRemove);
4919
4754
  }
4920
4755
  }
4921
4756
  }
@@ -4933,22 +4768,26 @@ var LWC = (function (exports) {
4933
4768
  } // Set the scope token class for *.scoped.css styles
4934
4769
 
4935
4770
 
4936
- function setScopeTokenClassIfNecessary(elm, owner) {
4771
+ function setScopeTokenClassIfNecessary(elm, owner, renderer) {
4937
4772
  var cmpTemplate = owner.cmpTemplate,
4938
4773
  context = owner.context;
4774
+ var getClassList = renderer.getClassList;
4939
4775
  var token = cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken;
4940
4776
 
4941
4777
  if (!isUndefined$1(token) && context.hasScopedStyles) {
4942
- 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);
4943
4781
  }
4944
4782
  }
4945
4783
 
4946
- function linkNodeToShadow(elm, owner) {
4784
+ function linkNodeToShadow(elm, owner, renderer) {
4947
4785
  var renderRoot = owner.renderRoot,
4948
4786
  renderMode = owner.renderMode,
4949
- 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
4950
4789
 
4951
- if (isSyntheticShadowDefined$1) {
4790
+ if (isSyntheticShadowDefined) {
4952
4791
  if (shadowMode === 1
4953
4792
  /* Synthetic */
4954
4793
  || renderMode === 0
@@ -4959,63 +4798,64 @@ var LWC = (function (exports) {
4959
4798
  }
4960
4799
  }
4961
4800
 
4962
- function updateTextContent(vnode) {
4801
+ function updateTextContent(vnode, renderer) {
4963
4802
  var elm = vnode.elm,
4964
4803
  text = vnode.text;
4804
+ var setText = renderer.setText;
4965
4805
 
4966
4806
  if (process.env.NODE_ENV !== 'production') {
4967
4807
  unlockDomMutation();
4968
4808
  }
4969
4809
 
4970
- setText$1(elm, text);
4810
+ setText(elm, text);
4971
4811
 
4972
4812
  if (process.env.NODE_ENV !== 'production') {
4973
4813
  lockDomMutation();
4974
4814
  }
4975
4815
  }
4976
4816
 
4977
- function insertNode(node, parent, anchor) {
4817
+ function insertNode(node, parent, anchor, renderer) {
4978
4818
  if (process.env.NODE_ENV !== 'production') {
4979
4819
  unlockDomMutation();
4980
4820
  }
4981
4821
 
4982
- insert$1(node, parent, anchor);
4822
+ renderer.insert(node, parent, anchor);
4983
4823
 
4984
4824
  if (process.env.NODE_ENV !== 'production') {
4985
4825
  lockDomMutation();
4986
4826
  }
4987
4827
  }
4988
4828
 
4989
- function removeNode(node, parent) {
4829
+ function removeNode(node, parent, renderer) {
4990
4830
  if (process.env.NODE_ENV !== 'production') {
4991
4831
  unlockDomMutation();
4992
4832
  }
4993
4833
 
4994
- remove$1(node, parent);
4834
+ renderer.remove(node, parent);
4995
4835
 
4996
4836
  if (process.env.NODE_ENV !== 'production') {
4997
4837
  lockDomMutation();
4998
4838
  }
4999
4839
  }
5000
4840
 
5001
- function patchElementPropsAndAttrs$1(oldVnode, vnode) {
4841
+ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
5002
4842
  if (isNull(oldVnode)) {
5003
- applyEventListeners(vnode);
5004
- applyStaticClassAttribute(vnode);
5005
- applyStaticStyleAttribute(vnode);
4843
+ applyEventListeners(vnode, renderer);
4844
+ applyStaticClassAttribute(vnode, renderer);
4845
+ applyStaticStyleAttribute(vnode, renderer);
5006
4846
  } // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if
5007
4847
  // value is set before type=radio.
5008
4848
 
5009
4849
 
5010
- patchClassAttribute(oldVnode, vnode);
5011
- patchStyleAttribute(oldVnode, vnode);
5012
- patchAttributes(oldVnode, vnode);
5013
- patchProps(oldVnode, vnode);
4850
+ patchClassAttribute(oldVnode, vnode, renderer);
4851
+ patchStyleAttribute(oldVnode, vnode, renderer);
4852
+ patchAttributes(oldVnode, vnode, renderer);
4853
+ patchProps(oldVnode, vnode, renderer);
5014
4854
  }
5015
4855
 
5016
- function fallbackElmHook(elm, vnode) {
4856
+ function fallbackElmHook(elm, vnode, renderer) {
5017
4857
  var owner = vnode.owner;
5018
- setScopeTokenClassIfNecessary(elm, owner);
4858
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
5019
4859
 
5020
4860
  if (owner.shadowMode === 1
5021
4861
  /* Synthetic */
@@ -5082,7 +4922,7 @@ var LWC = (function (exports) {
5082
4922
  }
5083
4923
  }
5084
4924
 
5085
- function createViewModelHook(elm, vnode) {
4925
+ function createViewModelHook(elm, vnode, renderer) {
5086
4926
  var vm = getAssociatedVMIfPresent(elm); // There is a possibility that a custom element is registered under tagName, in which case, the
5087
4927
  // initialization is already carry on, and there is nothing else to do here since this hook is
5088
4928
  // called right after invoking `document.createElement`.
@@ -5095,7 +4935,7 @@ var LWC = (function (exports) {
5095
4935
  mode = vnode.mode,
5096
4936
  ctor = vnode.ctor,
5097
4937
  owner = vnode.owner;
5098
- setScopeTokenClassIfNecessary(elm, owner);
4938
+ setScopeTokenClassIfNecessary(elm, owner, renderer);
5099
4939
 
5100
4940
  if (owner.shadowMode === 1
5101
4941
  /* Synthetic */
@@ -5108,7 +4948,7 @@ var LWC = (function (exports) {
5108
4948
  }
5109
4949
  }
5110
4950
 
5111
- vm = createVM(elm, ctor, {
4951
+ vm = createVM(elm, ctor, renderer, {
5112
4952
  mode: mode,
5113
4953
  owner: owner,
5114
4954
  tagName: sel
@@ -5127,8 +4967,8 @@ var LWC = (function (exports) {
5127
4967
  var oldSlots = vm.cmpSlots;
5128
4968
  var cmpSlots = vm.cmpSlots = create(null);
5129
4969
 
5130
- for (var _i13 = 0, len = children.length; _i13 < len; _i13 += 1) {
5131
- var vnode = children[_i13];
4970
+ for (var _i12 = 0, len = children.length; _i12 < len; _i12 += 1) {
4971
+ var vnode = children[_i12];
5132
4972
 
5133
4973
  if (isNull(vnode)) {
5134
4974
  continue;
@@ -5154,8 +4994,8 @@ var LWC = (function (exports) {
5154
4994
  return;
5155
4995
  }
5156
4996
 
5157
- for (var _i14 = 0, _len4 = oldKeys.length; _i14 < _len4; _i14 += 1) {
5158
- var key = oldKeys[_i14];
4997
+ for (var _i13 = 0, _len4 = oldKeys.length; _i13 < _len4; _i13 += 1) {
4998
+ var key = oldKeys[_i13];
5159
4999
 
5160
5000
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
5161
5001
  markComponentAsDirty(vm);
@@ -5205,7 +5045,7 @@ var LWC = (function (exports) {
5205
5045
  return map;
5206
5046
  }
5207
5047
 
5208
- function updateDynamicChildren(oldCh, newCh, parent) {
5048
+ function updateDynamicChildren(oldCh, newCh, parent, renderer) {
5209
5049
  var oldStartIdx = 0;
5210
5050
  var newStartIdx = 0;
5211
5051
  var oldEndIdx = oldCh.length - 1;
@@ -5231,23 +5071,23 @@ var LWC = (function (exports) {
5231
5071
  } else if (!isVNode(newEndVnode)) {
5232
5072
  newEndVnode = newCh[--newEndIdx];
5233
5073
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
5234
- patch(oldStartVnode, newStartVnode);
5074
+ patch(oldStartVnode, newStartVnode, renderer);
5235
5075
  oldStartVnode = oldCh[++oldStartIdx];
5236
5076
  newStartVnode = newCh[++newStartIdx];
5237
5077
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
5238
- patch(oldEndVnode, newEndVnode);
5078
+ patch(oldEndVnode, newEndVnode, renderer);
5239
5079
  oldEndVnode = oldCh[--oldEndIdx];
5240
5080
  newEndVnode = newCh[--newEndIdx];
5241
5081
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
5242
5082
  // Vnode moved right
5243
- patch(oldStartVnode, newEndVnode);
5244
- insertNode(oldStartVnode.elm, parent, nextSibling$1(oldEndVnode.elm));
5083
+ patch(oldStartVnode, newEndVnode, renderer);
5084
+ insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
5245
5085
  oldStartVnode = oldCh[++oldStartIdx];
5246
5086
  newEndVnode = newCh[--newEndIdx];
5247
5087
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
5248
5088
  // Vnode moved left
5249
- patch(oldEndVnode, newStartVnode);
5250
- insertNode(newStartVnode.elm, parent, oldStartVnode.elm);
5089
+ patch(oldEndVnode, newStartVnode, renderer);
5090
+ insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
5251
5091
  oldEndVnode = oldCh[--oldEndIdx];
5252
5092
  newStartVnode = newCh[++newStartIdx];
5253
5093
  } else {
@@ -5259,7 +5099,7 @@ var LWC = (function (exports) {
5259
5099
 
5260
5100
  if (isUndefined$1(idxInOld)) {
5261
5101
  // New element
5262
- mount(newStartVnode, parent, oldStartVnode.elm);
5102
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
5263
5103
  newStartVnode = newCh[++newStartIdx];
5264
5104
  } else {
5265
5105
  elmToMove = oldCh[idxInOld];
@@ -5267,9 +5107,9 @@ var LWC = (function (exports) {
5267
5107
  if (isVNode(elmToMove)) {
5268
5108
  if (elmToMove.sel !== newStartVnode.sel) {
5269
5109
  // New element
5270
- mount(newStartVnode, parent, oldStartVnode.elm);
5110
+ mount(newStartVnode, parent, renderer, oldStartVnode.elm);
5271
5111
  } else {
5272
- 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.
5273
5113
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
5274
5114
  // so we only care about the `oldCh` object inside this function.
5275
5115
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -5282,7 +5122,7 @@ var LWC = (function (exports) {
5282
5122
 
5283
5123
 
5284
5124
  oldCh[idxInOld] = undefined;
5285
- insertNode(elmToMove.elm, parent, oldStartVnode.elm);
5125
+ insertNode(elmToMove.elm, parent, oldStartVnode.elm, renderer);
5286
5126
  }
5287
5127
  }
5288
5128
 
@@ -5295,35 +5135,35 @@ var LWC = (function (exports) {
5295
5135
  if (oldStartIdx > oldEndIdx) {
5296
5136
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
5297
5137
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
5298
- var _i15 = newEndIdx;
5138
+ var _i14 = newEndIdx;
5299
5139
  var n;
5300
5140
 
5301
5141
  do {
5302
- n = newCh[++_i15];
5303
- } while (!isVNode(n) && _i15 < newChEnd);
5142
+ n = newCh[++_i14];
5143
+ } while (!isVNode(n) && _i14 < newChEnd);
5304
5144
 
5305
5145
  before = isVNode(n) ? n.elm : null;
5306
- mountVNodes(newCh, parent, before, newStartIdx, newEndIdx + 1);
5146
+ mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
5307
5147
  } else {
5308
- unmountVNodes(oldCh, parent, true, oldStartIdx, oldEndIdx + 1);
5148
+ unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);
5309
5149
  }
5310
5150
  }
5311
5151
  }
5312
5152
 
5313
- function updateStaticChildren(c1, c2, parent) {
5153
+ function updateStaticChildren(c1, c2, parent, renderer) {
5314
5154
  var c1Length = c1.length;
5315
5155
  var c2Length = c2.length;
5316
5156
 
5317
5157
  if (c1Length === 0) {
5318
5158
  // the old list is empty, we can directly insert anything new
5319
- mountVNodes(c2, parent, null);
5159
+ mountVNodes(c2, parent, renderer, null);
5320
5160
  return;
5321
5161
  }
5322
5162
 
5323
5163
  if (c2Length === 0) {
5324
5164
  // the old list is nonempty and the new list is empty so we can directly remove all old nodes
5325
5165
  // this is the case in which the dynamic children of an if-directive should be removed
5326
- unmountVNodes(c1, parent, true);
5166
+ unmountVNodes(c1, parent, renderer, true);
5327
5167
  return;
5328
5168
  } // if the old list is not empty, the new list MUST have the same
5329
5169
  // amount of nodes, that's why we call this static children
@@ -5331,22 +5171,22 @@ var LWC = (function (exports) {
5331
5171
 
5332
5172
  var anchor = null;
5333
5173
 
5334
- for (var _i16 = c2Length - 1; _i16 >= 0; _i16 -= 1) {
5335
- var n1 = c1[_i16];
5336
- var n2 = c2[_i16];
5174
+ for (var _i15 = c2Length - 1; _i15 >= 0; _i15 -= 1) {
5175
+ var n1 = c1[_i15];
5176
+ var n2 = c2[_i15];
5337
5177
 
5338
5178
  if (n2 !== n1) {
5339
5179
  if (isVNode(n1)) {
5340
5180
  if (isVNode(n2)) {
5341
5181
  // both vnodes are equivalent, and we just need to patch them
5342
- patch(n1, n2);
5182
+ patch(n1, n2, renderer);
5343
5183
  anchor = n2.elm;
5344
5184
  } else {
5345
5185
  // removing the old vnode since the new one is null
5346
- unmount(n1, parent, true);
5186
+ unmount(n1, parent, renderer, true);
5347
5187
  }
5348
5188
  } else if (isVNode(n2)) {
5349
- mount(n2, parent, anchor);
5189
+ mount(n2, parent, renderer, anchor);
5350
5190
  anchor = n2.elm;
5351
5191
  }
5352
5192
  }
@@ -5881,7 +5721,11 @@ var LWC = (function (exports) {
5881
5721
  var elm = vm.elm,
5882
5722
  context = vm.context,
5883
5723
  renderMode = vm.renderMode,
5884
- 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;
5885
5729
  var newStylesheets = template.stylesheets,
5886
5730
  newStylesheetToken = template.stylesheetToken;
5887
5731
  var isSyntheticShadow = renderMode === 1
@@ -5900,11 +5744,11 @@ var LWC = (function (exports) {
5900
5744
 
5901
5745
  if (!isUndefined$1(oldToken)) {
5902
5746
  if (oldHasTokenInClass) {
5903
- getClassList$1(elm).remove(makeHostToken(oldToken));
5747
+ getClassList(elm).remove(makeHostToken(oldToken));
5904
5748
  }
5905
5749
 
5906
5750
  if (oldHasTokenInAttribute) {
5907
- removeAttribute$1(elm, makeHostToken(oldToken));
5751
+ removeAttribute(elm, makeHostToken(oldToken));
5908
5752
  }
5909
5753
  } // Apply the new template styling token to the host element, if the new template has any
5910
5754
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
@@ -5917,12 +5761,12 @@ var LWC = (function (exports) {
5917
5761
 
5918
5762
  if (!isUndefined$1(newToken)) {
5919
5763
  if (hasScopedStyles) {
5920
- getClassList$1(elm).add(makeHostToken(newToken));
5764
+ getClassList(elm).add(makeHostToken(newToken));
5921
5765
  newHasTokenInClass = true;
5922
5766
  }
5923
5767
 
5924
5768
  if (isSyntheticShadow) {
5925
- setAttribute$1(elm, makeHostToken(newToken), '');
5769
+ setAttribute(elm, makeHostToken(newToken), '');
5926
5770
  newHasTokenInAttribute = true;
5927
5771
  }
5928
5772
  } // Update the styling tokens present on the context object.
@@ -5937,8 +5781,8 @@ var LWC = (function (exports) {
5937
5781
  var content = [];
5938
5782
  var root;
5939
5783
 
5940
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5941
- var stylesheet = stylesheets[_i17];
5784
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
5785
+ var stylesheet = stylesheets[_i16];
5942
5786
 
5943
5787
  if (isArray$1(stylesheet)) {
5944
5788
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -6043,17 +5887,20 @@ var LWC = (function (exports) {
6043
5887
 
6044
5888
  function createStylesheet(vm, stylesheets) {
6045
5889
  var renderMode = vm.renderMode,
6046
- shadowMode = vm.shadowMode;
5890
+ shadowMode = vm.shadowMode,
5891
+ _vm$renderer2 = vm.renderer,
5892
+ ssr = _vm$renderer2.ssr,
5893
+ insertStylesheet = _vm$renderer2.insertStylesheet;
6047
5894
 
6048
5895
  if (renderMode === 1
6049
5896
  /* Shadow */
6050
5897
  && shadowMode === 1
6051
5898
  /* Synthetic */
6052
5899
  ) {
6053
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
6054
- insertStylesheet$1(stylesheets[_i18]);
5900
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5901
+ insertStylesheet(stylesheets[_i17]);
6055
5902
  }
6056
- } else if (ssr$1 || vm.hydrated) {
5903
+ } else if (ssr || vm.hydrated) {
6057
5904
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
6058
5905
  // This works in the client, because the stylesheets are created, and cached in the VM
6059
5906
  // the first time the VM renders.
@@ -6066,8 +5913,8 @@ var LWC = (function (exports) {
6066
5913
 
6067
5914
  var target = isNull(root) ? undefined : root.shadowRoot;
6068
5915
 
6069
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6070
- insertStylesheet$1(stylesheets[_i19], target);
5916
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
5917
+ insertStylesheet(stylesheets[_i18], target);
6071
5918
  }
6072
5919
  }
6073
5920
 
@@ -6343,8 +6190,8 @@ var LWC = (function (exports) {
6343
6190
  var stylesheets = template.stylesheets;
6344
6191
 
6345
6192
  if (!isUndefined$1(stylesheets)) {
6346
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
6347
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
6193
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6194
+ if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
6348
6195
  return true;
6349
6196
  }
6350
6197
  }
@@ -6565,8 +6412,8 @@ var LWC = (function (exports) {
6565
6412
  assert.isTrue(isObject(service), "Invalid service declaration, ".concat(service, ": service must be an object"));
6566
6413
  }
6567
6414
 
6568
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
6569
- var hookName = hooks[_i21];
6415
+ for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
6416
+ var hookName = hooks[_i20];
6570
6417
 
6571
6418
  if (hookName in service) {
6572
6419
  var l = Services[hookName];
@@ -6589,8 +6436,8 @@ var LWC = (function (exports) {
6589
6436
  def = vm.def,
6590
6437
  context = vm.context;
6591
6438
 
6592
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
6593
- 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);
6594
6441
  }
6595
6442
  }
6596
6443
  /*
@@ -6706,7 +6553,7 @@ var LWC = (function (exports) {
6706
6553
  return ancestor;
6707
6554
  }
6708
6555
 
6709
- function createVM(elm, ctor, options) {
6556
+ function createVM(elm, ctor, renderer, options) {
6710
6557
  var mode = options.mode,
6711
6558
  owner = options.owner,
6712
6559
  tagName = options.tagName,
@@ -6753,9 +6600,10 @@ var LWC = (function (exports) {
6753
6600
  renderRoot: null,
6754
6601
  callHook: callHook,
6755
6602
  setHook: setHook,
6756
- getHook: getHook
6603
+ getHook: getHook,
6604
+ renderer: renderer
6757
6605
  };
6758
- vm.shadowMode = computeShadowMode(vm);
6606
+ vm.shadowMode = computeShadowMode(vm, renderer);
6759
6607
  vm.tro = getTemplateReactiveObserver(vm);
6760
6608
 
6761
6609
  if (process.env.NODE_ENV !== 'production') {
@@ -6780,11 +6628,13 @@ var LWC = (function (exports) {
6780
6628
  return vm;
6781
6629
  }
6782
6630
 
6783
- function computeShadowMode(vm) {
6631
+ function computeShadowMode(vm, renderer) {
6784
6632
  var def = vm.def;
6633
+ var isSyntheticShadowDefined = renderer.isSyntheticShadowDefined,
6634
+ isNativeShadowDefined = renderer.isNativeShadowDefined;
6785
6635
  var shadowMode;
6786
6636
 
6787
- if (isSyntheticShadowDefined$1) {
6637
+ if (isSyntheticShadowDefined) {
6788
6638
  if (def.renderMode === 0
6789
6639
  /* Light */
6790
6640
  ) {
@@ -6793,7 +6643,7 @@ var LWC = (function (exports) {
6793
6643
  shadowMode = 0
6794
6644
  /* Native */
6795
6645
  ;
6796
- } else if (isNativeShadowDefined$1) {
6646
+ } else if (isNativeShadowDefined) {
6797
6647
  // Not combined with above condition because @lwc/features only supports identifiers in
6798
6648
  // the if-condition.
6799
6649
  if (runtimeFlags.ENABLE_MIXED_SHADOW_MODE) {
@@ -6884,7 +6734,8 @@ var LWC = (function (exports) {
6884
6734
 
6885
6735
  function patchShadowRoot(vm, newCh) {
6886
6736
  var renderRoot = vm.renderRoot,
6887
- oldCh = vm.children; // caching the new children collection
6737
+ oldCh = vm.children,
6738
+ renderer = vm.renderer; // caching the new children collection
6888
6739
 
6889
6740
  vm.children = newCh;
6890
6741
 
@@ -6899,7 +6750,7 @@ var LWC = (function (exports) {
6899
6750
  , vm);
6900
6751
  }, function () {
6901
6752
  // job
6902
- patchChildren(oldCh, newCh, renderRoot);
6753
+ patchChildren(oldCh, newCh, renderRoot, renderer);
6903
6754
  }, function () {
6904
6755
  // post
6905
6756
  logOperationEnd(2
@@ -6921,9 +6772,10 @@ var LWC = (function (exports) {
6921
6772
  }
6922
6773
 
6923
6774
  function runRenderedCallback(vm) {
6924
- var renderedCallback = vm.def.renderedCallback;
6775
+ var renderedCallback = vm.def.renderedCallback,
6776
+ ssr = vm.renderer.ssr;
6925
6777
 
6926
- if (isTrue(ssr$1)) {
6778
+ if (isTrue(ssr)) {
6927
6779
  return;
6928
6780
  }
6929
6781
 
@@ -6960,19 +6812,19 @@ var LWC = (function (exports) {
6960
6812
  });
6961
6813
  rehydrateQueue = []; // reset to a new queue
6962
6814
 
6963
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
6964
- var vm = vms[_i23];
6815
+ for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
6816
+ var vm = vms[_i22];
6965
6817
 
6966
6818
  try {
6967
6819
  rehydrate(vm);
6968
6820
  } catch (error) {
6969
- if (_i23 + 1 < len) {
6821
+ if (_i22 + 1 < len) {
6970
6822
  // pieces of the queue are still pending to be rehydrated, those should have priority
6971
6823
  if (rehydrateQueue.length === 0) {
6972
6824
  addCallbackToNextTick(flushRehydrationQueue);
6973
6825
  }
6974
6826
 
6975
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
6827
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
6976
6828
  } // we need to end the measure before throwing.
6977
6829
 
6978
6830
 
@@ -7076,8 +6928,8 @@ var LWC = (function (exports) {
7076
6928
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
7077
6929
  // inserted in reserved order.
7078
6930
 
7079
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
7080
- 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:
7081
6933
  // * when there is an error during the construction phase, and an error
7082
6934
  // boundary picks it, there is a possibility that the VCustomElement
7083
6935
  // is not properly initialized, and therefore is should be ignored.
@@ -7111,8 +6963,8 @@ var LWC = (function (exports) {
7111
6963
 
7112
6964
 
7113
6965
  function recursivelyDisconnectChildren(vnodes) {
7114
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
7115
- var vnode = vnodes[_i25];
6966
+ for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
6967
+ var vnode = vnodes[_i24];
7116
6968
 
7117
6969
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
7118
6970
  switch (vnode.type) {
@@ -7141,13 +6993,14 @@ var LWC = (function (exports) {
7141
6993
 
7142
6994
  function resetComponentRoot(vm) {
7143
6995
  var children = vm.children,
7144
- renderRoot = vm.renderRoot;
6996
+ renderRoot = vm.renderRoot,
6997
+ remove = vm.renderer.remove;
7145
6998
 
7146
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
7147
- var child = children[_i26];
6999
+ for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
7000
+ var child = children[_i25];
7148
7001
 
7149
7002
  if (!isNull(child) && !isUndefined$1(child.elm)) {
7150
- remove$1(child.elm, renderRoot);
7003
+ remove(child.elm, renderRoot);
7151
7004
  }
7152
7005
  }
7153
7006
 
@@ -7157,7 +7010,9 @@ var LWC = (function (exports) {
7157
7010
  }
7158
7011
 
7159
7012
  function scheduleRehydration(vm) {
7160
- if (isTrue(ssr$1) || isTrue(vm.isScheduled)) {
7013
+ var ssr = vm.renderer.ssr;
7014
+
7015
+ if (isTrue(ssr) || isTrue(vm.isScheduled)) {
7161
7016
  return;
7162
7017
  }
7163
7018
 
@@ -7344,7 +7199,8 @@ var LWC = (function (exports) {
7344
7199
  var elm = vm.elm,
7345
7200
  _vm$context = vm.context,
7346
7201
  wiredConnecting = _vm$context.wiredConnecting,
7347
- 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
7348
7204
 
7349
7205
  ArrayPush$1.call(wiredConnecting, function () {
7350
7206
  // This event is responsible for connecting the host element with another
@@ -7364,7 +7220,7 @@ var LWC = (function (exports) {
7364
7220
  ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
7365
7221
  }
7366
7222
  });
7367
- dispatchEvent$1(elm, contextRegistrationEvent);
7223
+ dispatchEvent(elm, contextRegistrationEvent);
7368
7224
  });
7369
7225
  }
7370
7226
 
@@ -7518,8 +7374,8 @@ var LWC = (function (exports) {
7518
7374
  function connectWireAdapters(vm) {
7519
7375
  var wiredConnecting = vm.context.wiredConnecting;
7520
7376
 
7521
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
7522
- wiredConnecting[_i27]();
7377
+ for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
7378
+ wiredConnecting[_i26]();
7523
7379
  }
7524
7380
  }
7525
7381
 
@@ -7527,8 +7383,8 @@ var LWC = (function (exports) {
7527
7383
  var wiredDisconnecting = vm.context.wiredDisconnecting;
7528
7384
  runWithBoundaryProtection(vm, vm, noop, function () {
7529
7385
  // job
7530
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
7531
- wiredDisconnecting[_i28]();
7386
+ for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
7387
+ wiredDisconnecting[_i27]();
7532
7388
  }
7533
7389
  }, noop);
7534
7390
  }
@@ -7628,95 +7484,107 @@ var LWC = (function (exports) {
7628
7484
  function hydrateVM(vm) {
7629
7485
  var children = renderComponent(vm);
7630
7486
  vm.children = children;
7631
- var parentNode = vm.renderRoot;
7632
- hydrateChildren(getFirstChild$1(parentNode), children, parentNode, vm);
7487
+ var parentNode = vm.renderRoot,
7488
+ getFirstChild = vm.renderer.getFirstChild;
7489
+ hydrateChildren(getFirstChild(parentNode), children, parentNode, vm);
7633
7490
  runRenderedCallback(vm);
7634
7491
  }
7635
7492
 
7636
- function hydrateNode(node, vnode) {
7493
+ function hydrateNode(node, vnode, renderer) {
7494
+ var _a, _b;
7495
+
7637
7496
  var hydratedNode;
7638
7497
 
7639
7498
  switch (vnode.type) {
7640
7499
  case 0
7641
7500
  /* Text */
7642
7501
  :
7643
- hydratedNode = hydrateText(node, vnode);
7502
+ // VText has no special capability, fallback to the owner's renderer
7503
+ hydratedNode = hydrateText(node, vnode, renderer);
7644
7504
  break;
7645
7505
 
7646
7506
  case 1
7647
7507
  /* Comment */
7648
7508
  :
7649
- hydratedNode = hydrateComment(node, vnode);
7509
+ // VComment has no special capability, fallback to the owner's renderer
7510
+ hydratedNode = hydrateComment(node, vnode, renderer);
7650
7511
  break;
7651
7512
 
7652
7513
  case 2
7653
7514
  /* Element */
7654
7515
  :
7655
- hydratedNode = hydrateElement(node, vnode);
7516
+ hydratedNode = hydrateElement(node, vnode, (_a = vnode.data.renderer) !== null && _a !== void 0 ? _a : renderer);
7656
7517
  break;
7657
7518
 
7658
7519
  case 3
7659
7520
  /* CustomElement */
7660
7521
  :
7661
- hydratedNode = hydrateCustomElement(node, vnode);
7522
+ hydratedNode = hydrateCustomElement(node, vnode, (_b = vnode.data.renderer) !== null && _b !== void 0 ? _b : renderer);
7662
7523
  break;
7663
7524
  }
7664
7525
 
7665
- return nextSibling$1(hydratedNode);
7526
+ return renderer.nextSibling(hydratedNode);
7666
7527
  }
7667
7528
 
7668
- function hydrateText(node, vnode) {
7529
+ function hydrateText(node, vnode, renderer) {
7669
7530
  var _a;
7670
7531
 
7671
7532
  if (!hasCorrectNodeType(vnode, node, 3
7672
7533
  /* TEXT */
7673
- )) {
7674
- return handleMismatch(node, vnode);
7534
+ , renderer)) {
7535
+ return handleMismatch(node, vnode, renderer);
7675
7536
  }
7676
7537
 
7677
7538
  if (process.env.NODE_ENV !== 'production') {
7678
- var nodeValue = getProperty$1(node, 'nodeValue');
7539
+ var _getProperty = renderer.getProperty;
7540
+
7541
+ var nodeValue = _getProperty(node, 'nodeValue');
7679
7542
 
7680
7543
  if (nodeValue !== vnode.text && !(nodeValue === "\u200D" && vnode.text === '')) {
7681
7544
  logWarn('Hydration mismatch: text values do not match, will recover from the difference', vnode.owner);
7682
7545
  }
7683
7546
  }
7684
7547
 
7685
- 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);
7686
7550
  vnode.elm = node;
7687
7551
  return node;
7688
7552
  }
7689
7553
 
7690
- function hydrateComment(node, vnode) {
7554
+ function hydrateComment(node, vnode, renderer) {
7691
7555
  var _a;
7692
7556
 
7693
7557
  if (!hasCorrectNodeType(vnode, node, 8
7694
7558
  /* COMMENT */
7695
- )) {
7696
- return handleMismatch(node, vnode);
7559
+ , renderer)) {
7560
+ return handleMismatch(node, vnode, renderer);
7697
7561
  }
7698
7562
 
7699
7563
  if (process.env.NODE_ENV !== 'production') {
7700
- var nodeValue = getProperty$1(node, 'nodeValue');
7564
+ var _getProperty2 = renderer.getProperty;
7565
+
7566
+ var nodeValue = _getProperty2(node, 'nodeValue');
7701
7567
 
7702
7568
  if (nodeValue !== vnode.text) {
7703
7569
  logWarn('Hydration mismatch: comment values do not match, will recover from the difference', vnode.owner);
7704
7570
  }
7705
7571
  }
7706
7572
 
7707
- 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);
7708
7575
  vnode.elm = node;
7709
7576
  return node;
7710
7577
  }
7711
7578
 
7712
- function hydrateElement(elm, vnode) {
7579
+ function hydrateElement(elm, vnode, renderer) {
7713
7580
  if (!hasCorrectNodeType(vnode, elm, 1
7714
7581
  /* ELEMENT */
7715
- ) || !isMatchingElement(vnode, elm)) {
7716
- return handleMismatch(elm, vnode);
7582
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
7583
+ return handleMismatch(elm, vnode, renderer);
7717
7584
  }
7718
7585
 
7719
7586
  vnode.elm = elm;
7587
+ var owner = vnode.owner;
7720
7588
  var context = vnode.data.context;
7721
7589
  var isDomManual = Boolean(!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
7722
7590
  /* Manual */
@@ -7726,42 +7594,44 @@ var LWC = (function (exports) {
7726
7594
  // it may be that this element has lwc:inner-html, we need to diff and in case are the same,
7727
7595
  // remove the innerHTML from props so it reuses the existing dom elements.
7728
7596
  var props = vnode.data.props;
7597
+ var _getProperty3 = renderer.getProperty;
7729
7598
 
7730
7599
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
7731
- if (getProperty$1(elm, 'innerHTML') === props.innerHTML) {
7600
+ if (_getProperty3(elm, 'innerHTML') === props.innerHTML) {
7732
7601
  // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
7733
7602
  vnode.data = Object.assign(Object.assign({}, vnode.data), {
7734
7603
  props: cloneAndOmitKey(props, 'innerHTML')
7735
7604
  });
7736
7605
  } else {
7737
7606
  if (process.env.NODE_ENV !== 'production') {
7738
- 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);
7739
7608
  }
7740
7609
  }
7741
7610
  }
7742
7611
  }
7743
7612
 
7744
- patchElementPropsAndAttrs(vnode);
7613
+ patchElementPropsAndAttrs(vnode, renderer);
7745
7614
 
7746
7615
  if (!isDomManual) {
7747
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vnode.owner);
7616
+ var _getFirstChild = renderer.getFirstChild;
7617
+ hydrateChildren(_getFirstChild(elm), vnode.children, elm, owner);
7748
7618
  }
7749
7619
 
7750
7620
  return elm;
7751
7621
  }
7752
7622
 
7753
- function hydrateCustomElement(elm, vnode) {
7623
+ function hydrateCustomElement(elm, vnode, renderer) {
7754
7624
  if (!hasCorrectNodeType(vnode, elm, 1
7755
7625
  /* ELEMENT */
7756
- ) || !isMatchingElement(vnode, elm)) {
7757
- return handleMismatch(elm, vnode);
7626
+ , renderer) || !isMatchingElement(vnode, elm, renderer)) {
7627
+ return handleMismatch(elm, vnode, renderer);
7758
7628
  }
7759
7629
 
7760
7630
  var sel = vnode.sel,
7761
7631
  mode = vnode.mode,
7762
7632
  ctor = vnode.ctor,
7763
7633
  owner = vnode.owner;
7764
- var vm = createVM(elm, ctor, {
7634
+ var vm = createVM(elm, ctor, renderer, {
7765
7635
  mode: mode,
7766
7636
  owner: owner,
7767
7637
  tagName: sel,
@@ -7770,7 +7640,7 @@ var LWC = (function (exports) {
7770
7640
  vnode.elm = elm;
7771
7641
  vnode.vm = vm;
7772
7642
  allocateChildren(vnode, vm);
7773
- patchElementPropsAndAttrs(vnode); // Insert hook section:
7643
+ patchElementPropsAndAttrs(vnode, renderer); // Insert hook section:
7774
7644
 
7775
7645
  if (process.env.NODE_ENV !== 'production') {
7776
7646
  assert.isTrue(vm.state === 0
@@ -7783,9 +7653,10 @@ var LWC = (function (exports) {
7783
7653
  if (vm.renderMode !== 0
7784
7654
  /* Light */
7785
7655
  ) {
7786
- // 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.
7787
7657
  // Note: for Light DOM, this is handled while hydrating the VM
7788
- hydrateChildren(getFirstChild$1(elm), vnode.children, elm, vm);
7658
+
7659
+ hydrateChildren(_getFirstChild2(elm), vnode.children, elm, vm);
7789
7660
  }
7790
7661
 
7791
7662
  hydrateVM(vm);
@@ -7796,13 +7667,14 @@ var LWC = (function (exports) {
7796
7667
  var hasWarned = false;
7797
7668
  var nextNode = node;
7798
7669
  var anchor = null;
7670
+ var renderer = owner.renderer;
7799
7671
 
7800
- for (var _i29 = 0; _i29 < children.length; _i29++) {
7801
- var childVnode = children[_i29];
7672
+ for (var _i28 = 0; _i28 < children.length; _i28++) {
7673
+ var childVnode = children[_i28];
7802
7674
 
7803
7675
  if (!isNull(childVnode)) {
7804
7676
  if (nextNode) {
7805
- nextNode = hydrateNode(nextNode, childVnode);
7677
+ nextNode = hydrateNode(nextNode, childVnode, renderer);
7806
7678
  anchor = childVnode.elm;
7807
7679
  } else {
7808
7680
  hasMismatch = true;
@@ -7814,7 +7686,7 @@ var LWC = (function (exports) {
7814
7686
  }
7815
7687
  }
7816
7688
 
7817
- mount(childVnode, parentNode, anchor);
7689
+ mount(childVnode, parentNode, renderer, anchor);
7818
7690
  anchor = childVnode.elm;
7819
7691
  }
7820
7692
  }
@@ -7827,38 +7699,40 @@ var LWC = (function (exports) {
7827
7699
  if (!hasWarned) {
7828
7700
  logError("Hydration mismatch: incorrect number of rendered nodes. Server rendered more nodes than the client.", owner);
7829
7701
  }
7830
- }
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;
7831
7709
 
7832
7710
  do {
7833
7711
  var current = nextNode;
7834
- nextNode = nextSibling$1(nextNode);
7835
- removeNode(current, parentNode);
7712
+ nextNode = _nextSibling(nextNode);
7713
+ removeNode(current, parentNode, renderer);
7836
7714
  } while (nextNode);
7837
7715
  }
7838
7716
  }
7839
7717
 
7840
- function handleMismatch(node, vnode, msg) {
7718
+ function handleMismatch(node, vnode, renderer) {
7841
7719
  hasMismatch = true;
7842
-
7843
- if (!isUndefined$1(msg)) {
7844
- if (process.env.NODE_ENV !== 'production') {
7845
- logError(msg, vnode.owner);
7846
- }
7847
- }
7848
-
7849
- var parentNode = getProperty$1(node, 'parentNode');
7850
- mount(vnode, parentNode, node);
7851
- 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);
7852
7724
  return vnode.elm;
7853
7725
  }
7854
7726
 
7855
- function patchElementPropsAndAttrs(vnode) {
7856
- applyEventListeners(vnode);
7857
- patchProps(null, vnode);
7727
+ function patchElementPropsAndAttrs(vnode, renderer) {
7728
+ applyEventListeners(vnode, renderer);
7729
+ patchProps(null, vnode, renderer);
7858
7730
  }
7859
7731
 
7860
- function hasCorrectNodeType(vnode, node, nodeType) {
7861
- 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) {
7862
7736
  if (process.env.NODE_ENV !== 'production') {
7863
7737
  logError('Hydration mismatch: incorrect node type received', vnode.owner);
7864
7738
  }
@@ -7869,37 +7743,43 @@ var LWC = (function (exports) {
7869
7743
  return true;
7870
7744
  }
7871
7745
 
7872
- function isMatchingElement(vnode, elm) {
7873
- 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()) {
7874
7750
  if (process.env.NODE_ENV !== 'production') {
7875
- 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);
7876
7752
  }
7877
7753
 
7878
7754
  return false;
7879
7755
  }
7880
7756
 
7881
- var hasIncompatibleAttrs = validateAttrs(vnode, elm);
7882
- var hasIncompatibleClass = validateClassAttr(vnode, elm);
7883
- 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);
7884
7760
  return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
7885
7761
  }
7886
7762
 
7887
- function validateAttrs(vnode, elm) {
7763
+ function validateAttrs(vnode, elm, renderer) {
7888
7764
  var _vnode$data$attrs = vnode.data.attrs,
7889
7765
  attrs = _vnode$data$attrs === void 0 ? {} : _vnode$data$attrs;
7890
7766
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
7891
7767
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
7892
7768
 
7893
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
7894
- 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),
7895
7771
  attrName = _Object$entries$_i[0],
7896
7772
  attrValue = _Object$entries$_i[1];
7897
7773
 
7898
- var elmAttrValue = getAttribute$1(elm, attrName);
7774
+ var owner = vnode.owner;
7775
+ var _getAttribute = renderer.getAttribute;
7776
+
7777
+ var elmAttrValue = _getAttribute(elm, attrName);
7899
7778
 
7900
7779
  if (String(attrValue) !== elmAttrValue) {
7901
7780
  if (process.env.NODE_ENV !== 'production') {
7902
- 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);
7903
7783
  }
7904
7784
 
7905
7785
  nodesAreCompatible = false;
@@ -7909,20 +7789,22 @@ var LWC = (function (exports) {
7909
7789
  return nodesAreCompatible;
7910
7790
  }
7911
7791
 
7912
- function validateClassAttr(vnode, elm) {
7792
+ function validateClassAttr(vnode, elm, renderer) {
7913
7793
  var _vnode$data = vnode.data,
7914
7794
  className = _vnode$data.className,
7915
7795
  classMap = _vnode$data.classMap;
7796
+ var getProperty = renderer.getProperty,
7797
+ getClassList = renderer.getClassList;
7916
7798
  var nodesAreCompatible = true;
7917
7799
  var vnodeClassName;
7918
7800
 
7919
- if (!isUndefined$1(className) && String(className) !== getProperty$1(elm, 'className')) {
7801
+ if (!isUndefined$1(className) && String(className) !== getProperty(elm, 'className')) {
7920
7802
  // className is used when class is bound to an expr.
7921
7803
  nodesAreCompatible = false;
7922
7804
  vnodeClassName = className;
7923
7805
  } else if (!isUndefined$1(classMap)) {
7924
7806
  // classMap is used when class is set to static value.
7925
- var classList = getClassList$1(elm);
7807
+ var classList = getClassList(elm);
7926
7808
  var computedClassName = ''; // all classes from the vnode should be in the element.classList
7927
7809
 
7928
7810
  for (var name in classMap) {
@@ -7942,18 +7824,19 @@ var LWC = (function (exports) {
7942
7824
 
7943
7825
  if (!nodesAreCompatible) {
7944
7826
  if (process.env.NODE_ENV !== 'production') {
7945
- 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);
7946
7828
  }
7947
7829
  }
7948
7830
 
7949
7831
  return nodesAreCompatible;
7950
7832
  }
7951
7833
 
7952
- function validateStyleAttr(vnode, elm) {
7834
+ function validateStyleAttr(vnode, elm, renderer) {
7953
7835
  var _vnode$data2 = vnode.data,
7954
7836
  style = _vnode$data2.style,
7955
7837
  styleDecls = _vnode$data2.styleDecls;
7956
- var elmStyle = getAttribute$1(elm, 'style') || '';
7838
+ var getAttribute = renderer.getAttribute;
7839
+ var elmStyle = getAttribute(elm, 'style') || '';
7957
7840
  var vnodeStyle;
7958
7841
  var nodesAreCompatible = true;
7959
7842
 
@@ -7964,8 +7847,8 @@ var LWC = (function (exports) {
7964
7847
  var parsedVnodeStyle = parseStyleText(elmStyle);
7965
7848
  var expectedStyle = []; // styleMap is used when style is set to static value.
7966
7849
 
7967
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
7968
- 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),
7969
7852
  prop = _styleDecls$_i2[0],
7970
7853
  value = _styleDecls$_i2[1],
7971
7854
  important = _styleDecls$_i2[2];
@@ -7991,7 +7874,8 @@ var LWC = (function (exports) {
7991
7874
 
7992
7875
  if (!nodesAreCompatible) {
7993
7876
  if (process.env.NODE_ENV !== 'production') {
7994
- 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);
7995
7879
  }
7996
7880
  }
7997
7881
 
@@ -8066,7 +7950,7 @@ var LWC = (function (exports) {
8066
7950
  _step3;
8067
7951
 
8068
7952
  try {
8069
- var _loop3 = function _loop3() {
7953
+ var _loop2 = function _loop2() {
8070
7954
  var prop = _step3.value;
8071
7955
  var originalArrayMethod = getOriginalArrayMethod(prop);
8072
7956
 
@@ -8078,7 +7962,7 @@ var LWC = (function (exports) {
8078
7962
  };
8079
7963
 
8080
7964
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
8081
- _loop3();
7965
+ _loop2();
8082
7966
  }
8083
7967
  } catch (err) {
8084
7968
  _iterator3.e(err);
@@ -8099,7 +7983,7 @@ var LWC = (function (exports) {
8099
7983
  _step4;
8100
7984
 
8101
7985
  try {
8102
- var _loop4 = function _loop4() {
7986
+ var _loop3 = function _loop3() {
8103
7987
  var prop = _step4.value;
8104
7988
  var value = tmpl[prop];
8105
7989
  defineProperty(tmpl, prop, {
@@ -8119,7 +8003,7 @@ var LWC = (function (exports) {
8119
8003
  };
8120
8004
 
8121
8005
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
8122
- _loop4();
8006
+ _loop3();
8123
8007
  }
8124
8008
  } catch (err) {
8125
8009
  _iterator4.e(err);
@@ -8169,7 +8053,7 @@ var LWC = (function (exports) {
8169
8053
 
8170
8054
  return ctor;
8171
8055
  }
8172
- /* version: 2.14.1 */
8056
+ /* version: 2.14.2 */
8173
8057
 
8174
8058
  /*
8175
8059
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8348,7 +8232,7 @@ var LWC = (function (exports) {
8348
8232
  try {
8349
8233
  // dereference HTMLElement global because babel wraps globals in compat mode with a
8350
8234
  // _wrapNativeSuper()
8351
- // 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
8352
8236
  // get wrapped by babel.
8353
8237
  var HTMLElementAlias = HTMLElement; // In case we use compat mode with a modern browser, the compat mode transformation
8354
8238
  // invokes the DOM api with an .apply() or .call() to initialize any DOM api sub-classing,
@@ -8424,6 +8308,11 @@ var LWC = (function (exports) {
8424
8308
  }
8425
8309
 
8426
8310
  var ssr = false;
8311
+
8312
+ function isHydrating() {
8313
+ return hydrating;
8314
+ }
8315
+
8427
8316
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
8428
8317
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
8429
8318
 
@@ -8569,75 +8458,47 @@ var LWC = (function (exports) {
8569
8458
  }
8570
8459
 
8571
8460
  var HTMLElementExported = HTMLElementConstructor;
8572
- /*
8573
- * Copyright (c) 2020, salesforce.com, inc.
8574
- * All rights reserved.
8575
- * SPDX-License-Identifier: MIT
8576
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8577
- */
8578
-
8579
- setAssertInstanceOfHTMLElement(assertInstanceOfHTMLElement);
8580
- setAttachShadow(attachShadow);
8581
- setCreateComment(createComment);
8582
- setCreateElement(createElement$1);
8583
- setCreateText(createText);
8584
- setDefineCustomElement(defineCustomElement);
8585
- setDispatchEvent(dispatchEvent);
8586
- setGetAttribute(getAttribute);
8587
- setGetBoundingClientRect(getBoundingClientRect);
8588
- setGetChildNodes(getChildNodes);
8589
- setGetChildren(getChildren);
8590
- setGetClassList(getClassList);
8591
- setGetCustomElement(getCustomElement);
8592
- setGetElementsByClassName(getElementsByClassName);
8593
- setGetElementsByTagName(getElementsByTagName);
8594
- setGetFirstChild(getFirstChild);
8595
- setGetFirstElementChild(getFirstElementChild);
8596
- setGetLastChild(getLastChild);
8597
- setGetLastElementChild(getLastElementChild);
8598
- setGetProperty(getProperty);
8599
- setHTMLElement(HTMLElementExported);
8600
- setInsert(insert);
8601
- setIsConnected(isConnected);
8602
- setIsNativeShadowDefined(isNativeShadowDefined);
8603
- setIsSyntheticShadowDefined(isSyntheticShadowDefined);
8604
- setNextSibling(nextSibling);
8605
- setQuerySelector(querySelector);
8606
- setQuerySelectorAll(querySelectorAll);
8607
- setRemove(remove);
8608
- setRemoveAttribute(removeAttribute);
8609
- setRemoveEventListener(removeEventListener);
8610
- setSetAttribute(setAttribute);
8611
- setSetCSSStyleProperty(setCSSStyleProperty);
8612
- setSetProperty(setProperty);
8613
- setSetText(setText);
8614
- setSsr(ssr);
8615
- setAddEventListener(addEventListener);
8616
- setInsertStylesheet(insertStylesheet);
8617
- /*
8618
- * Copyright (c) 2018, salesforce.com, inc.
8619
- * All rights reserved.
8620
- * SPDX-License-Identifier: MIT
8621
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8622
- */
8623
- // @ts-ignore
8624
-
8625
- if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
8626
- window.addEventListener('test-dummy-flag', function () {
8627
- var hasFlag = false;
8628
-
8629
- if (runtimeFlags.DUMMY_TEST_FLAG) {
8630
- hasFlag = true;
8631
- }
8632
-
8633
- window.dispatchEvent(new CustomEvent('has-dummy-flag', {
8634
- detail: {
8635
- package: '@lwc/engine-dom',
8636
- hasFlag: hasFlag
8637
- }
8638
- }));
8639
- });
8640
- }
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
+ };
8641
8502
  /*
8642
8503
  * Copyright (c) 2018, salesforce.com, inc.
8643
8504
  * All rights reserved.
@@ -8645,7 +8506,6 @@ var LWC = (function (exports) {
8645
8506
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
8646
8507
  */
8647
8508
 
8648
-
8649
8509
  function resetShadowRootAndLightDom(element, Ctor) {
8650
8510
  if (element.shadowRoot) {
8651
8511
  var shadowRoot = element.shadowRoot;
@@ -8663,15 +8523,15 @@ var LWC = (function (exports) {
8663
8523
  }
8664
8524
 
8665
8525
  function createVMWithProps(element, Ctor, props) {
8666
- var vm = createVM(element, Ctor, {
8526
+ var vm = createVM(element, Ctor, renderer, {
8667
8527
  mode: 'open',
8668
8528
  owner: null,
8669
8529
  tagName: element.tagName.toLowerCase(),
8670
8530
  hydrated: true
8671
8531
  });
8672
8532
 
8673
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
8674
- 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),
8675
8535
  key = _Object$entries2$_i[0],
8676
8536
  value = _Object$entries2$_i[1];
8677
8537
 
@@ -8783,7 +8643,7 @@ var LWC = (function (exports) {
8783
8643
  hydrateComponent(_assertThisInitialized(_this6), Ctor, {});
8784
8644
  hydratedCustomElements.add(_assertThisInitialized(_this6));
8785
8645
  } else {
8786
- createVM(_assertThisInitialized(_this6), Ctor, {
8646
+ createVM(_assertThisInitialized(_this6), Ctor, renderer, {
8787
8647
  mode: 'open',
8788
8648
  owner: null,
8789
8649
  tagName: _this6.tagName
@@ -8895,7 +8755,7 @@ var LWC = (function (exports) {
8895
8755
  throw new TypeError("\"createElement\" function expects an \"is\" option with a valid component constructor.");
8896
8756
  }
8897
8757
 
8898
- var UpgradableConstructor = getUpgradableConstructor(sel);
8758
+ var UpgradableConstructor = getUpgradableConstructor(sel, renderer);
8899
8759
  var wasComponentUpgraded = false; // the custom element from the registry is expecting an upgrade callback
8900
8760
 
8901
8761
  /**
@@ -8906,7 +8766,7 @@ var LWC = (function (exports) {
8906
8766
  */
8907
8767
 
8908
8768
  var element = new UpgradableConstructor(function (elm) {
8909
- createVM(elm, Ctor, {
8769
+ createVM(elm, Ctor, renderer, {
8910
8770
  tagName: sel,
8911
8771
  mode: options.mode !== 'closed' ? 'open' : 'closed',
8912
8772
  owner: null
@@ -9003,7 +8863,7 @@ var LWC = (function (exports) {
9003
8863
  });
9004
8864
  freeze(LightningElement);
9005
8865
  seal(LightningElement.prototype);
9006
- /* version: 2.14.1 */
8866
+ /* version: 2.14.2 */
9007
8867
 
9008
8868
  exports.LightningElement = LightningElement;
9009
8869
  exports.__unstable__ProfilerControl = profilerControl;
@@ -9022,6 +8882,7 @@ var LWC = (function (exports) {
9022
8882
  exports.registerComponent = registerComponent;
9023
8883
  exports.registerDecorators = registerDecorators;
9024
8884
  exports.registerTemplate = registerTemplate;
8885
+ exports.renderer = renderer;
9025
8886
  exports.sanitizeAttribute = sanitizeAttribute;
9026
8887
  exports.setFeatureFlag = setFeatureFlag;
9027
8888
  exports.setFeatureFlagForTest = setFeatureFlagForTest;