@kerusiweb/react 2.0.0 → 2.2.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 +104 -16
- package/dist/kerusi-seatmap.d.ts +5 -0
- package/dist/kerusi-seatmap.d.ts.map +1 -1
- package/dist/kerusi-seatmap.js +91 -11
- package/dist/kerusi-seatmap.js.map +1 -1
- package/dist/kerusi-section.js +8 -0
- package/dist/kerusi-section.js.map +1 -1
- package/dist/types.d.ts +36 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/use-maximized.d.ts +23 -0
- package/dist/use-maximized.d.ts.map +1 -0
- package/dist/use-maximized.js +74 -0
- package/dist/use-maximized.js.map +1 -0
- package/dist/use-roving-focus.d.ts +8 -1
- package/dist/use-roving-focus.d.ts.map +1 -1
- package/dist/use-roving-focus.js +20 -6
- package/dist/use-roving-focus.js.map +1 -1
- package/dist/use-viewport.d.ts +46 -0
- package/dist/use-viewport.d.ts.map +1 -0
- package/dist/use-viewport.js +269 -0
- package/dist/use-viewport.js.map +1 -0
- package/package.json +52 -52
- package/styles.css +119 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ npm install @kerusiweb/core @kerusiweb/react
|
|
|
10
10
|
Requires React 18.3+ or 19. Function components and hooks; no context, no
|
|
11
11
|
provider, no global state.
|
|
12
12
|
|
|
13
|
-
This package is the React binding only
|
|
13
|
+
This package is the React binding only: the components and the `useKerusiState`
|
|
14
14
|
hook. The document types, the conformance validator, the render model and its
|
|
15
15
|
geometry live in its peer
|
|
16
16
|
[`@kerusiweb/core`](https://www.npmjs.com/package/@kerusiweb/core), which is
|
|
@@ -24,7 +24,7 @@ Once, anywhere in your app:
|
|
|
24
24
|
import '@kerusiweb/react/styles.css';
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
It carries layout, opacity, cursor, paint order and the focus ring
|
|
27
|
+
It carries layout, opacity, cursor, paint order and the focus ring, and nothing
|
|
28
28
|
else. Every colour is bound inline by the components, so the theming tiers below
|
|
29
29
|
keep working.
|
|
30
30
|
|
|
@@ -77,14 +77,14 @@ export function Booking({ map, state }: { map: KerusiMap; state: KerusiState })
|
|
|
77
77
|
| `selectableStatuses` | `SeatRenderStatus[]` | `['available']` | Which statuses a seat may be picked in. |
|
|
78
78
|
| `companionMode` | `'auto' \| 'independent'` | `'auto'` | `auto` selects a seat's whole companion closure together (§4.6). |
|
|
79
79
|
| `maxSelection` | `number` | — | Cap on selected seats. Counts a companion closure as its full size. |
|
|
80
|
-
| `seatSelectable` | `(seat: RenderSeat) => boolean` | — | A final say, applied after the status test. **Memoize it**
|
|
80
|
+
| `seatSelectable` | `(seat: RenderSeat) => boolean` | — | A final say, applied after the status test. **Memoize it** (see below). |
|
|
81
81
|
| `interactive` | `boolean` | `true` | `false` renders read-only. |
|
|
82
82
|
|
|
83
83
|
Controlled and uncontrolled work the way they do for `<input>`: pass
|
|
84
84
|
`selection` + `onSelectionChange` to own it yourself, or pass neither and let
|
|
85
85
|
the component keep it. Passing `selection` without `onSelectionChange` renders a
|
|
86
|
-
selection the user cannot change
|
|
87
|
-
mistake.
|
|
86
|
+
selection the user cannot change. That is occasionally what you want, but
|
|
87
|
+
usually a mistake.
|
|
88
88
|
|
|
89
89
|
**Appearance**
|
|
90
90
|
|
|
@@ -121,6 +121,16 @@ mistake.
|
|
|
121
121
|
`validate="throw"` throws a `KerusiValidationError` **during render**, so an
|
|
122
122
|
error boundary catches it. `collect` never throws.
|
|
123
123
|
|
|
124
|
+
**Zoom, pan and maximize** (both off by default; see [Zoom, pan and maximize](#zoom-pan-and-maximize))
|
|
125
|
+
|
|
126
|
+
| Prop | Type | Default | |
|
|
127
|
+
| ------------------ | ------------------------------- | ------- | -------------------------------------------------------------------------------------- |
|
|
128
|
+
| `zoomable` | `boolean` | `false` | Pinch, Ctrl/Cmd + wheel and drag to zoom and pan; `+` `-` `0` keys; on-screen buttons. |
|
|
129
|
+
| `maxZoom` | `number` | `4` | The zoom ceiling, relative to fit. The floor is always fit. |
|
|
130
|
+
| `showZoomControls` | `boolean` | `true` | The built-in zoom buttons. Turn off to supply your own. |
|
|
131
|
+
| `maximizable` | `boolean` | `false` | A button that fills the screen with the map. |
|
|
132
|
+
| `controlStrings` | `Partial<KerusiControlStrings>` | English | The names of the zoom and maximize buttons, for translation. |
|
|
133
|
+
|
|
124
134
|
### Callbacks
|
|
125
135
|
|
|
126
136
|
| Prop | Payload | |
|
|
@@ -130,6 +140,8 @@ error boundary catches it. `collect` never throws.
|
|
|
130
140
|
| `onSeatDisallowed` | `SeatDisallowed` | `reason` is `booked`, `held`, `blocked`, `not-selectable`, `max-selection` or `companion-unavailable`. |
|
|
131
141
|
| `onSeatFocus` | `RenderSeat` | |
|
|
132
142
|
| `onValidationIssues` | `readonly KerusiViolation[]` | Called whenever the documents change. |
|
|
143
|
+
| `onViewportChange` | `KerusiViewport` | `{ zoom, x, y }`, whenever the zoom or pan changes. Only with `zoomable`. |
|
|
144
|
+
| `onMaximizedChange` | `boolean` | When the map is maximized or restored. Only with `maximizable`. |
|
|
133
145
|
|
|
134
146
|
### The `ref`
|
|
135
147
|
|
|
@@ -137,6 +149,8 @@ error boundary catches it. `collect` never throws.
|
|
|
137
149
|
const map = useRef<KerusiSeatmapHandle>(null);
|
|
138
150
|
// map.current.summary -> { seats, total, unpriced }
|
|
139
151
|
// map.current.focusSeat('A12')
|
|
152
|
+
// map.current.viewport -> { zoom, x, y }
|
|
153
|
+
// map.current.zoomIn() / zoomOut() / resetZoom() / toggleMaximized()
|
|
140
154
|
```
|
|
141
155
|
|
|
142
156
|
### Memoizing props
|
|
@@ -157,11 +171,11 @@ only need to think about them if you pass your own.
|
|
|
157
171
|
### The seat glyph
|
|
158
172
|
|
|
159
173
|
**Colour means seat type; shape means status.** A seat's fill is always its
|
|
160
|
-
`SeatType.color`, or the theme's `availableBg` when the type has none
|
|
161
|
-
not change when the seat is held or booked. `selected` is the one
|
|
174
|
+
`SeatType.color`, or the theme's `availableBg` when the type has none. It does
|
|
175
|
+
not change when the seat is held or booked. `selected` is the one
|
|
162
176
|
exception: it owns the seat's colour outright, so your own picks are never
|
|
163
177
|
ambiguous, and a purple fill on its own would in any case fail WCAG 1.4.1 (Use
|
|
164
|
-
of Colour) for anyone who cannot distinguish it
|
|
178
|
+
of Colour) for anyone who cannot distinguish it, hence the shape cues. Held
|
|
165
179
|
seats take a wash and a hollow occupant figure; booked ones a wash and a solid
|
|
166
180
|
figure; selected ones a bright core inside a frame.
|
|
167
181
|
|
|
@@ -170,13 +184,13 @@ figure; selected ones a bright core inside a frame.
|
|
|
170
184
|
Colors resolve through three tiers, highest first:
|
|
171
185
|
|
|
172
186
|
1. A `--kerusi-*` custom property in **your** stylesheet.
|
|
173
|
-
2. The **`colors` prop
|
|
187
|
+
2. The **`colors` prop**: a partial `KerusiSeatmapColors`, merged over the defaults.
|
|
174
188
|
3. The library default.
|
|
175
189
|
|
|
176
190
|
The library never writes a `--kerusi-*` property onto its own root, which is
|
|
177
191
|
what keeps that order true: every fill is emitted as
|
|
178
|
-
`var(--kerusi-selected-bg, <the resolved prop value>)`. Use whichever tier fits
|
|
179
|
-
|
|
192
|
+
`var(--kerusi-selected-bg, <the resolved prop value>)`. Use whichever tier fits:
|
|
193
|
+
the prop for values known at build time, CSS for anything that has to respond
|
|
180
194
|
to a media query or a theme class.
|
|
181
195
|
|
|
182
196
|
```css
|
|
@@ -207,10 +221,82 @@ Every key of `KerusiSeatmapColors` has a property, kebab-cased:
|
|
|
207
221
|
| `focusRing` | `--kerusi-focus-ring` |
|
|
208
222
|
| `backdrop` | `--kerusi-backdrop` |
|
|
209
223
|
|
|
224
|
+
### Zoom, pan and maximize
|
|
225
|
+
|
|
226
|
+
Two features, both **off by default**: with them off the markup and behaviour are
|
|
227
|
+
exactly what they were. They are independent; turn on either or both.
|
|
228
|
+
|
|
229
|
+
On a phone a map of several hundred seats is drawn at fit-to-width, so a seat is
|
|
230
|
+
too small to tap. `zoomable` lets the reader zoom in and pan; `maximizable` adds a button
|
|
231
|
+
that fills the screen.
|
|
232
|
+
|
|
233
|
+
**Zoom and pan.**
|
|
234
|
+
|
|
235
|
+
- **Pinch** with two fingers on a touch screen. **Ctrl/Cmd + wheel**, or a
|
|
236
|
+
trackpad pinch (Safari's included), on desktop. A plain wheel is left alone, so
|
|
237
|
+
the page still scrolls.
|
|
238
|
+
- **Drag** with one finger or the primary mouse button to pan.
|
|
239
|
+
- **A tap still selects**, at any zoom level. A touch or click that moves less
|
|
240
|
+
than 8 CSS pixels is a tap, and reaches the seat exactly as it does without
|
|
241
|
+
`zoomable`. Anything that moves further is a drag, and a drag never selects the
|
|
242
|
+
seat under it.
|
|
243
|
+
- **Limits.** The floor is fit-to-container, the ceiling is `maxZoom` (default
|
|
244
|
+
`4`), and panning stays inside the map. A map smaller than its container, which
|
|
245
|
+
happens when it is maximized on a large screen, is centred.
|
|
246
|
+
- **Gestures and the page.** `touch-action` is `pan-y` at fit, so a one-finger
|
|
247
|
+
vertical swipe still scrolls the page while a pinch is the map's; once zoomed in
|
|
248
|
+
or maximized it is `none`. With `zoomable` off, no `touch-action` is set.
|
|
249
|
+
- **Reduced motion.** The short transition on the zoom buttons, the keys and
|
|
250
|
+
reset is dropped under `prefers-reduced-motion: reduce`. A finger or wheel moves
|
|
251
|
+
the map directly and never eases.
|
|
252
|
+
|
|
253
|
+
| Key | |
|
|
254
|
+
| --------------- | ------------------------------------------------------------ |
|
|
255
|
+
| `+` / `=`, `-` | Zoom in / out, from anywhere inside the map |
|
|
256
|
+
| `0` | Reset to fit |
|
|
257
|
+
| `←` `→` `↑` `↓` | Pan, when the zoomable viewport itself has focus (Tab to it) |
|
|
258
|
+
|
|
259
|
+
On a seat, the arrow keys keep their usual job of moving seat focus, and a seat
|
|
260
|
+
that takes keyboard focus is scrolled into view. Ctrl, Cmd and Alt combinations
|
|
261
|
+
are left to the browser, and keys typed into a field you put inside the map are
|
|
262
|
+
ignored.
|
|
263
|
+
|
|
264
|
+
**Controls.** The zoom buttons (zoom in, zoom out, reset to fit) are real
|
|
265
|
+
`<button>`s with accessible names. At a limit they set `aria-disabled` rather than
|
|
266
|
+
`disabled`, so keyboard focus is not thrown away mid-press. Their names come from
|
|
267
|
+
`controlStrings`, for translation. They use the theme's existing tokens
|
|
268
|
+
(`--kerusi-element-bg`, `--kerusi-element-fg`, `--kerusi-element-muted-fg`,
|
|
269
|
+
`--kerusi-focus-ring`), so there is nothing new to theme.
|
|
270
|
+
|
|
271
|
+
To put the controls somewhere else, turn the built-in ones off
|
|
272
|
+
(`showZoomControls={false}`) and drive the map yourself:
|
|
273
|
+
|
|
274
|
+
```tsx
|
|
275
|
+
const map = useRef<KerusiSeatmapHandle>(null);
|
|
276
|
+
// map.current.zoomIn(); map.current.zoomOut(); map.current.resetZoom(); map.current.toggleMaximized();
|
|
277
|
+
// map.current.viewport -> { zoom, x, y }
|
|
278
|
+
// map.current.maximized -> boolean
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
`onViewportChange` reports `{ zoom, x, y }` whenever the view changes, for a host that wants
|
|
282
|
+
to display or persist it. (Restoring a saved view is not supported.)
|
|
283
|
+
|
|
284
|
+
**Maximize.** The button fills the screen with the map and its legend, freezes the
|
|
285
|
+
page behind it, and swaps to an "Exit full screen" button. The layout is a fixed
|
|
286
|
+
overlay, which is all iPhone Safari offers; where the browser has the Fullscreen
|
|
287
|
+
API it is requested on top, and leaving it with the browser's own Esc leaves the
|
|
288
|
+
map's maximized state too. `Escape` from the map also leaves, except that on a
|
|
289
|
+
seat with a non-empty selection the first `Escape` still clears the selection, as
|
|
290
|
+
it always has. The backdrop is `--kerusi-backdrop`, or the page's own canvas colour
|
|
291
|
+
while that is transparent; `--kerusi-maximized-z-index` (default `1000`) sets the
|
|
292
|
+
stacking. It is not a modal dialog: focus is not trapped, and an ancestor with a
|
|
293
|
+
`transform` or `filter` would anchor the fixed layout to itself instead of the
|
|
294
|
+
screen.
|
|
295
|
+
|
|
210
296
|
### Keyboard
|
|
211
297
|
|
|
212
298
|
Tab moves between sections; each section keeps its own tab stop. Within a
|
|
213
|
-
section, arrow keys follow the §4.3.1 `col` order
|
|
299
|
+
section, arrow keys follow the §4.3.1 `col` order, so an aisle, which is a
|
|
214
300
|
column no seat occupies, is stepped across rather than into.
|
|
215
301
|
|
|
216
302
|
| Key | |
|
|
@@ -227,6 +313,8 @@ Each seat is a `role="button"` announcing its position, type, price, status,
|
|
|
227
313
|
every `Seat.accessibility` property and its attributes. A polite live region
|
|
228
314
|
reports the running selection and any disallowed reason.
|
|
229
315
|
|
|
316
|
+
With `zoomable` on there are a few more keys: see [Zoom, pan and maximize](#zoom-pan-and-maximize).
|
|
317
|
+
|
|
230
318
|
---
|
|
231
319
|
|
|
232
320
|
## `<KerusiLegend>`
|
|
@@ -238,7 +326,7 @@ Rendered inline by `showLegend`, or placed anywhere yourself:
|
|
|
238
326
|
```
|
|
239
327
|
|
|
240
328
|
It resolves swatches through the same path as the seat fills, so the two cannot
|
|
241
|
-
drift apart. Every availability swatch
|
|
329
|
+
drift apart. Every availability swatch, not just **Selected**, draws the seat
|
|
242
330
|
glyph itself rather than a flat colour, because shape is the cue the map uses
|
|
243
331
|
for status.
|
|
244
332
|
|
|
@@ -267,7 +355,7 @@ useEffect(() => {
|
|
|
267
355
|
```
|
|
268
356
|
|
|
269
357
|
`apply`, `reset` and `tick` keep a stable identity across renders, so an effect
|
|
270
|
-
can subscribe once. It also exposes `needsRefetch` and `heldSeats
|
|
358
|
+
can subscribe once. It also exposes `needsRefetch` and `heldSeats`: every
|
|
271
359
|
currently-held seat with the time left on its hold, soonest first.
|
|
272
360
|
|
|
273
361
|
Deltas that are stale, duplicate or scoped to another session are discarded.
|
|
@@ -275,7 +363,7 @@ Deltas that are stale, duplicate or scoped to another session are discarded.
|
|
|
275
363
|
> **Gap detection needs a sequence.** §5.2 requires `updatedAt` to be strictly
|
|
276
364
|
> increasing but not contiguous, so it cannot by itself distinguish "a delta was
|
|
277
365
|
> lost" from "nothing happened for a while". The hook detects gaps when the
|
|
278
|
-
> transport supplies a monotonic sequence
|
|
366
|
+
> transport supplies a monotonic sequence: `metadata.seq` by default, or your
|
|
279
367
|
> own `sequenceOf` reader. A gapped delta is still applied, so the map degrades
|
|
280
368
|
> rather than freezes while you re-fetch.
|
|
281
369
|
|
|
@@ -283,7 +371,7 @@ Deltas that are stale, duplicate or scoped to another session are discarded.
|
|
|
283
371
|
|
|
284
372
|
## Working with the format directly
|
|
285
373
|
|
|
286
|
-
All of this lives in `@kerusiweb/core` and is pure
|
|
374
|
+
All of this lives in `@kerusiweb/core` and is pure (no React import), so it can
|
|
287
375
|
run in a test, a build step, a server component or a route loader.
|
|
288
376
|
|
|
289
377
|
```ts
|
package/dist/kerusi-seatmap.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ import type { KerusiSeatmapHandle, KerusiSeatmapProps } from './types.js';
|
|
|
15
15
|
*
|
|
16
16
|
* Import the stylesheet once, anywhere in the app:
|
|
17
17
|
* `import '@kerusiweb/react/styles.css'`.
|
|
18
|
+
*
|
|
19
|
+
* Two opt-in features sit on top, both off by default so an existing map is
|
|
20
|
+
* unchanged: `zoomable` (pinch, wheel and drag, keys `+` `-` `0`, buttons) and
|
|
21
|
+
* `maximizable` (a full-screen button). Their arithmetic is in
|
|
22
|
+
* `@kerusiweb/core`; this file supplies the listeners and the state.
|
|
18
23
|
*/
|
|
19
24
|
export declare const KerusiSeatmap: import("react").ForwardRefExoticComponent<KerusiSeatmapProps & import("react").RefAttributes<KerusiSeatmapHandle>>;
|
|
20
25
|
//# sourceMappingURL=kerusi-seatmap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kerusi-seatmap.d.ts","sourceRoot":"","sources":["../src/kerusi-seatmap.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kerusi-seatmap.d.ts","sourceRoot":"","sources":["../src/kerusi-seatmap.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AASpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,oHAkmBzB,CAAC"}
|
package/dist/kerusi-seatmap.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { buildNavigationGraph, buildRenderModel, DEFAULT_SEAT_ARIA_STRINGS, disallowedAnnouncement, computeSectionLayout, errorsOf, expireHolds as expireHoldsIn, formatMoney, isRtlLocale, KerusiValidationError, resolveColors, resolveMapLocale, seatAriaLabel, summarizeSelection, toggleSeatSelection, validateDocumentSet, } from '@kerusiweb/core';
|
|
3
|
-
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState } from 'react';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { buildNavigationGraph, buildRenderModel, controlStyle, DEFAULT_MAX_ZOOM, DEFAULT_SEAT_ARIA_STRINGS, disallowedAnnouncement, computeSectionLayout, errorsOf, expireHolds as expireHoldsIn, formatMoney, isRtlLocale, isTextEntryTarget, KerusiValidationError, resolveColors, resolveControlStrings, resolveMapLocale, seatAriaLabel, summarizeSelection, toggleSeatSelection, validateDocumentSet, viewportTouchAction, viewportTransform, } from '@kerusiweb/core';
|
|
3
|
+
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState, } from 'react';
|
|
4
4
|
import { KerusiLegend } from './kerusi-legend.js';
|
|
5
5
|
import { KerusiSection } from './kerusi-section.js';
|
|
6
|
+
import { useMaximized } from './use-maximized.js';
|
|
6
7
|
import { useRovingFocus } from './use-roving-focus.js';
|
|
8
|
+
import { useViewport } from './use-viewport.js';
|
|
7
9
|
const NO_SELECTION = [];
|
|
8
10
|
const DEFAULT_SELECTABLE_STATUSES = ['available'];
|
|
9
11
|
const NO_OVERRIDES = {};
|
|
@@ -23,9 +25,14 @@ const NO_OVERRIDES = {};
|
|
|
23
25
|
*
|
|
24
26
|
* Import the stylesheet once, anywhere in the app:
|
|
25
27
|
* `import '@kerusiweb/react/styles.css'`.
|
|
28
|
+
*
|
|
29
|
+
* Two opt-in features sit on top, both off by default so an existing map is
|
|
30
|
+
* unchanged: `zoomable` (pinch, wheel and drag, keys `+` `-` `0`, buttons) and
|
|
31
|
+
* `maximizable` (a full-screen button). Their arithmetic is in
|
|
32
|
+
* `@kerusiweb/core`; this file supplies the listeners and the state.
|
|
26
33
|
*/
|
|
27
34
|
export const KerusiSeatmap = forwardRef(function KerusiSeatmap(props, ref) {
|
|
28
|
-
const { map, state, session, selection: controlledSelection, defaultSelection = NO_SELECTION, onSelectionChange, locale, rtl = 'auto', ariaStrings = DEFAULT_SEAT_ARIA_STRINGS, colors, typeColors = true, seatSize = 28, seatGap = 6, freeformBasis = 1000, unitScale = 1, showSectionLabels = true, showLegend = false, showLegendPrices = true, sectionIds, sectionOverrides = NO_OVERRIDES, selectableStatuses = DEFAULT_SELECTABLE_STATUSES, companionMode = 'auto', maxSelection, seatSelectable, interactive = true, expireHolds = false, expiryIntervalMs = 1000, validate = 'collect', onSeatSelect, onSeatDeselect, onSeatDisallowed, onSeatFocus, onValidationIssues, className, style, children, } = props;
|
|
35
|
+
const { map, state, session, selection: controlledSelection, defaultSelection = NO_SELECTION, onSelectionChange, locale, rtl = 'auto', ariaStrings = DEFAULT_SEAT_ARIA_STRINGS, colors, typeColors = true, seatSize = 28, seatGap = 6, freeformBasis = 1000, unitScale = 1, showSectionLabels = true, showLegend = false, showLegendPrices = true, sectionIds, sectionOverrides = NO_OVERRIDES, selectableStatuses = DEFAULT_SELECTABLE_STATUSES, companionMode = 'auto', maxSelection, seatSelectable, interactive = true, expireHolds = false, expiryIntervalMs = 1000, zoomable = false, maxZoom = DEFAULT_MAX_ZOOM, showZoomControls = true, maximizable = false, controlStrings, validate = 'collect', onSeatSelect, onSeatDeselect, onSeatDisallowed, onSeatFocus, onValidationIssues, onViewportChange, onMaximizedChange, className, style, children, } = props;
|
|
29
36
|
// --- selection: controlled or not ---------------------------------------
|
|
30
37
|
const [uncontrolledSelection, setUncontrolledSelection] = useState(defaultSelection);
|
|
31
38
|
const isControlled = controlledSelection !== undefined;
|
|
@@ -120,7 +127,20 @@ export const KerusiSeatmap = forwardRef(function KerusiSeatmap(props, ref) {
|
|
|
120
127
|
seatAriaLabel(seat, resolvedLocale, ariaStrings),
|
|
121
128
|
])), [renderMap, resolvedLocale, ariaStrings]);
|
|
122
129
|
// --- focus and announcements --------------------------------------------
|
|
123
|
-
const { focusedSeatIds, setFocusedSeat, moveFocusTo, focusSeat, registerSeat } = useRovingFocus(renderMap);
|
|
130
|
+
const { focusedSeatIds, setFocusedSeat, moveFocusTo, focusSeat, getSeatNode, registerSeat } = useRovingFocus(renderMap, zoomable);
|
|
131
|
+
// --- zoom, pan and maximize -----------------------------------------------
|
|
132
|
+
const rootRef = useRef(null);
|
|
133
|
+
const zoom = useViewport({ enabled: zoomable, maxZoom, onViewportChange });
|
|
134
|
+
const { maximized, toggleMaximized, setMaximized } = useMaximized({
|
|
135
|
+
enabled: maximizable,
|
|
136
|
+
rootRef,
|
|
137
|
+
onChange: onMaximizedChange,
|
|
138
|
+
});
|
|
139
|
+
const strings = useMemo(() => resolveControlStrings(controlStrings), [controlStrings]);
|
|
140
|
+
const controlColors = useMemo(() => controlStyle(colors), [colors]);
|
|
141
|
+
const showToolbar = (zoomable && showZoomControls) || maximizable;
|
|
142
|
+
const atFit = zoom.viewport.zoom <= 1 + 1e-4;
|
|
143
|
+
const atMaxZoom = zoom.viewport.zoom >= zoom.limits.maxZoom - 1e-4;
|
|
124
144
|
/**
|
|
125
145
|
* The live-region text, plus a counter that makes a repeat of the same
|
|
126
146
|
* message textually distinct.
|
|
@@ -190,7 +210,10 @@ export const KerusiSeatmap = forwardRef(function KerusiSeatmap(props, ref) {
|
|
|
190
210
|
}
|
|
191
211
|
setFocusedSeat(seat.sectionId, seatId);
|
|
192
212
|
onSeatFocus?.(seat);
|
|
193
|
-
|
|
213
|
+
if (zoomable) {
|
|
214
|
+
zoom.revealSeat(getSeatNode(seatId));
|
|
215
|
+
}
|
|
216
|
+
}, [renderMap, setFocusedSeat, onSeatFocus, zoomable, zoom.revealSeat, getSeatNode]);
|
|
194
217
|
/**
|
|
195
218
|
* Arrow keys walk the navigation graph, which orders seats by `col` in grid
|
|
196
219
|
* and mixed sections — §4.3.1's logical adjacency — so the aisle that is a
|
|
@@ -254,14 +277,71 @@ export const KerusiSeatmap = forwardRef(function KerusiSeatmap(props, ref) {
|
|
|
254
277
|
}, [graphs, onSeatActivate, selection, commitSelection, announceSelection, moveFocusTo]);
|
|
255
278
|
// --- public handle ------------------------------------------------------
|
|
256
279
|
const summary = useMemo(() => summarizeSelection(renderMap, selection), [renderMap, selection]);
|
|
257
|
-
useImperativeHandle(ref, () => ({
|
|
280
|
+
useImperativeHandle(ref, () => ({
|
|
281
|
+
summary,
|
|
282
|
+
focusSeat,
|
|
283
|
+
viewport: zoom.viewport,
|
|
284
|
+
zoomIn: zoom.zoomIn,
|
|
285
|
+
zoomOut: zoom.zoomOut,
|
|
286
|
+
resetZoom: zoom.resetZoom,
|
|
287
|
+
maximized,
|
|
288
|
+
toggleMaximized,
|
|
289
|
+
}), [
|
|
290
|
+
summary,
|
|
291
|
+
focusSeat,
|
|
292
|
+
zoom.viewport,
|
|
293
|
+
zoom.zoomIn,
|
|
294
|
+
zoom.zoomOut,
|
|
295
|
+
zoom.resetZoom,
|
|
296
|
+
maximized,
|
|
297
|
+
toggleMaximized,
|
|
298
|
+
]);
|
|
299
|
+
/**
|
|
300
|
+
* `+` `-` `0` zoom, and arrows pan when the viewport itself has focus; Esc
|
|
301
|
+
* leaves a maximized map. A seat's own handler runs first, so an Esc that
|
|
302
|
+
* cleared the selection is already `defaultPrevented` and stays at that.
|
|
303
|
+
*/
|
|
304
|
+
const onRootKeyDown = (event) => {
|
|
305
|
+
if (event.defaultPrevented || isTextEntryTarget(event.target)) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (zoomable && zoom.handleKeyDown(event)) {
|
|
309
|
+
event.preventDefault();
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (event.key === 'Escape' && maximized) {
|
|
313
|
+
event.preventDefault();
|
|
314
|
+
setMaximized(false);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
258
317
|
// --- render -------------------------------------------------------------
|
|
259
318
|
const labelFor = (section) => sectionOverrides[section.id]?.label ?? section.label;
|
|
260
319
|
const labelId = (section) => `kerusi-section-${renderMap.id}-${section.id}`;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
320
|
+
const sections = renderMap.sections.map((section) => {
|
|
321
|
+
const label = labelFor(section);
|
|
322
|
+
return (_jsxs("section", { className: `kerusi-seatmap__section kerusi-seatmap__section--${section.layoutMode}`, role: "group", "aria-labelledby": label ? labelId(section) : undefined, "aria-label": label ? undefined : section.id, children: [showSectionLabels && label && (_jsx("h3", { className: "kerusi-section-label", id: labelId(section), children: label })), _jsx(KerusiSection, { section: section, layout: layouts.get(section.id), selection: selectionSet, focusedSeatId: focusedSeatIds[section.id] ?? null, ariaLabels: ariaLabels, colors: resolvedColors, typeColors: typeColors, unitScale: unitScale, interactive: interactive, onSeatActivate: onSeatActivate, onSeatFocused: onSeatFocused, onSeatKeyDown: (event) => onKeyDown(section.id, event), registerSeat: registerSeat })] }, section.id));
|
|
323
|
+
});
|
|
324
|
+
const focusRing = { '--kerusi-focus-ring-input': resolvedColors.focusRing };
|
|
325
|
+
const buttonStyle = {
|
|
326
|
+
background: controlColors.buttonBackground,
|
|
327
|
+
color: controlColors.buttonColor,
|
|
328
|
+
borderColor: controlColors.buttonBorder,
|
|
329
|
+
};
|
|
330
|
+
const classes = ['kerusi-seatmap', className, maximized && 'kerusi-seatmap--maximized']
|
|
331
|
+
.filter(Boolean)
|
|
332
|
+
.join(' ');
|
|
333
|
+
return (_jsxs("div", { ref: rootRef, className: classes, role: "group", "aria-label": renderMap.name ?? `Seat map ${renderMap.id}`, dir: isRtl ? 'rtl' : undefined, lang: resolvedLocale, style: maximized
|
|
334
|
+
? {
|
|
335
|
+
...style,
|
|
336
|
+
background: controlColors.maximizedBackground,
|
|
337
|
+
color: controlColors.maximizedColor,
|
|
338
|
+
}
|
|
339
|
+
: style, onKeyDown: onRootKeyDown, children: [zoomable || maximizable ? (_jsxs("div", { className: "kerusi-seatmap__stage", children: [showToolbar && (_jsxs("div", { className: "kerusi-toolbar", role: "toolbar", "aria-label": strings.toolbar, style: focusRing, children: [zoomable && showZoomControls && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "kerusi-control kerusi-control--zoom-in", "aria-label": strings.zoomIn, "aria-disabled": atMaxZoom, style: buttonStyle, onClick: zoom.zoomIn, children: _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M12 5v14M5 12h14" }) }) }), _jsx("button", { type: "button", className: "kerusi-control kerusi-control--zoom-out", "aria-label": strings.zoomOut, "aria-disabled": atFit, style: buttonStyle, onClick: zoom.zoomOut, children: _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M5 12h14" }) }) }), _jsx("button", { type: "button", className: "kerusi-control kerusi-control--zoom-reset", "aria-label": strings.zoomReset, "aria-disabled": atFit, style: buttonStyle, onClick: zoom.resetZoom, children: _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M3 12a9 9 0 1 0 3-6.7M3 4v5h5" }) }) })] })), maximizable && (_jsx("button", { type: "button", className: "kerusi-control kerusi-control--maximize", "aria-label": maximized ? strings.restore : strings.maximize, style: buttonStyle, onClick: toggleMaximized, children: _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: maximized ? (_jsx("path", { d: "M9 4v5H4M15 4v5h5M15 20v-5h5M9 20v-5H4" })) : (_jsx("path", { d: "M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5" })) }) }))] })), zoomable ? (_jsx("div", { ref: zoom.viewRef, className: "kerusi-viewport", role: "group", tabIndex: 0, "aria-label": strings.viewport, style: {
|
|
340
|
+
...focusRing,
|
|
341
|
+
touchAction: viewportTouchAction(zoom.viewport, maximized),
|
|
342
|
+
}, children: _jsx("div", { ref: zoom.contentRef, className: zoom.animated
|
|
343
|
+
? 'kerusi-viewport__content kerusi-viewport__content--animated'
|
|
344
|
+
: 'kerusi-viewport__content', style: { transform: viewportTransform(zoom.viewport) }, children: sections }) })) : (sections)] })) : (sections), showLegend && (_jsx(KerusiLegend, { legend: renderMap.legend, locale: resolvedLocale, colors: resolvedColors, typeColors: typeColors, showPrices: showLegendPrices })), _jsx("p", { className: "kerusi-sr-only", "aria-live": "polite", "aria-atomic": "true", children: liveMessage }), children] }));
|
|
265
345
|
});
|
|
266
346
|
function formatTotal(total, locale) {
|
|
267
347
|
return total ? formatMoney(total, locale) : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kerusi-seatmap.js","sourceRoot":"","sources":["../src/kerusi-seatmap.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kerusi-seatmap.js","sourceRoot":"","sources":["../src/kerusi-seatmap.tsx"],"names":[],"mappings":"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"}
|
package/dist/kerusi-section.js
CHANGED
|
@@ -87,6 +87,14 @@ function SectionElement({ placed, colors, }) {
|
|
|
87
87
|
const style = elementStyle(placed.element.kind);
|
|
88
88
|
const fill = elementFill(style.tone, colors);
|
|
89
89
|
const textFill = elementTextFill(style.tone, colors);
|
|
90
|
+
if (style.shape === 'text') {
|
|
91
|
+
// Only the label: no box. The <g> rotation turns the text itself, so unlike
|
|
92
|
+
// a label on a shape it is not counter-rotated. With no label there is
|
|
93
|
+
// nothing to draw, rather than an empty box.
|
|
94
|
+
if (!placed.element.label || !style.showLabel)
|
|
95
|
+
return null;
|
|
96
|
+
return (_jsx("g", { className: `kerusi-element kerusi-element--${placed.element.kind}`, transform: transform(placed) ?? undefined, children: _jsx("text", { className: "kerusi-element__label", textAnchor: "middle", dominantBaseline: "central", x: placed.centerX, y: placed.centerY, fontSize: placed.fontSize, style: { fill: textFill }, children: placed.element.label }) }));
|
|
97
|
+
}
|
|
90
98
|
return (_jsxs("g", { className: `kerusi-element kerusi-element--${placed.element.kind}`, transform: transform(placed) ?? undefined, children: [style.shape === 'screen' ? (_jsx("path", { d: screenPath(placed.x, placed.y, placed.width, placed.height), style: { fill } })) : style.shape === 'void' ? (_jsx("rect", { className: "kerusi-element__void", x: placed.x, y: placed.y, width: placed.width, height: placed.height, style: { stroke: textFill }, fill: "none" })) : (_jsx("rect", { x: placed.x, y: placed.y, width: placed.width, height: placed.height,
|
|
91
99
|
/* A stage reads as squarer than an ordinary element. */
|
|
92
100
|
rx: style.shape === 'stage' ? 2 : Math.min(placed.height * 0.25, 6), style: { fill } })), placed.element.label && style.showLabel && (_jsx("text", { className: "kerusi-element__label", textAnchor: "middle", dominantBaseline: "central", x: placed.centerX, y: placed.centerY, fontSize: placed.fontSize, style: { fill: textFill }, transform: counterRotate(placed) ?? undefined, children: placed.element.label }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kerusi-section.js","sourceRoot":"","sources":["../src/kerusi-section.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kerusi-section.js","sourceRoot":"","sources":["../src/kerusi-section.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DisallowedReason, KerusiMap, KerusiSeatmapColors, KerusiSession, KerusiState, KerusiViolation, RenderSeat, SeatAriaStrings, SeatRenderStatus, SelectionSummary } from '@kerusiweb/core';
|
|
1
|
+
import type { DisallowedReason, KerusiControlStrings, KerusiMap, KerusiSeatmapColors, KerusiSession, KerusiState, KerusiViewport, KerusiViolation, RenderSeat, SeatAriaStrings, SeatRenderStatus, SelectionSummary } from '@kerusiweb/core';
|
|
2
2
|
import type { CSSProperties, ReactNode } from 'react';
|
|
3
3
|
/** How a document with validation errors is handled. */
|
|
4
4
|
export type ValidationMode =
|
|
@@ -36,6 +36,18 @@ export interface KerusiSeatmapHandle {
|
|
|
36
36
|
readonly summary: SelectionSummary;
|
|
37
37
|
/** Moves DOM focus to a seat, if it is rendered. */
|
|
38
38
|
focusSeat(seatId: string): void;
|
|
39
|
+
/** The current zoom and pan. Fit (`{ zoom: 1, x: 0, y: 0 }`) unless `zoomable`. */
|
|
40
|
+
readonly viewport: KerusiViewport;
|
|
41
|
+
/** Zooms in one step about the centre. No-op unless `zoomable`. */
|
|
42
|
+
zoomIn(): void;
|
|
43
|
+
/** Zooms out one step about the centre. No-op unless `zoomable`. */
|
|
44
|
+
zoomOut(): void;
|
|
45
|
+
/** Back to fit-to-container: the map's original view. No-op unless `zoomable`. */
|
|
46
|
+
resetZoom(): void;
|
|
47
|
+
/** Whether the map is currently maximized. */
|
|
48
|
+
readonly maximized: boolean;
|
|
49
|
+
/** Maximizes or restores the map. Maximizing needs `maximizable`. */
|
|
50
|
+
toggleMaximized(): void;
|
|
39
51
|
}
|
|
40
52
|
export interface KerusiSeatmapProps {
|
|
41
53
|
map: KerusiMap;
|
|
@@ -96,6 +108,26 @@ export interface KerusiSeatmapProps {
|
|
|
96
108
|
*/
|
|
97
109
|
expireHolds?: boolean;
|
|
98
110
|
expiryIntervalMs?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Pinch, Ctrl/Cmd + wheel and drag to zoom and pan, `+` `-` `0` on the keyboard,
|
|
113
|
+
* and on-screen buttons. A tap still selects at every zoom level. Default `false`.
|
|
114
|
+
*/
|
|
115
|
+
zoomable?: boolean;
|
|
116
|
+
/** The zoom ceiling, relative to fit-to-container. The floor is always fit. Default `4`. */
|
|
117
|
+
maxZoom?: number;
|
|
118
|
+
/**
|
|
119
|
+
* The built-in zoom buttons. Turn this off to supply your own, anywhere on the
|
|
120
|
+
* page, and call `zoomIn()`, `zoomOut()` and `resetZoom()` on a `ref`.
|
|
121
|
+
*/
|
|
122
|
+
showZoomControls?: boolean;
|
|
123
|
+
/** A button that maximizes the map to fill the screen. Default `false`. */
|
|
124
|
+
maximizable?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Overrides the built-in English names of the zoom and maximize controls.
|
|
127
|
+
*
|
|
128
|
+
* Memoize it — a new object each render rebuilds the controls' strings.
|
|
129
|
+
*/
|
|
130
|
+
controlStrings?: Partial<KerusiControlStrings>;
|
|
99
131
|
validate?: ValidationMode;
|
|
100
132
|
onSeatSelect?: (event: SeatInteraction) => void;
|
|
101
133
|
onSeatDeselect?: (event: SeatInteraction) => void;
|
|
@@ -103,6 +135,9 @@ export interface KerusiSeatmapProps {
|
|
|
103
135
|
onSeatFocus?: (seat: RenderSeat) => void;
|
|
104
136
|
/** Called whenever the documents change, unless `validate` is `off`. */
|
|
105
137
|
onValidationIssues?: (issues: readonly KerusiViolation[]) => void;
|
|
138
|
+
/** The zoom and pan, whenever they change. For a host that persists or shows them. */
|
|
139
|
+
onViewportChange?: (viewport: KerusiViewport) => void;
|
|
140
|
+
onMaximizedChange?: (maximized: boolean) => void;
|
|
106
141
|
className?: string;
|
|
107
142
|
style?: CSSProperties;
|
|
108
143
|
/** Rendered inside the map's root element, after the sections and legend. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,wDAAwD;AACxD,MAAM,MAAM,cAAc;AACxB,0EAA0E;AACxE,SAAS;AACX,4EAA4E;GAC1E,OAAO;AACT,mEAAmE;GACjE,KAAK,CAAC;AAEV,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,sCAAsC;IACtC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mEAAmE;IACnE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,oDAAoD;IACpD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
export interface UseMaximizedOptions {
|
|
3
|
+
/** The map's `maximizable` prop. Maximizing is refused, and undone, without it. */
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
/** The map's root element: what goes full screen. */
|
|
6
|
+
rootRef: RefObject<HTMLElement | null>;
|
|
7
|
+
onChange?: (maximized: boolean) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface Maximized {
|
|
10
|
+
maximized: boolean;
|
|
11
|
+
setMaximized(next: boolean): void;
|
|
12
|
+
toggleMaximized(): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Maximizing the map to fill the screen.
|
|
16
|
+
*
|
|
17
|
+
* The fixed-position layout is the whole feature on iPhone, which has no
|
|
18
|
+
* element full screen. Where the browser offers one it is requested on top,
|
|
19
|
+
* and followed: leaving it with the browser's own Esc un-maximizes the map, so
|
|
20
|
+
* the two never disagree.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useMaximized({ enabled, rootRef, onChange }: UseMaximizedOptions): Maximized;
|
|
23
|
+
//# sourceMappingURL=use-maximized.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-maximized.d.ts","sourceRoot":"","sources":["../src/use-maximized.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,eAAe,IAAI,IAAI,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,SAAS,CAwE3F"}
|