@ticketlayer/elements 0.3.3 → 1.0.0
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/README.md +3 -2
- package/dist/cjs/{index-BpfoKd9Q.js → index-DanPUX0s.js} +1 -1
- package/dist/cjs/index.cjs.js +2 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/ticket-selector-BYVL13k_.js +3623 -0
- package/dist/cjs/ticketlayer-elements.cjs.js +2 -2
- package/dist/cjs/tl-buy-modal.cjs.entry.js +4 -4
- package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -71
- package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +62 -31
- package/dist/cjs/tl-cart-badge.cjs.entry.js +75 -62
- package/dist/cjs/tl-cart-drawer.cjs.entry.js +52 -24
- package/dist/cjs/tl-cart.cjs.entry.js +72 -98
- package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +52 -30
- package/dist/cjs/tl-event-card.cjs.entry.js +44 -105
- package/dist/cjs/tl-event-list.cjs.entry.js +73 -36
- package/dist/cjs/tl-login.cjs.entry.js +75 -141
- package/dist/cjs/tl-my-orders.cjs.entry.js +53 -92
- package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +205 -641
- package/dist/cjs/tl-order-confirmation.cjs.entry.js +72 -105
- package/dist/cjs/tl-order-tickets_2.cjs.entry.js +50 -76
- package/dist/cjs/tl-promo-code.cjs.entry.js +51 -47
- package/dist/cjs/tl-seat-map.cjs.entry.js +4 -4
- package/dist/cjs/web-query-Ce73jB4k.js +16 -0
- package/dist/collection/components/tl-buy-modal/tl-buy-modal.css +12 -19
- package/dist/collection/components/tl-buy-modal/tl-buy-modal.js +2 -2
- package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.css +41 -4
- package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -76
- package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.css +2 -2
- package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
- package/dist/collection/components/tl-cart/tl-cart.css +52 -51
- package/dist/collection/components/tl-cart/tl-cart.js +82 -101
- package/dist/collection/components/tl-cart-badge/tl-cart-badge.css +11 -11
- package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
- package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.css +6 -6
- package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
- package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.css +2 -2
- package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.js +61 -29
- package/dist/collection/components/tl-event-card/event-card-adapter.js +11 -23
- package/dist/collection/components/tl-event-card/tl-event-card.css +22 -22
- package/dist/collection/components/tl-event-card/tl-event-card.js +51 -84
- package/dist/collection/components/tl-event-list/tl-event-list.css +17 -17
- package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
- package/dist/collection/components/tl-login/tl-login.css +26 -26
- package/dist/collection/components/tl-login/tl-login.js +83 -147
- package/dist/collection/components/tl-my-orders/tl-my-orders.css +40 -40
- package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
- package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.css +54 -65
- package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
- package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.css +38 -38
- package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -113
- package/dist/collection/components/tl-order-tickets/tl-order-tickets.css +9 -9
- package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
- package/dist/collection/components/tl-promo-code/tl-promo-code.css +25 -25
- package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
- package/dist/collection/components/tl-seat-map/tl-seat-map.css +10 -10
- package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
- package/dist/collection/components/tl-ticket/tl-ticket.css +13 -13
- package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.css +74 -49
- package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +95 -135
- package/dist/collection/utils/cart-totals.js +9 -0
- package/dist/collection/utils/order-summary.js +15 -99
- package/dist/collection/utils/testing/deep-text.js +29 -0
- package/dist/collection/utils/testing/fixtures.js +290 -0
- package/dist/collection/utils/testing/mock-sdk.js +13 -2
- package/dist/collection/utils/web-query.js +12 -0
- package/dist/collection/utils/web-storage.js +22 -0
- package/dist/components/ticket-selector.js +1 -0
- package/dist/components/tl-buy-modal.js +1 -1
- package/dist/components/tl-buy-tickets-button.js +1 -1
- package/dist/components/tl-buy-tickets-wrapper2.js +1 -1
- package/dist/components/tl-cart-badge.js +1 -1
- package/dist/components/tl-cart-drawer.js +1 -1
- package/dist/components/tl-cart2.js +1 -1
- package/dist/components/tl-checkout-wrapper2.js +1 -1
- package/dist/components/tl-event-card2.js +1 -1
- package/dist/components/tl-event-list.js +1 -1
- package/dist/components/tl-login2.js +1 -1
- package/dist/components/tl-my-orders.js +1 -1
- package/dist/components/tl-occurrence-selector2.js +1 -1
- package/dist/components/tl-order-confirmation.js +1 -1
- package/dist/components/tl-order-tickets2.js +1 -1
- package/dist/components/tl-promo-code.js +1 -1
- package/dist/components/tl-seat-map.js +1 -1
- package/dist/components/tl-ticket-selector2.js +1 -1
- package/dist/components/tl-ticket2.js +1 -1
- package/dist/components/web-query.js +1 -0
- package/dist/elements.docs.json +36 -36
- package/dist/esm/{index-CNX8hZa8.js → index-imfxp765.js} +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/ticket-selector-BwChnHVC.js +3606 -0
- package/dist/esm/ticketlayer-elements.js +3 -3
- package/dist/esm/tl-buy-modal.entry.js +4 -4
- package/dist/esm/tl-buy-tickets-button.entry.js +90 -72
- package/dist/esm/tl-buy-tickets-wrapper.entry.js +63 -32
- package/dist/esm/tl-cart-badge.entry.js +76 -63
- package/dist/esm/tl-cart-drawer.entry.js +53 -25
- package/dist/esm/tl-cart.entry.js +73 -99
- package/dist/esm/tl-checkout-wrapper.entry.js +53 -31
- package/dist/esm/tl-event-card.entry.js +45 -106
- package/dist/esm/tl-event-list.entry.js +74 -37
- package/dist/esm/tl-login.entry.js +76 -142
- package/dist/esm/tl-my-orders.entry.js +54 -93
- package/dist/esm/tl-occurrence-selector_2.entry.js +206 -642
- package/dist/esm/tl-order-confirmation.entry.js +73 -106
- package/dist/esm/tl-order-tickets_2.entry.js +51 -77
- package/dist/esm/tl-promo-code.entry.js +52 -48
- package/dist/esm/tl-seat-map.entry.js +4 -4
- package/dist/esm/web-query-Bdbb2lk5.js +14 -0
- package/dist/ticketlayer-elements/index.esm.js +1 -1
- package/dist/ticketlayer-elements/p-45923d2c.entry.js +1 -0
- package/dist/ticketlayer-elements/p-492adc77.entry.js +1 -0
- package/dist/ticketlayer-elements/p-4cfc9e53.entry.js +1 -0
- package/dist/ticketlayer-elements/p-5135630e.entry.js +1 -0
- package/dist/ticketlayer-elements/p-5bbce3b5.entry.js +1 -0
- package/dist/ticketlayer-elements/p-7d547721.entry.js +1 -0
- package/dist/ticketlayer-elements/p-7fe7b6ba.entry.js +1 -0
- package/dist/ticketlayer-elements/p-8122f0c1.entry.js +1 -0
- package/dist/ticketlayer-elements/p-98d40869.entry.js +1 -0
- package/dist/ticketlayer-elements/p-Bdbb2lk5.js +1 -0
- package/dist/ticketlayer-elements/p-BwChnHVC.js +1 -0
- package/dist/ticketlayer-elements/p-abec290a.entry.js +1 -0
- package/dist/ticketlayer-elements/p-ac79a3f6.entry.js +1 -0
- package/dist/ticketlayer-elements/p-d01f4429.entry.js +1 -0
- package/dist/ticketlayer-elements/p-d7ffaf46.entry.js +1 -0
- package/dist/ticketlayer-elements/p-e7170f3c.entry.js +1 -0
- package/dist/ticketlayer-elements/p-e787e862.entry.js +1 -0
- package/dist/ticketlayer-elements/p-f1ff931f.entry.js +1 -0
- package/dist/ticketlayer-elements/p-imfxp765.js +3 -0
- package/dist/ticketlayer-elements/ticketlayer-elements.css +1 -1
- package/dist/ticketlayer-elements/ticketlayer-elements.esm.js +1 -1
- package/dist/types/components/tl-buy-tickets-button/tl-buy-tickets-button.d.ts +40 -8
- package/dist/types/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.d.ts +20 -1
- package/dist/types/components/tl-cart/tl-cart.d.ts +40 -32
- package/dist/types/components/tl-cart-badge/tl-cart-badge.d.ts +22 -7
- package/dist/types/components/tl-cart-drawer/tl-cart-drawer.d.ts +28 -5
- package/dist/types/components/tl-checkout-wrapper/tl-checkout-wrapper.d.ts +18 -1
- package/dist/types/components/tl-event-card/event-card-adapter.d.ts +9 -20
- package/dist/types/components/tl-event-card/tl-event-card.d.ts +25 -28
- package/dist/types/components/tl-event-list/tl-event-list.d.ts +46 -6
- package/dist/types/components/tl-login/tl-login.d.ts +68 -22
- package/dist/types/components/tl-my-orders/tl-my-orders.d.ts +30 -12
- package/dist/types/components/tl-occurrence-selector/tl-occurrence-selector.d.ts +73 -161
- package/dist/types/components/tl-order-confirmation/tl-order-confirmation.d.ts +48 -15
- package/dist/types/components/tl-order-tickets/tl-order-tickets.d.ts +29 -31
- package/dist/types/components/tl-promo-code/tl-promo-code.d.ts +28 -10
- package/dist/types/components/tl-ticket/tl-ticket.d.ts +2 -11
- package/dist/types/components/tl-ticket-selector/tl-ticket-selector.d.ts +61 -32
- package/dist/types/components.d.ts +302 -62
- package/dist/types/utils/cart-totals.d.ts +10 -0
- package/dist/types/utils/order-summary.d.ts +16 -65
- package/dist/types/utils/testing/deep-text.d.ts +13 -0
- package/dist/types/utils/testing/fixtures.d.ts +225 -0
- package/dist/types/utils/testing/mock-sdk.d.ts +14 -1
- package/dist/types/utils/web-query.d.ts +18 -0
- package/dist/types/utils/web-storage.d.ts +16 -0
- package/elements.catalogue.json +676 -55
- package/package.json +14 -6
- package/dist/cjs/order-summary-ZMkJ5bez.js +0 -116
- package/dist/components/order-summary.js +0 -1
- package/dist/esm/order-summary-BGekdjN9.js +0 -103
- package/dist/ticketlayer-elements/p-0b1d16f8.entry.js +0 -1
- package/dist/ticketlayer-elements/p-1471f6d8.entry.js +0 -1
- package/dist/ticketlayer-elements/p-1c51cbc1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-5169f68b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-895ba1f3.entry.js +0 -1
- package/dist/ticketlayer-elements/p-8d5722e1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-917d8e09.entry.js +0 -1
- package/dist/ticketlayer-elements/p-9629029a.entry.js +0 -1
- package/dist/ticketlayer-elements/p-BGekdjN9.js +0 -1
- package/dist/ticketlayer-elements/p-CNX8hZa8.js +0 -3
- package/dist/ticketlayer-elements/p-a22714d0.entry.js +0 -1
- package/dist/ticketlayer-elements/p-bf73044b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e02079fa.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e04ace15.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e6fab1d5.entry.js +0 -1
- package/dist/ticketlayer-elements/p-f826b753.entry.js +0 -1
- package/dist/ticketlayer-elements/p-fa639d88.entry.js +0 -1
- package/dist/ticketlayer-elements/p-fbaca948.entry.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--tl-
|
|
1
|
+
:root{--tl-primary:#6366f1;--tl-color-primary:var(--tl-primary);--tl-primary-foreground:#ffffff;--tl-color-primary-foreground:var(--tl-primary-foreground);--tl-secondary:#f3f4f6;--tl-color-secondary:var(--tl-secondary);--tl-secondary-foreground:#111827;--tl-color-secondary-foreground:var(--tl-secondary-foreground);--tl-accent:#ec4899;--tl-color-accent:var(--tl-accent);--tl-accent-foreground:#ffffff;--tl-color-accent-foreground:var(--tl-accent-foreground);--tl-background:#ffffff;--tl-color-background:var(--tl-background);--tl-foreground:#111827;--tl-color-foreground:var(--tl-foreground);--tl-card:#ffffff;--tl-color-card:var(--tl-card);--tl-muted:#f9fafb;--tl-color-muted:var(--tl-muted);--tl-muted-foreground:#6b7280;--tl-color-muted-foreground:var(--tl-muted-foreground);--tl-border:#e5e7eb;--tl-color-border:var(--tl-border);--tl-border-hover:#9ca3af;--tl-color-border-hover:var(--tl-border-hover);--tl-input:#e5e7eb;--tl-color-input:var(--tl-input);--tl-ring:#6366f1;--tl-color-ring:var(--tl-ring);--tl-success:#10b981;--tl-color-success:var(--tl-success);--tl-success-foreground:#ffffff;--tl-color-success-foreground:var(--tl-success-foreground);--tl-warning:#f59e0b;--tl-color-warning:var(--tl-warning);--tl-warning-foreground:#ffffff;--tl-color-warning-foreground:var(--tl-warning-foreground);--tl-warning-bg:#fef3c7;--tl-color-warning-bg:var(--tl-warning-bg);--tl-error:#ef4444;--tl-color-error:var(--tl-error);--tl-destructive:var(--tl-error);--tl-color-destructive:var(--tl-error);--tl-error-foreground:#ffffff;--tl-color-error-foreground:var(--tl-error-foreground);--tl-destructive-foreground:var(--tl-error-foreground);--tl-color-destructive-foreground:var(--tl-error-foreground);--tl-error-bg:#fee2e2;--tl-color-error-bg:var(--tl-error-bg);--tl-destructive-bg:var(--tl-error-bg);--tl-color-destructive-bg:var(--tl-error-bg);--tl-info:#3b82f6;--tl-color-info:var(--tl-info);--tl-info-foreground:#ffffff;--tl-color-info-foreground:var(--tl-info-foreground);--tl-info-bg:#dbeafe;--tl-color-info-bg:var(--tl-info-bg);--tl-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--tl-font-family-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;--tl-font-size-base:16px;--tl-base-size:var(--tl-font-size-base);--tl-font-scale:1.25;--tl-radius-none:0px;--tl-radius-sm:0.25rem;--tl-radius-md:0.5rem;--tl-radius:var(--tl-radius-md);--tl-radius-lg:0.75rem;--tl-radius-full:9999px;--tl-spacing-1:0.25rem;--tl-spacing-2:0.5rem;--tl-spacing-3:0.75rem;--tl-spacing-4:1rem;--tl-spacing-5:1.25rem;--tl-spacing-6:1.5rem;--tl-spacing-8:2rem;--tl-duration-fast:120ms;--tl-duration-normal:200ms;--tl-duration-slow:320ms;--tl-easing-standard:cubic-bezier(0.2, 0, 0, 1);--tl-easing-emphasised:cubic-bezier(0.3, 0, 0, 1)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,g as
|
|
1
|
+
import{p as e,g as c,b as r}from"./p-imfxp765.js";export{s as setNonce}from"./p-imfxp765.js";(()=>{const c=import.meta.url,r={};return""!==c&&(r.resourcesUrl=new URL(".",c).href),e(r)})().then((async e=>(await c(),r([["p-4cfc9e53",[[1,"tl-my-orders",{emptyMessage:[1,"empty-message"],columns:[2],view:[32]},null,{emptyMessage:[{syncProps:0}],columns:[{syncProps:0}]}]]],["p-5135630e",[[1,"tl-buy-modal",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],step:[32],eventName:[32],imageUrl:[32],venueLabel:[32],dateSummary:[32],selectedOccurrenceId:[32],occurrenceCount:[32],occurrenceLabel:[32],error:[32]}]]],["p-7fe7b6ba",[[1,"tl-order-confirmation",{orderId:[1,"order-id"],customerEmail:[1,"customer-email"],showTickets:[4,"show-tickets"],columns:[2],view:[32]},null,{orderId:[{watchOrderId:0}],customerEmail:[{syncProps:0}],showTickets:[{syncProps:0}],columns:[{syncProps:0}]}]]],["p-d7ffaf46",[[1,"tl-cart-drawer",{side:[1],heading:[1],open:[1028],view:[32]},null,{side:[{syncProps:0}],heading:[{syncProps:0}],open:[{onOpenProp:0}]}]]],["p-7d547721",[[1,"tl-event-card",{event:[16],eventId:[1,"event-id"],view:[32]},null,{event:[{syncProps:0}],eventId:[{watchEventId:0}]}]]],["p-f1ff931f",[[1,"tl-event-list",{limit:[2],category:[1],columns:[2],view:[32]},null,{limit:[{watchFiltersChange:0}],category:[{watchFiltersChange:0}],columns:[{syncProps:0}]}]]],["p-e787e862",[[1,"tl-buy-tickets-button",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],state:[1],label:[1],variant:[1],size:[1],fullWidth:[4,"full-width"],price:[2],currency:[1],pricePrefix:[1,"price-prefix"],disabled:[4],isHovered:[32],view:[32]},null,{eventId:[{syncProps:0}],occurrenceId:[{syncProps:0}],state:[{syncProps:0}],label:[{syncProps:0}],variant:[{syncProps:0}],size:[{syncProps:0}],fullWidth:[{syncProps:0}],price:[{syncProps:0}],currency:[{syncProps:0}],pricePrefix:[{syncProps:0}],disabled:[{syncProps:0}]}]]],["p-5bbce3b5",[[260,"tl-buy-tickets-wrapper",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],disabled:[4],view:[32]},null,{eventId:[{syncProps:0}],occurrenceId:[{syncProps:0}],disabled:[{syncProps:0}]}]]],["p-98d40869",[[1,"tl-cart-badge",{showEmpty:[4,"show-empty"],icon:[1],size:[1],badgeOnly:[4,"badge-only"],view:[32]},null,{showEmpty:[{syncProps:0}],icon:[{syncProps:0}],size:[{syncProps:0}],badgeOnly:[{syncProps:0}]}]]],["p-ac79a3f6",[[260,"tl-checkout-wrapper",{disabled:[4],view:[32]},null,{disabled:[{syncProps:0}]}]]],["p-e7170f3c",[[1,"tl-promo-code",{placeholder:[1],buttonLabel:[1,"button-label"],view:[32]},null,{placeholder:[{syncProps:0}],buttonLabel:[{syncProps:0}]}]]],["p-d01f4429",[[1,"tl-seat-map",{occurrenceId:[1,"occurrence-id"],hboUrl:[1,"hbo-url"],apiUrl:[1,"api-url"],height:[1],width:[1],isReady:[32],isLoading:[32],error:[32],seatsInCart:[32]},null,{occurrenceId:[{watchOccurrenceId:0}]}]]],["p-45923d2c",[[1,"tl-cart",{showCheckoutButton:[4,"show-checkout-button"],checkoutLabel:[1,"checkout-label"],showRemoveButtons:[4,"show-remove-buttons"],compact:[4],view:[32]},null,{showCheckoutButton:[{syncProps:0}],checkoutLabel:[{syncProps:0}],showRemoveButtons:[{syncProps:0}],compact:[{syncProps:0}]}]]],["p-abec290a",[[1,"tl-login",{heading:[1],allowCodeEntry:[4,"allow-code-entry"],view:[32]},null,{heading:[{syncProps:0}],allowCodeEntry:[{syncProps:0}]}]]],["p-492adc77",[[1,"tl-occurrence-selector",{eventId:[1,"event-id"],displayMode:[1,"display-mode"],orientation:[1],theme:[16],view:[32]},null,{eventId:[{watchSubject:0}],displayMode:[{syncProps:0}],orientation:[{syncProps:0}],theme:[{syncProps:0}]}],[1,"tl-ticket-selector",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],showButton:[4,"show-button"],buttonLabel:[1,"button-label"],view:[32]},null,{eventId:[{watchPropsChange:0}],occurrenceId:[{watchPropsChange:0}],showButton:[{syncProps:0}],buttonLabel:[{syncProps:0}]}]]],["p-8122f0c1",[[1,"tl-order-tickets",{orderId:[1,"order-id"],columns:[2],view:[32]},null,{orderId:[{watchOrder:0}],columns:[{syncProps:0}]}],[1,"tl-ticket",{ticket:[16],orderId:[1,"order-id"],qrSvg:[32],downloading:[32]},null,{ticket:[{generateQr:0}]}]]]],e))));
|
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @element tl-buy-tickets-button
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* The web harness for `buyTicketsButtonCore`. What a press does, which states
|
|
9
|
+
* are not pressable, the label each state defaults to and how the price reads
|
|
10
|
+
* are all in `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left
|
|
11
|
+
* here is the Stencil surface, the icons, the hover, and which key counts as a
|
|
12
|
+
* press.
|
|
13
|
+
*
|
|
14
|
+
* Each state is painted from a @ticketlayer/theme token family rather than
|
|
15
|
+
* from a literal, so a channel theme reaches every one of them. The core says
|
|
16
|
+
* which state the button is in and the stylesheet says which family that
|
|
17
|
+
* state paints with, because a core cannot map a status onto one:
|
|
18
|
+
* - available: "Buy Tickets", the primary family
|
|
19
|
+
* - soldOut: "Sold Out", the error family
|
|
20
|
+
* - waitlist: "Join Waitlist", the info family
|
|
21
|
+
* - comingSoon: "On Sale Soon", the warning family
|
|
13
22
|
*
|
|
14
23
|
* @example
|
|
15
24
|
* <tl-buy-tickets-button event-id="evt_xxx"></tl-buy-tickets-button>
|
|
@@ -17,6 +26,13 @@
|
|
|
17
26
|
* <tl-buy-tickets-button event-id="evt_xxx" price="2500" currency="GBP"></tl-buy-tickets-button>
|
|
18
27
|
*/
|
|
19
28
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
29
|
+
import { type BuyTicketsButtonDerived, type BuyTicketsButtonProps, type BuyTicketsButtonState, type BuyTicketsButtonStatus } from '@ticketlayer/elements-core';
|
|
30
|
+
/**
|
|
31
|
+
* The unions this element's props accept. They are the same four, three and
|
|
32
|
+
* three the core declares, written out here because Stencil reads the
|
|
33
|
+
* harness's own types to build `components.d.ts` and the catalogue emitter
|
|
34
|
+
* checks the two against each other, so they cannot drift.
|
|
35
|
+
*/
|
|
20
36
|
export type ButtonState = 'available' | 'soldOut' | 'waitlist' | 'comingSoon';
|
|
21
37
|
export type ButtonVariant = 'primary' | 'secondary' | 'outline';
|
|
22
38
|
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
@@ -43,16 +59,32 @@ export declare class TlBuyTicketsButton {
|
|
|
43
59
|
pricePrefix: string;
|
|
44
60
|
/** Disabled state */
|
|
45
61
|
disabled: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the pointer is over the button. A pointer is not a fact every
|
|
64
|
+
* runtime has, so this stays here for the same reason the key handling
|
|
65
|
+
* does: the core knows nothing of mice.
|
|
66
|
+
*/
|
|
46
67
|
isHovered: boolean;
|
|
47
68
|
/** Emitted when button is clicked (before modal opens) */
|
|
48
69
|
tlClick: EventEmitter<{
|
|
49
70
|
eventId: string;
|
|
50
71
|
occurrenceId?: string;
|
|
51
72
|
}>;
|
|
73
|
+
private element;
|
|
74
|
+
private unsubscribe?;
|
|
75
|
+
private teardown?;
|
|
76
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
77
|
+
view: import("@ticketlayer/elements-core").ElementView<BuyTicketsButtonProps, BuyTicketsButtonState, BuyTicketsButtonDerived, BuyTicketsButtonStatus, {
|
|
78
|
+
available: string;
|
|
79
|
+
soldOut: string;
|
|
80
|
+
waitlist: string;
|
|
81
|
+
comingSoon: string;
|
|
82
|
+
}>;
|
|
83
|
+
syncProps(): void;
|
|
84
|
+
connectedCallback(): void;
|
|
85
|
+
disconnectedCallback(): void;
|
|
86
|
+
private forward;
|
|
52
87
|
private handleClick;
|
|
53
|
-
private formatPrice;
|
|
54
|
-
private getStateConfig;
|
|
55
|
-
private isInteractive;
|
|
56
88
|
render(): any;
|
|
57
89
|
private renderTicketIcon;
|
|
58
90
|
private renderSoldOutIcon;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { type BuyTicketsWrapperDerived, type BuyTicketsWrapperProps, type BuyTicketsWrapperState, type BuyTicketsWrapperStatus } from '@ticketlayer/elements-core';
|
|
2
3
|
import { OrderResult } from '../../utils/sdk-connector';
|
|
3
4
|
/**
|
|
4
5
|
* @component tl-buy-tickets-wrapper
|
|
@@ -6,6 +7,12 @@ import { OrderResult } from '../../utils/sdk-connector';
|
|
|
6
7
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
7
8
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
8
9
|
*
|
|
10
|
+
* The web harness for `buyTicketsWrapperCore`. What a press does, what it
|
|
11
|
+
* announces and what happens when no client has been published are all in
|
|
12
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
|
|
13
|
+
* Stencil surface, the accessibility attributes and the one genuinely web
|
|
14
|
+
* question the core refuses to answer - which key counts as a press.
|
|
15
|
+
*
|
|
9
16
|
* @slot - Content to display (typically a button)
|
|
10
17
|
*
|
|
11
18
|
* @example
|
|
@@ -19,7 +26,6 @@ import { OrderResult } from '../../utils/sdk-connector';
|
|
|
19
26
|
* </tl-buy-tickets-wrapper>
|
|
20
27
|
*/
|
|
21
28
|
export declare class TlBuyTicketsWrapper {
|
|
22
|
-
el: HTMLElement;
|
|
23
29
|
/**
|
|
24
30
|
* The event ID to purchase tickets for
|
|
25
31
|
*/
|
|
@@ -46,7 +52,20 @@ export declare class TlBuyTicketsWrapper {
|
|
|
46
52
|
* Emitted when the modal closes
|
|
47
53
|
*/
|
|
48
54
|
tlClose: EventEmitter<void>;
|
|
55
|
+
private element;
|
|
56
|
+
private unsubscribe?;
|
|
57
|
+
private teardown?;
|
|
58
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
59
|
+
view: import("@ticketlayer/elements-core").ElementView<BuyTicketsWrapperProps, BuyTicketsWrapperState, BuyTicketsWrapperDerived, BuyTicketsWrapperStatus, {
|
|
60
|
+
noClient: string;
|
|
61
|
+
notAvailable: string;
|
|
62
|
+
}>;
|
|
63
|
+
syncProps(): void;
|
|
64
|
+
connectedCallback(): void;
|
|
65
|
+
disconnectedCallback(): void;
|
|
66
|
+
private forward;
|
|
49
67
|
private handleClick;
|
|
68
|
+
/** Enter and Space are a press on the web. The core knows nothing of keys. */
|
|
50
69
|
private handleKeyDown;
|
|
51
70
|
render(): any;
|
|
52
71
|
}
|
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
items: TlCartItem[];
|
|
15
|
-
subtotal: number;
|
|
16
|
-
fees: number;
|
|
17
|
-
total: number;
|
|
18
|
-
currency: string;
|
|
19
|
-
itemCount: number;
|
|
20
|
-
}
|
|
2
|
+
import { type CartDerived, type CartProps, type CartState, type CartStatus, type TlCartData as CoreTlCartData, type TlCartItem as CoreTlCartItem } from '@ticketlayer/elements-core';
|
|
3
|
+
export type TlCartItem = CoreTlCartItem;
|
|
4
|
+
export type TlCartData = CoreTlCartData;
|
|
5
|
+
/**
|
|
6
|
+
* The web harness for `cartCore`.
|
|
7
|
+
*
|
|
8
|
+
* It renders and it forwards. The cart, the money rows, the subscription that
|
|
9
|
+
* keeps them current and every string are in `@ticketlayer/elements-core`
|
|
10
|
+
* (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
|
|
11
|
+
* HTML against and the one genuinely web thing, finding the client the page
|
|
12
|
+
* published on `window.Ticketlayer`.
|
|
13
|
+
*/
|
|
21
14
|
export declare class TlCart {
|
|
22
15
|
/**
|
|
23
16
|
* Show checkout button
|
|
@@ -35,11 +28,6 @@ export declare class TlCart {
|
|
|
35
28
|
* Compact mode - hides some details
|
|
36
29
|
*/
|
|
37
30
|
compact: boolean;
|
|
38
|
-
cart: TlCartData | null;
|
|
39
|
-
loading: boolean;
|
|
40
|
-
error: string | null;
|
|
41
|
-
removingItemId: string | null;
|
|
42
|
-
private unsubscribe?;
|
|
43
31
|
/**
|
|
44
32
|
* Emitted when checkout is clicked
|
|
45
33
|
*/
|
|
@@ -64,15 +52,35 @@ export declare class TlCart {
|
|
|
64
52
|
tlError: EventEmitter<{
|
|
65
53
|
message: string;
|
|
66
54
|
}>;
|
|
67
|
-
|
|
68
|
-
|
|
55
|
+
private element;
|
|
56
|
+
private unsubscribe?;
|
|
57
|
+
private teardown?;
|
|
58
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
59
|
+
view: import("@ticketlayer/elements-core").ElementView<CartProps, CartState, CartDerived, CartStatus, {
|
|
60
|
+
emptyTitle: string;
|
|
61
|
+
emptyMessage: string;
|
|
62
|
+
subtotalRow: string;
|
|
63
|
+
discountRow: string;
|
|
64
|
+
totalRow: string;
|
|
65
|
+
removeItem: string;
|
|
66
|
+
quantityPrefix: string;
|
|
67
|
+
loadFailed: string;
|
|
68
|
+
removeFailed: string;
|
|
69
|
+
}>;
|
|
70
|
+
syncProps(): void;
|
|
71
|
+
/**
|
|
72
|
+
* On screen: render what the core says and put the core to work. For this
|
|
73
|
+
* element that means waiting for the client, subscribing to `cart:updated`
|
|
74
|
+
* and reading the cart - all of it the core's business.
|
|
75
|
+
*/
|
|
76
|
+
connectedCallback(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Off screen: run the mount's teardown, which is what drops the cart
|
|
79
|
+
* subscription. Not `destroy()`: Stencil calls this for a DOM move as well
|
|
80
|
+
* as a removal, and a destroyed core never mounts again.
|
|
81
|
+
*/
|
|
69
82
|
disconnectedCallback(): void;
|
|
70
|
-
private
|
|
71
|
-
private subscribeToCartUpdates;
|
|
72
|
-
private handleRemoveItem;
|
|
73
|
-
private handleCheckout;
|
|
74
|
-
private formatPrice;
|
|
75
|
-
private formatDate;
|
|
83
|
+
private forward;
|
|
76
84
|
private renderSkeleton;
|
|
77
85
|
private renderEmptyCart;
|
|
78
86
|
private renderCartItem;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { type CartBadgeDerived, type CartBadgeProps, type CartBadgeState } from '@ticketlayer/elements-core';
|
|
3
|
+
/**
|
|
4
|
+
* The web harness for `cartBadgeCore`.
|
|
5
|
+
*
|
|
6
|
+
* The count, the "99+" rule, the cart subscription and the remembered value
|
|
7
|
+
* are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
|
|
8
|
+
* the icon, and the two web things the core is handed: the client the page
|
|
9
|
+
* published and `localStorage`.
|
|
10
|
+
*/
|
|
2
11
|
export declare class TlCartBadge {
|
|
3
12
|
/**
|
|
4
13
|
* Show the badge even when count is 0
|
|
@@ -16,20 +25,26 @@ export declare class TlCartBadge {
|
|
|
16
25
|
* Badge only mode - only shows the count bubble, no icon or button
|
|
17
26
|
*/
|
|
18
27
|
badgeOnly: boolean;
|
|
19
|
-
itemCount: number;
|
|
20
|
-
private unsubscribe?;
|
|
21
28
|
/**
|
|
22
29
|
* Emitted when the badge is clicked
|
|
23
30
|
*/
|
|
24
31
|
tlClick: EventEmitter<{
|
|
25
32
|
itemCount: number;
|
|
26
33
|
}>;
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
private element;
|
|
35
|
+
private unsubscribe?;
|
|
36
|
+
private teardown?;
|
|
37
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
38
|
+
view: import("@ticketlayer/elements-core").ElementView<CartBadgeProps, CartBadgeState, CartBadgeDerived, "ready", {
|
|
39
|
+
ariaPrefix: string;
|
|
40
|
+
ariaSuffix: string;
|
|
41
|
+
overflow: string;
|
|
42
|
+
}>;
|
|
43
|
+
syncProps(): void;
|
|
44
|
+
connectedCallback(): void;
|
|
45
|
+
/** Off screen: the mount's teardown is what drops the cart subscription. */
|
|
29
46
|
disconnectedCallback(): void;
|
|
30
|
-
private
|
|
31
|
-
private persistCartCount;
|
|
32
|
-
private subscribeToCartUpdates;
|
|
47
|
+
private forward;
|
|
33
48
|
private handleClick;
|
|
34
49
|
private renderIcon;
|
|
35
50
|
render(): any;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { type CartDrawerDerived, type CartDrawerProps, type CartDrawerState, type CartDrawerStatus } from '@ticketlayer/elements-core';
|
|
2
3
|
/**
|
|
3
4
|
* @component tl-cart-drawer
|
|
4
5
|
*
|
|
@@ -9,6 +10,10 @@ import { EventEmitter } from '../../stencil-public-runtime';
|
|
|
9
10
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
10
11
|
* cart; the drawer only adds the off-canvas chrome.
|
|
11
12
|
*
|
|
13
|
+
* The web harness for `cartDrawerCore`: the open/closed rule and the two
|
|
14
|
+
* intents are the core's (TKT-11). What stays here is the chrome and the one
|
|
15
|
+
* thing only a browser has, the Escape key.
|
|
16
|
+
*
|
|
12
17
|
* @prop side - which edge the panel slides from (default 'right')
|
|
13
18
|
* @event tlOpen - the drawer opened
|
|
14
19
|
* @event tlClose - the drawer closed
|
|
@@ -20,16 +25,34 @@ export declare class TlCartDrawer {
|
|
|
20
25
|
heading: string;
|
|
21
26
|
/** Controlled open state (also driven by the `ui:cart-requested` intent). */
|
|
22
27
|
open: boolean;
|
|
23
|
-
visible: boolean;
|
|
24
28
|
tlOpen: EventEmitter<void>;
|
|
25
29
|
tlClose: EventEmitter<void>;
|
|
26
|
-
private
|
|
27
|
-
private
|
|
30
|
+
private element;
|
|
31
|
+
private unsubscribe?;
|
|
32
|
+
private teardown?;
|
|
33
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
34
|
+
view: import("@ticketlayer/elements-core").ElementView<CartDrawerProps, CartDrawerState, CartDrawerDerived, CartDrawerStatus, {
|
|
35
|
+
close: string;
|
|
36
|
+
privacy: string;
|
|
37
|
+
privacyHref: string;
|
|
38
|
+
reportAbuse: string;
|
|
39
|
+
reportAbuseHref: string;
|
|
40
|
+
poweredBy: string;
|
|
41
|
+
brand: string;
|
|
42
|
+
brandHref: string;
|
|
43
|
+
}>;
|
|
44
|
+
syncProps(): void;
|
|
45
|
+
/**
|
|
46
|
+
* The host moved `open`. The core follows it without announcing it, which is
|
|
47
|
+
* what the component's watcher did: an event here would be the host hearing
|
|
48
|
+
* its own write back.
|
|
49
|
+
*/
|
|
50
|
+
onOpenProp(v: boolean): void;
|
|
28
51
|
connectedCallback(): void;
|
|
29
52
|
disconnectedCallback(): void;
|
|
30
|
-
|
|
53
|
+
/** The one thing only a browser has. What Escape means is the core's answer. */
|
|
31
54
|
private onKey;
|
|
32
|
-
private
|
|
55
|
+
private forward;
|
|
33
56
|
private close;
|
|
34
57
|
render(): any;
|
|
35
58
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { type CheckoutWrapperDerived, type CheckoutWrapperProps, type CheckoutWrapperState, type CheckoutWrapperStatus } from '@ticketlayer/elements-core';
|
|
2
3
|
import { OrderResult } from '../../utils/sdk-connector';
|
|
3
4
|
/**
|
|
4
5
|
* @component tl-checkout-wrapper
|
|
@@ -6,6 +7,10 @@ import { OrderResult } from '../../utils/sdk-connector';
|
|
|
6
7
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
7
8
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
8
9
|
*
|
|
10
|
+
* The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
|
|
11
|
+
* decides only which key press counts as activation. Everything else is in
|
|
12
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
13
|
+
*
|
|
9
14
|
* @slot - Content to display (typically a checkout button)
|
|
10
15
|
*
|
|
11
16
|
* @example
|
|
@@ -14,7 +19,6 @@ import { OrderResult } from '../../utils/sdk-connector';
|
|
|
14
19
|
* </tl-checkout-wrapper>
|
|
15
20
|
*/
|
|
16
21
|
export declare class TlCheckoutWrapper {
|
|
17
|
-
el: HTMLElement;
|
|
18
22
|
/**
|
|
19
23
|
* Whether the wrapper is disabled
|
|
20
24
|
*/
|
|
@@ -33,7 +37,20 @@ export declare class TlCheckoutWrapper {
|
|
|
33
37
|
* Emitted when the modal closes
|
|
34
38
|
*/
|
|
35
39
|
tlClose: EventEmitter<void>;
|
|
40
|
+
private element;
|
|
41
|
+
private unsubscribe?;
|
|
42
|
+
private teardown?;
|
|
43
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
44
|
+
view: import("@ticketlayer/elements-core").ElementView<CheckoutWrapperProps, CheckoutWrapperState, CheckoutWrapperDerived, CheckoutWrapperStatus, {
|
|
45
|
+
noClient: string;
|
|
46
|
+
notAvailable: string;
|
|
47
|
+
}>;
|
|
48
|
+
syncProps(): void;
|
|
49
|
+
connectedCallback(): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
private forward;
|
|
36
52
|
private handleClick;
|
|
53
|
+
/** Enter and Space are a press on the web. The core knows nothing of keys. */
|
|
37
54
|
private handleKeyDown;
|
|
38
55
|
render(): any;
|
|
39
56
|
}
|
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapts the sales event detail (events manager get) to the shape
|
|
3
|
-
* tl-event-card renders.
|
|
4
|
-
*
|
|
3
|
+
* tl-event-card renders.
|
|
4
|
+
*
|
|
5
|
+
* The adapter and its type moved to `@ticketlayer/elements-core` with the core
|
|
6
|
+
* split (TKT-69): picking the next occurrence and deciding whether a card reads
|
|
7
|
+
* sold out is behaviour, and behaviour lives in a core so every harness decides
|
|
8
|
+
* it the same way. This file stays as the import path the component and its
|
|
9
|
+
* spec already use.
|
|
5
10
|
*/
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
id: string;
|
|
9
|
-
name: string;
|
|
10
|
-
status?: string;
|
|
11
|
-
shortDescription?: string | null;
|
|
12
|
-
imageUrl?: string | null;
|
|
13
|
-
venueId?: string | null;
|
|
14
|
-
venueName?: string | null;
|
|
15
|
-
venueCity?: string | null;
|
|
16
|
-
occurrences?: Array<{
|
|
17
|
-
id: string;
|
|
18
|
-
startsAt?: string | null;
|
|
19
|
-
status?: string;
|
|
20
|
-
}>;
|
|
21
|
-
}
|
|
22
|
-
/** Adapt an event detail to the card shape (the list adapter lives in the SDK connector). */
|
|
23
|
-
export declare function toEventCardEvent(detail: EventDetailLike): TlEventCardEvent;
|
|
11
|
+
export { toEventCardEvent } from '@ticketlayer/elements-core';
|
|
12
|
+
export type { EventDetailLike } from '@ticketlayer/elements-core';
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
venue?: {
|
|
12
|
-
id: string;
|
|
13
|
-
name: string;
|
|
14
|
-
city: string;
|
|
15
|
-
};
|
|
16
|
-
nextOccurrence?: {
|
|
17
|
-
startsAt: string;
|
|
18
|
-
};
|
|
19
|
-
availabilityStatus: 'available' | 'limited' | 'sold_out';
|
|
20
|
-
}
|
|
2
|
+
import { type EventCardDerived, type EventCardProps, type EventCardState, type EventCardStatus, type TlEventCardEvent as CoreTlEventCardEvent } from '@ticketlayer/elements-core';
|
|
3
|
+
export type TlEventCardEvent = CoreTlEventCardEvent;
|
|
4
|
+
/**
|
|
5
|
+
* The web harness for `eventCardCore`.
|
|
6
|
+
*
|
|
7
|
+
* It renders and it forwards: which event is shown, how it is read, the status
|
|
8
|
+
* badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
|
|
9
|
+
* TKT-11).
|
|
10
|
+
*/
|
|
21
11
|
export declare class TlEventCard {
|
|
22
12
|
/**
|
|
23
13
|
* Event data to display (tl-event-list passes this)
|
|
@@ -28,9 +18,6 @@ export declare class TlEventCard {
|
|
|
28
18
|
* card works standalone (e.g. on a Webflow page).
|
|
29
19
|
*/
|
|
30
20
|
eventId?: string;
|
|
31
|
-
loadedEvent: TlEventCardEvent | null;
|
|
32
|
-
loading: boolean;
|
|
33
|
-
error: string | null;
|
|
34
21
|
/**
|
|
35
22
|
* Emitted when the card is clicked
|
|
36
23
|
*/
|
|
@@ -43,13 +30,23 @@ export declare class TlEventCard {
|
|
|
43
30
|
tlError: EventEmitter<{
|
|
44
31
|
message: string;
|
|
45
32
|
}>;
|
|
33
|
+
private element;
|
|
34
|
+
private unsubscribe?;
|
|
35
|
+
private teardown?;
|
|
36
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
37
|
+
view: import("@ticketlayer/elements-core").ElementView<EventCardProps, EventCardState, EventCardDerived, EventCardStatus, {
|
|
38
|
+
available: string;
|
|
39
|
+
limited: string;
|
|
40
|
+
soldOut: string;
|
|
41
|
+
notFound: string;
|
|
42
|
+
loadFailed: string;
|
|
43
|
+
}>;
|
|
44
|
+
syncProps(): void;
|
|
45
|
+
/** A new id is a new subject: tear the old mount down and start again. */
|
|
46
46
|
watchEventId(): void;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
private
|
|
47
|
+
connectedCallback(): void;
|
|
48
|
+
disconnectedCallback(): void;
|
|
49
|
+
private forward;
|
|
50
50
|
private handleClick;
|
|
51
|
-
private formatDate;
|
|
52
|
-
private getStatusBadgeClass;
|
|
53
|
-
private getStatusLabel;
|
|
54
51
|
render(): any;
|
|
55
52
|
}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
-
import type
|
|
2
|
+
import { type EventListDerived, type EventListProps, type EventListState, type EventListStatus } from '@ticketlayer/elements-core';
|
|
3
|
+
/**
|
|
4
|
+
* tl-event-list - what the channel is selling, as a grid of tl-event-card.
|
|
5
|
+
*
|
|
6
|
+
* The web harness for `eventListCore`: it renders and it forwards. What to ask
|
|
7
|
+
* for, what came back and every string are in `@ticketlayer/elements-core`
|
|
8
|
+
* (AGENTS.md, TKT-11).
|
|
9
|
+
*
|
|
10
|
+
* Usage: <tl-event-list limit="12" columns="3"></tl-event-list>
|
|
11
|
+
*/
|
|
3
12
|
export declare class TlEventList {
|
|
4
13
|
/**
|
|
5
14
|
* Maximum number of events to display
|
|
@@ -13,18 +22,49 @@ export declare class TlEventList {
|
|
|
13
22
|
* Columns for grid layout (1, 2, 3, or 4)
|
|
14
23
|
*/
|
|
15
24
|
columns: number;
|
|
16
|
-
events: TlEventCardEvent[];
|
|
17
|
-
loading: boolean;
|
|
18
|
-
error: string | null;
|
|
19
25
|
/**
|
|
20
26
|
* Emitted when an event card is clicked
|
|
21
27
|
*/
|
|
22
28
|
tlEventClick: EventEmitter<{
|
|
23
29
|
eventId: string;
|
|
24
30
|
}>;
|
|
31
|
+
private element;
|
|
32
|
+
private unsubscribe?;
|
|
33
|
+
private teardown?;
|
|
34
|
+
/** The core's whole view. Assigning it is what makes Stencil re-render. */
|
|
35
|
+
view: import("@ticketlayer/elements-core").ElementView<EventListProps, EventListState, EventListDerived, EventListStatus, {
|
|
36
|
+
errorTitle: string;
|
|
37
|
+
emptyTitle: string;
|
|
38
|
+
emptyMessage: string;
|
|
39
|
+
loadFailed: string;
|
|
40
|
+
noListing: string;
|
|
41
|
+
}>;
|
|
42
|
+
/** A different question deserves a fresh answer. */
|
|
25
43
|
watchFiltersChange(): void;
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
syncProps(): void;
|
|
45
|
+
connectedCallback(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Nothing is painted until the first listing has landed.
|
|
48
|
+
*
|
|
49
|
+
* Kept as found rather than improved, and it is the harness's to keep: the
|
|
50
|
+
* component awaited its read in `componentWillLoad`, and Stencil does not
|
|
51
|
+
* paint a component until that resolves, so a slow channel shows an empty
|
|
52
|
+
* box where the skeleton markup below would fit. Held by the spec.
|
|
53
|
+
*
|
|
54
|
+
* Expressed against the core's own status rather than against a read this
|
|
55
|
+
* harness starts, because the read is the core's (`connectedCallback` has
|
|
56
|
+
* already mounted it). Every later read draws the skeleton, exactly as
|
|
57
|
+
* before.
|
|
58
|
+
*/
|
|
59
|
+
componentWillLoad(): Promise<void> | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Off screen: run the mount's teardown, and nothing more. `destroy()` is
|
|
62
|
+
* terminal and Stencil calls this for a move as well as a removal, so
|
|
63
|
+
* destroying here would leave a re-inserted element frozen.
|
|
64
|
+
*/
|
|
65
|
+
disconnectedCallback(): void;
|
|
66
|
+
private forward;
|
|
67
|
+
/** A card was clicked. The core has nothing to decide about it; pass it on. */
|
|
28
68
|
private handleEventClick;
|
|
29
69
|
render(): any;
|
|
30
70
|
}
|