@primer-io/primer-js 1.4.0 → 1.4.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.4.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 866d867: feat(primer-js): render main slot while loading
8
+
9
+ ## 1.4.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 768bba3: fixed loading events and abortPaymentCreation
14
+
3
15
  ## 1.4.0
4
16
 
5
17
  ### Minor Changes
@@ -2,35 +2,6 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "readme": "",
4
4
  "modules": [
5
- {
6
- "kind": "javascript-module",
7
- "path": "e2e/utils.ts",
8
- "declarations": [
9
- {
10
- "kind": "variable",
11
- "name": "test",
12
- "default": "chromaticTest"
13
- }
14
- ],
15
- "exports": [
16
- {
17
- "kind": "js",
18
- "name": "expect",
19
- "declaration": {
20
- "name": "expect",
21
- "package": "@chromatic-com/playwright"
22
- }
23
- },
24
- {
25
- "kind": "js",
26
- "name": "test",
27
- "declaration": {
28
- "name": "test",
29
- "module": "e2e/utils.ts"
30
- }
31
- }
32
- ]
33
- },
34
5
  {
35
6
  "kind": "javascript-module",
36
7
  "path": "dist/primer-loader.js",
@@ -80,7 +51,7 @@
80
51
  {
81
52
  "kind": "variable",
82
53
  "name": "ye",
83
- "default": "class extends v{constructor(){super();this.customStyles=\"\";this.clientToken=\"\";this.options={};this.disableLoader=!1;this._jsInitialized=!1;this.previousLoadingState=!0;this.hasAssignedContent=!1;this._loadingTimeoutId=null;this._eventListenerController=null;this._classObserver=null;this.locale=rr(La());this.onSlotChange=e=>{let i=e.target.assignedNodes({flatten:!0});this.hasAssignedContent=i.length>0,this.requestUpdate()};this.sdkContextController=new ya(this),this.primerEventsController=new er(this),this.styleProcessingController=new fa(this),this.vaultManagerController=new Mr(this),this.headlessSdkController=new Ya(this)}set jsInitialized(e){this.requestUpdate(),this._jsInitialized=e}get jsInitialized(){return this._jsInitialized}get primerJS(){return this.headlessSdkController?.primerJSInstance??void 0}connectedCallback(){super.connectedCallback(),this.sdkContextController.setEventsController(this.primerEventsController),this._eventListenerController=new AbortController,document.addEventListener(\"primer:card-submit\",this.handleExternalCardSubmit.bind(this),{signal:this._eventListenerController.signal}),document.addEventListener(\"primer:vault-submit\",this.handleExternalVaultSubmit.bind(this),{signal:this._eventListenerController.signal}),document.addEventListener(\"primer:show-other-payments-toggle\",this.handleExternalShowOtherPaymentsToggle.bind(this),{signal:this._eventListenerController.signal}),this._classObserver=new MutationObserver(()=>{this.requestUpdate()}),this._classObserver.observe(this,{attributes:!0,attributeFilter:[\"class\"]})}attributeChangedCallback(e,r,i){e===Qm.CUSTOM_STYLES?this.styleProcessingController.processCustomStyles(i):super.attributeChangedCallback(e,r,i)}disconnectedCallback(){this._loadingTimeoutId&&(window.clearTimeout(this._loadingTimeoutId),this._loadingTimeoutId=null),this.sdkContextController.contextProvider.value.sdkState?.isLoading&&this.sdkContextController.setSdkState({isLoading:!1}),this._eventListenerController&&(this._eventListenerController.abort(),this._eventListenerController=null),this._classObserver&&(this._classObserver.disconnect(),this._classObserver=null),super.disconnectedCallback()}willUpdate(e){e.has(\"options\")&&(this.options?.locale&&(Cn(this.options?.locale)?this.locale=rr(this.options?.locale):P.warn(\"\\u{1F30E}\\u2757 Unsupported locale provided:\",this.options?.locale,\"- Falling back to system locale\")),vn(this.locale))}updated(){let e=getComputedStyle(this);this.sdkContextController.setComputedStyles(e),this.checkLoadingStateChange()}handleExternalCardSubmit(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:card-submit\",e.detail)}handleExternalVaultSubmit(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:vault-submit\",e.detail)}handleExternalShowOtherPaymentsToggle(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:show-other-payments-toggle\",e.detail)}checkLoadingStateChange(){let e=this.sdkContextController.contextProvider.value.sdkState.isLoading||!1;if(this.previousLoadingState&&!e){this.jsInitialized=!0,Q({eventName:\"CHECKOUT_FLOW_STARTED\"});let r=De.getSdkInitStartTime(),i=r?Date.now()-r:void 0;Qn(i)}this.previousLoadingState=e,e&&!this._loadingTimeoutId?this._loadingTimeoutId=window.setTimeout(()=>{this.sdkContextController.contextProvider.value.sdkState.isLoading&&(P.warn(\"Loading timeout in component, forcing completion\"),this.sdkContextController.setSdkState({isLoading:!1}),this.jsInitialized=!0),this._loadingTimeoutId=null},1e4):!e&&this._loadingTimeoutId&&(window.clearTimeout(this._loadingTimeoutId),this._loadingTimeoutId=null)}render(){let e=this.sdkContextController.contextProvider.value.sdkState,r=e.isLoading,i=e.primerJsError,n=!r&&!i;return u` ${k(r,()=>y)} ${k(i,()=>u`<primer-checkout-error></primer-checkout-error>`)} ${k(n,()=>u`<slot name=\"main\" @slotchange=${this.onSlotChange}></slot>${k(this.hasAssignedContent,()=>y,()=>u`<primer-main></primer-main>`)} `,()=>y)} `}addEventListener(e,r,i){super.addEventListener(e,r,i)}removeEventListener(e,r,i){super.removeEventListener(e,r,i)}}"
54
+ "default": "class extends v{constructor(){super();this.customStyles=\"\";this.clientToken=\"\";this.options={};this.disableLoader=!1;this._jsInitialized=!1;this.previousLoadingState=!0;this.hasAssignedContent=!1;this._loadingTimeoutId=null;this._eventListenerController=null;this._classObserver=null;this.locale=rr(La());this.onSlotChange=e=>{let i=e.target.assignedNodes({flatten:!0});this.hasAssignedContent=i.length>0,this.requestUpdate()};this.sdkContextController=new ya(this),this.primerEventsController=new er(this),this.styleProcessingController=new fa(this),this.vaultManagerController=new Mr(this),this.headlessSdkController=new Ya(this)}set jsInitialized(e){this.requestUpdate(),this._jsInitialized=e}get jsInitialized(){return this._jsInitialized}get primerJS(){return this.headlessSdkController?.primerJSInstance??void 0}connectedCallback(){super.connectedCallback(),this.sdkContextController.setEventsController(this.primerEventsController),this._eventListenerController=new AbortController,document.addEventListener(\"primer:card-submit\",this.handleExternalCardSubmit.bind(this),{signal:this._eventListenerController.signal}),document.addEventListener(\"primer:vault-submit\",this.handleExternalVaultSubmit.bind(this),{signal:this._eventListenerController.signal}),document.addEventListener(\"primer:show-other-payments-toggle\",this.handleExternalShowOtherPaymentsToggle.bind(this),{signal:this._eventListenerController.signal}),this._classObserver=new MutationObserver(()=>{this.requestUpdate()}),this._classObserver.observe(this,{attributes:!0,attributeFilter:[\"class\"]})}attributeChangedCallback(e,r,i){e===Qm.CUSTOM_STYLES?this.styleProcessingController.processCustomStyles(i):super.attributeChangedCallback(e,r,i)}disconnectedCallback(){this._loadingTimeoutId&&(window.clearTimeout(this._loadingTimeoutId),this._loadingTimeoutId=null),this.sdkContextController.contextProvider.value.sdkState?.isLoading&&this.sdkContextController.setSdkState({isLoading:!1}),this._eventListenerController&&(this._eventListenerController.abort(),this._eventListenerController=null),this._classObserver&&(this._classObserver.disconnect(),this._classObserver=null),super.disconnectedCallback()}willUpdate(e){e.has(\"options\")&&(this.options?.locale&&(Cn(this.options?.locale)?this.locale=rr(this.options?.locale):P.warn(\"\\u{1F30E}\\u2757 Unsupported locale provided:\",this.options?.locale,\"- Falling back to system locale\")),vn(this.locale))}updated(){let e=getComputedStyle(this);this.sdkContextController.setComputedStyles(e),this.checkLoadingStateChange()}handleExternalCardSubmit(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:card-submit\",e.detail)}handleExternalVaultSubmit(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:vault-submit\",e.detail)}handleExternalShowOtherPaymentsToggle(e){this._eventListenerController?.signal.aborted||e.target!==this&&this.primerEventsController.dispatchEvent(\"primer:show-other-payments-toggle\",e.detail)}checkLoadingStateChange(){let e=this.sdkContextController.contextProvider.value.sdkState.isLoading||!1;if(this.previousLoadingState&&!e){this.jsInitialized=!0,Q({eventName:\"CHECKOUT_FLOW_STARTED\"});let r=De.getSdkInitStartTime(),i=r?Date.now()-r:void 0;Qn(i)}this.previousLoadingState=e,e&&!this._loadingTimeoutId?this._loadingTimeoutId=window.setTimeout(()=>{this.sdkContextController.contextProvider.value.sdkState.isLoading&&(P.warn(\"Loading timeout in component, forcing completion\"),this.sdkContextController.setSdkState({isLoading:!1}),this.jsInitialized=!0),this._loadingTimeoutId=null},1e4):!e&&this._loadingTimeoutId&&(window.clearTimeout(this._loadingTimeoutId),this._loadingTimeoutId=null)}render(){let e=this.sdkContextController.contextProvider.value.sdkState,r=e.isLoading,i=e.primerJsError,n=!r&&!i;return u` ${k(i,()=>u`<primer-checkout-error></primer-checkout-error>`)}<slot name=\"main\" @slotchange=${this.onSlotChange}></slot>${k(this.hasAssignedContent||!n,()=>y,()=>u`<primer-main></primer-main>`)} `}addEventListener(e,r,i){super.addEventListener(e,r,i)}removeEventListener(e,r,i){super.removeEventListener(e,r,i)}}"
84
55
  },
85
56
  {
86
57
  "kind": "function",
@@ -331,7 +302,7 @@
331
302
  {
332
303
  "kind": "variable",
333
304
  "name": "kt",
334
- "default": "class extends v{constructor(){super(...arguments);this.hasAssignedContent=!1;this.onSlotChange=e=>{let i=e.target.assignedNodes({flatten:!0});this.hasAssignedContent=i.length>0,this.requestUpdate()}}render(){return this.primerContext?.sdkState?.isSuccessful?u`<slot name=\"checkout-complete\"><primer-checkout-complete></primer-checkout-complete></slot>`:u`<slot name=\"payments\" @slotchange=${this.onSlotChange}></slot>${k(this.hasAssignedContent,()=>y,()=>u`<div class=${X({\"primer-is-processing\":!!this.primerContext?.sdkState?.isProcessing})} ><primer-vault-manager></primer-vault-manager><primer-show-other-payments><div slot=\"other-payments\" class=\"primer-main-list\">${this.primerContext?.paymentMethods?.map(e=>u`<primer-payment-method type=${e.type} ?disabled=${this.primerContext?.clientOptions?.disabledPayments===!0} ></primer-payment-method>`)}</div></primer-show-other-payments><primer-error-message-container></primer-error-message-container></div>`)} `}}"
305
+ "default": "class extends v{constructor(){super(...arguments);this.hasAssignedContent=!1;this.onSlotChange=e=>{let i=e.target.assignedNodes({flatten:!0});this.hasAssignedContent=i.length>0,this.requestUpdate()}}render(){return this.primerContext?.sdkState?.isLoading?y:this.primerContext?.sdkState?.isSuccessful?u`<slot name=\"checkout-complete\"><primer-checkout-complete></primer-checkout-complete></slot>`:u`<slot name=\"payments\" @slotchange=${this.onSlotChange}></slot>${k(this.hasAssignedContent,()=>y,()=>u`<div class=${X({\"primer-is-processing\":!!this.primerContext?.sdkState?.isProcessing})} ><primer-vault-manager></primer-vault-manager><primer-show-other-payments><div slot=\"other-payments\" class=\"primer-main-list\">${this.primerContext?.paymentMethods?.map(e=>u`<primer-payment-method type=${e.type} ?disabled=${this.primerContext?.clientOptions?.disabledPayments===!0} ></primer-payment-method>`)}</div></primer-show-other-payments><primer-error-message-container></primer-error-message-container></div>`)} `}}"
335
306
  },
336
307
  {
337
308
  "kind": "function",
@@ -789,6 +760,35 @@
789
760
  }
790
761
  ]
791
762
  },
763
+ {
764
+ "kind": "javascript-module",
765
+ "path": "e2e/utils.ts",
766
+ "declarations": [
767
+ {
768
+ "kind": "variable",
769
+ "name": "test",
770
+ "default": "chromaticTest"
771
+ }
772
+ ],
773
+ "exports": [
774
+ {
775
+ "kind": "js",
776
+ "name": "expect",
777
+ "declaration": {
778
+ "name": "expect",
779
+ "package": "@chromatic-com/playwright"
780
+ }
781
+ },
782
+ {
783
+ "kind": "js",
784
+ "name": "test",
785
+ "declaration": {
786
+ "name": "test",
787
+ "module": "e2e/utils.ts"
788
+ }
789
+ }
790
+ ]
791
+ },
792
792
  {
793
793
  "kind": "javascript-module",
794
794
  "path": "src/consts.ts",
@@ -1664,61 +1664,6 @@
1664
1664
  }
1665
1665
  ]
1666
1666
  },
1667
- {
1668
- "kind": "javascript-module",
1669
- "path": "e2e/mocks/shared.ts",
1670
- "declarations": [
1671
- {
1672
- "kind": "function",
1673
- "name": "mockConfigurationCall",
1674
- "parameters": [
1675
- {
1676
- "name": "page",
1677
- "type": {
1678
- "text": "Page"
1679
- }
1680
- },
1681
- {
1682
- "name": "config",
1683
- "type": {
1684
- "text": "unknown"
1685
- }
1686
- }
1687
- ]
1688
- },
1689
- {
1690
- "kind": "function",
1691
- "name": "mockDemoUrl",
1692
- "parameters": [
1693
- {
1694
- "name": "primerCheckoutOptions",
1695
- "optional": true,
1696
- "type": {
1697
- "text": "PrimerCheckoutOptions"
1698
- }
1699
- }
1700
- ]
1701
- }
1702
- ],
1703
- "exports": [
1704
- {
1705
- "kind": "js",
1706
- "name": "mockConfigurationCall",
1707
- "declaration": {
1708
- "name": "mockConfigurationCall",
1709
- "module": "e2e/mocks/shared.ts"
1710
- }
1711
- },
1712
- {
1713
- "kind": "js",
1714
- "name": "mockDemoUrl",
1715
- "declaration": {
1716
- "name": "mockDemoUrl",
1717
- "module": "e2e/mocks/shared.ts"
1718
- }
1719
- }
1720
- ]
1721
- },
1722
1667
  {
1723
1668
  "kind": "javascript-module",
1724
1669
  "path": "dist/chunks/ar.4ZFBST5B.js",
@@ -2852,6 +2797,61 @@
2852
2797
  }
2853
2798
  ]
2854
2799
  },
2800
+ {
2801
+ "kind": "javascript-module",
2802
+ "path": "e2e/mocks/shared.ts",
2803
+ "declarations": [
2804
+ {
2805
+ "kind": "function",
2806
+ "name": "mockConfigurationCall",
2807
+ "parameters": [
2808
+ {
2809
+ "name": "page",
2810
+ "type": {
2811
+ "text": "Page"
2812
+ }
2813
+ },
2814
+ {
2815
+ "name": "config",
2816
+ "type": {
2817
+ "text": "unknown"
2818
+ }
2819
+ }
2820
+ ]
2821
+ },
2822
+ {
2823
+ "kind": "function",
2824
+ "name": "mockDemoUrl",
2825
+ "parameters": [
2826
+ {
2827
+ "name": "primerCheckoutOptions",
2828
+ "optional": true,
2829
+ "type": {
2830
+ "text": "PrimerCheckoutOptions"
2831
+ }
2832
+ }
2833
+ ]
2834
+ }
2835
+ ],
2836
+ "exports": [
2837
+ {
2838
+ "kind": "js",
2839
+ "name": "mockConfigurationCall",
2840
+ "declaration": {
2841
+ "name": "mockConfigurationCall",
2842
+ "module": "e2e/mocks/shared.ts"
2843
+ }
2844
+ },
2845
+ {
2846
+ "kind": "js",
2847
+ "name": "mockDemoUrl",
2848
+ "declaration": {
2849
+ "name": "mockDemoUrl",
2850
+ "module": "e2e/mocks/shared.ts"
2851
+ }
2852
+ }
2853
+ ]
2854
+ },
2855
2855
  {
2856
2856
  "kind": "javascript-module",
2857
2857
  "path": "src/__tests__/setup.ts",
@@ -4822,7 +4822,7 @@
4822
4822
  {
4823
4823
  "kind": "variable",
4824
4824
  "name": "cssLoaderStyles",
4825
- "default": "` @keyframes primer-css-spinner-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Hide primer-main while primer components are loading to prevent FOUC Only check for undefined primer-* elements, ignoring browser extensions */ primer-checkout:has(primer-main:not(:defined), primer-checkout-error:not(:defined)) > * { visibility: hidden; } primer-checkout:not([js-initialized]) { display: block; position: relative; width: 100%; min-height: 64px; } primer-checkout:not([js-initialized]):not([loader-disabled])::after { content: \"\"; display: block; box-sizing: border-box; position: absolute; inset: 0; margin: auto; width: var(--primer-size-xlarge); height: var(--primer-size-xlarge); border-radius: 50%; border: 3px solid #f5f5f5; border-top-color: var(--primer-color-loader); animation: primer-css-spinner-rotate 1.2s linear infinite; z-index: 9999; } `",
4825
+ "default": "` @keyframes primer-css-spinner-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Hide primer-main and primer-checkout-error while they are loading to prevent FOUC Only check for undefined primer-* elements, ignoring browser extensions */ primer-main:not(:defined), primer-checkout-error:not(:defined) { visibility: hidden; } primer-checkout:not([js-initialized]) [slot=\"main\"] { display: none; } primer-checkout:not([js-initialized]) { display: block; position: relative; width: 100%; min-height: 64px; } primer-checkout:not([js-initialized]):not([loader-disabled])::after { content: \"\"; display: block; box-sizing: border-box; position: absolute; inset: 0; margin: auto; width: var(--primer-size-xlarge); height: var(--primer-size-xlarge); border-radius: 50%; border: 3px solid #f5f5f5; border-top-color: var(--primer-color-loader); animation: primer-css-spinner-rotate 1.2s linear infinite; z-index: 9999; } `",
4826
4826
  "description": "This module exports the CSS loader styles as a string for inline injection.\nThese styles are injected into the page before any JavaScript loads,\nensuring the loading indicator appears immediately."
4827
4827
  }
4828
4828
  ],
@@ -5266,7 +5266,7 @@ declare class PrimerMainComponent extends LitElement {
5266
5266
  */
5267
5267
  private onSlotChange;
5268
5268
  primerContext?: ContextType;
5269
- render(): import("lit-html").TemplateResult<1>;
5269
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
5270
5270
  }
5271
5271
  declare global {
5272
5272
  interface HTMLElementTagNameMap {