@panneau/fields 5.0.0-alpha.15 → 5.0.0-alpha.17
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 +53 -3
- package/dist/address/AddressField.css +44 -0
- package/dist/address/AddressField.d.ts +37 -0
- package/dist/address/AddressField.d.ts.map +1 -0
- package/dist/address/AddressField.js +411 -0
- package/dist/address/AddressField.js.map +1 -0
- package/dist/address/AddressField.module.js +22 -0
- package/dist/address/AddressField.module.js.map +1 -0
- package/dist/address/address.d.ts +23 -0
- package/dist/address/address.d.ts.map +1 -0
- package/dist/address/address.js +58 -0
- package/dist/address/address.js.map +1 -0
- package/dist/address/index.d.ts +3 -0
- package/dist/address/index.d.ts.map +1 -0
- package/dist/address/index.js +3 -0
- package/dist/color/ColorField.css +9 -0
- package/dist/color/ColorField.d.ts +10 -3
- package/dist/color/ColorField.d.ts.map +1 -1
- package/dist/color/ColorField.js +341 -81
- package/dist/color/ColorField.js.map +1 -1
- package/dist/color/ColorField.module.js +4 -2
- package/dist/color/ColorField.module.js.map +1 -1
- package/dist/color/index.d.ts +1 -0
- package/dist/color/index.d.ts.map +1 -1
- package/dist/color/index.js +3 -1
- package/dist/color/palette.d.ts +23 -0
- package/dist/color/palette.d.ts.map +1 -0
- package/dist/color/palette.js +34 -0
- package/dist/color/palette.js.map +1 -0
- package/dist/country/CountryField.css +42 -0
- package/dist/country/CountryField.d.ts +19 -4
- package/dist/country/CountryField.d.ts.map +1 -1
- package/dist/country/CountryField.js +355 -82
- package/dist/country/CountryField.js.map +1 -1
- package/dist/country/CountryField.module.js +20 -0
- package/dist/country/CountryField.module.js.map +1 -0
- package/dist/country/index.d.ts +1 -1
- package/dist/country/index.d.ts.map +1 -1
- package/dist/daterange/DateRangeField.css +9 -0
- package/dist/daterange/DateRangeField.d.ts +31 -0
- package/dist/daterange/DateRangeField.d.ts.map +1 -0
- package/dist/daterange/DateRangeField.js +372 -0
- package/dist/daterange/DateRangeField.js.map +1 -0
- package/dist/daterange/DateRangeField.module.js +12 -0
- package/dist/daterange/DateRangeField.module.js.map +1 -0
- package/dist/daterange/index.d.ts +3 -0
- package/dist/daterange/index.d.ts.map +1 -0
- package/dist/daterange/index.js +3 -0
- package/dist/daterange/range.d.ts +61 -0
- package/dist/daterange/range.d.ts.map +1 -0
- package/dist/daterange/range.js +119 -0
- package/dist/daterange/range.js.map +1 -0
- package/dist/duration/DurationField.css +1 -1
- package/dist/duration/DurationField.d.ts +54 -13
- package/dist/duration/DurationField.d.ts.map +1 -1
- package/dist/duration/DurationField.js +205 -159
- package/dist/duration/DurationField.js.map +1 -1
- package/dist/duration/DurationField.module.js.map +1 -1
- package/dist/duration/index.d.ts +1 -1
- package/dist/duration/index.d.ts.map +1 -1
- package/dist/duration/index.js +1 -1
- package/dist/embed/EmbedField.d.ts +11 -2
- package/dist/embed/EmbedField.d.ts.map +1 -1
- package/dist/embed/EmbedField.js +179 -116
- package/dist/embed/EmbedField.js.map +1 -1
- package/dist/link/LinkField.css +12 -0
- package/dist/link/LinkField.d.ts +38 -0
- package/dist/link/LinkField.d.ts.map +1 -0
- package/dist/link/LinkField.js +742 -0
- package/dist/link/LinkField.js.map +1 -0
- package/dist/link/LinkField.module.js +8 -0
- package/dist/link/LinkField.module.js.map +1 -0
- package/dist/link/index.d.ts +3 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js +3 -0
- package/dist/link/link.d.ts +30 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js +63 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/pages.d.ts +17 -0
- package/dist/link/pages.d.ts.map +1 -0
- package/dist/link/pages.js +104 -0
- package/dist/link/pages.js.map +1 -0
- package/dist/location/LocationField.d.ts.map +1 -1
- package/dist/location/LocationField.js +9 -85
- package/dist/location/LocationField.js.map +1 -1
- package/dist/location/nominatim.d.ts +8 -2
- package/dist/location/nominatim.d.ts.map +1 -1
- package/dist/location/nominatim.js +32 -3
- package/dist/location/nominatim.js.map +1 -1
- package/dist/location/search.d.ts +10 -0
- package/dist/location/search.d.ts.map +1 -0
- package/dist/location/search.js +83 -0
- package/dist/location/search.js.map +1 -0
- package/dist/location/types.d.ts +8 -2
- package/dist/location/types.d.ts.map +1 -1
- package/dist/money/MoneyField.d.ts +28 -0
- package/dist/money/MoneyField.d.ts.map +1 -0
- package/dist/money/MoneyField.js +269 -0
- package/dist/money/MoneyField.js.map +1 -0
- package/dist/money/index.d.ts +3 -0
- package/dist/money/index.d.ts.map +1 -0
- package/dist/money/index.js +3 -0
- package/dist/money/money.d.ts +27 -0
- package/dist/money/money.d.ts.map +1 -0
- package/dist/money/money.js +56 -0
- package/dist/money/money.js.map +1 -0
- package/dist/region/RegionField.d.ts +2 -1
- package/dist/region/RegionField.d.ts.map +1 -1
- package/dist/region/RegionField.js +92 -54
- package/dist/region/RegionField.js.map +1 -1
- package/dist/region/RegionFlag.css +9 -0
- package/dist/region/RegionFlag.d.ts +20 -0
- package/dist/region/RegionFlag.d.ts.map +1 -0
- package/dist/region/RegionFlag.js +61 -0
- package/dist/region/RegionFlag.js.map +1 -0
- package/dist/region/RegionFlag.module.js +8 -0
- package/dist/region/RegionFlag.module.js.map +1 -0
- package/dist/region/flags/CA.d.ts +4 -0
- package/dist/region/flags/CA.d.ts.map +1 -0
- package/dist/region/flags/CA.js +21 -0
- package/dist/region/flags/CA.js.map +1 -0
- package/dist/region/flags/US.d.ts +4 -0
- package/dist/region/flags/US.d.ts.map +1 -0
- package/dist/region/flags/US.js +65 -0
- package/dist/region/flags/US.js.map +1 -0
- package/dist/region/flags.d.ts +17 -0
- package/dist/region/flags.d.ts.map +1 -0
- package/dist/region/flags.js +84 -0
- package/dist/region/flags.js.map +1 -0
- package/dist/region/index.d.ts +2 -0
- package/dist/region/index.d.ts.map +1 -1
- package/dist/region/index.js +3 -1
- package/dist/shared/CodeComboBox.d.ts +2 -1
- package/dist/shared/CodeComboBox.d.ts.map +1 -1
- package/dist/shared/CodeComboBox.js.map +1 -1
- package/dist/shared/builtIn.d.ts +3 -1
- package/dist/shared/builtIn.d.ts.map +1 -1
- package/dist/shared/builtIn.js +18 -8
- package/dist/shared/builtIn.js.map +1 -1
- package/dist/shared/dates.js +2 -2
- package/dist/shared/dates.js.map +1 -1
- package/dist/shared/flow.d.ts.map +1 -1
- package/dist/shared/flow.js +1 -0
- package/dist/shared/flow.js.map +1 -1
- package/dist/shared/part.d.ts +26 -0
- package/dist/shared/part.d.ts.map +1 -0
- package/dist/shared/part.js +64 -0
- package/dist/shared/part.js.map +1 -0
- package/dist/tel/TelField.css +25 -0
- package/dist/tel/TelField.d.ts +14 -2
- package/dist/tel/TelField.d.ts.map +1 -1
- package/dist/tel/TelField.js +246 -145
- package/dist/tel/TelField.js.map +1 -1
- package/dist/tel/TelField.module.js +12 -0
- package/dist/tel/TelField.module.js.map +1 -0
- package/dist/tel/index.d.ts +1 -1
- package/dist/tel/index.d.ts.map +1 -1
- package/dist/tel/index.js +2 -2
- package/dist/tel/phone.d.ts +28 -0
- package/dist/tel/phone.d.ts.map +1 -1
- package/dist/tel/phone.js +48 -1
- package/dist/tel/phone.js.map +1 -1
- package/dist/url/UrlField.d.ts.map +1 -1
- package/dist/url/UrlField.js +1 -1
- package/dist/url/UrlField.js.map +1 -1
- package/package.json +24 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.js","names":["Field","ColorPaletteEntry","value","label","color","HEX","isHexColor","test","isRecord","Record","Array","isArray","toColorPalette","palette","flatMap","entry","length","getColorPalette","field","settings","getSwatchColor"],"sources":["../../src/color/palette.ts"],"sourcesContent":["import type { Field } from '@panneau/protocol';\n\n/**\n * A color of a palette (`settings.palette` of a `color` field, decision 0058): `value` is what the\n * field stores, `color` (hexadecimal) draws its swatch, and `label` names it. Without `color`,\n * `value` is a hexadecimal color, which draws itself.\n */\nexport interface ColorPaletteEntry {\n value: string;\n label?: string;\n color?: string;\n}\n\nconst HEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i;\n\n/** Whether a value is a hexadecimal color: `#1d4ed8`, `#fff` or `#1d4ed880`. */\nexport function isHexColor(value: unknown): value is string {\n return typeof value === 'string' && HEX.test(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * The colors of a palette, from a field's `settings.palette`: entries with a `value`, and the\n * `label` and `color` they have. `null` when it has none.\n */\nexport function toColorPalette(value: unknown): ColorPaletteEntry[] | null {\n if (!Array.isArray(value)) {\n return null;\n }\n const palette = value.flatMap((entry): ColorPaletteEntry[] =>\n isRecord(entry) && typeof entry.value === 'string' && entry.value !== ''\n ? [\n {\n value: entry.value,\n ...(typeof entry.label === 'string' ? { label: entry.label } : {}),\n ...(isHexColor(entry.color) ? { color: entry.color } : {}),\n },\n ]\n : [],\n );\n return palette.length > 0 ? palette : null;\n}\n\n/** The palette of a `color` field (`settings.palette`), or `null` when it has none. */\nexport function getColorPalette(field: Field | null | undefined): ColorPaletteEntry[] | null {\n return toColorPalette(field?.settings?.palette);\n}\n\n/** The color that draws an entry's swatch: its `color`, or its value when it is hexadecimal. */\nexport function getSwatchColor(entry: ColorPaletteEntry): string | null {\n return entry.color ?? (isHexColor(entry.value) ? entry.value : null);\n}\n"],"mappings":";AAaA,IAAMK,MAAM;;AAGZ,SAAgBC,WAAWJ,OAAiC;CACxD,OAAO,OAAOA,UAAU,YAAYG,IAAIE,KAAKL,KAAK;AACtD;AAEA,SAASM,SAASN,OAAkD;CAChE,OAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,CAACQ,MAAMC,QAAQT,KAAK;AAC9E;;;;;AAMA,SAAgBU,eAAeV,OAA4C;CACvE,IAAI,CAACQ,MAAMC,QAAQT,KAAK,GACpB,OAAO;CAEX,MAAMW,UAAUX,MAAMY,SAASC,UAC3BP,SAASO,KAAK,KAAK,OAAOA,MAAMb,UAAU,YAAYa,MAAMb,UAAU,KAChE,CACI;EACIA,OAAOa,MAAMb;EACb,GAAI,OAAOa,MAAMZ,UAAU,WAAW,EAAEA,OAAOY,MAAMZ,MAAM,IAAI,CAAC;EAChE,GAAIG,WAAWS,MAAMX,KAAK,IAAI,EAAEA,OAAOW,MAAMX,MAAM,IAAI,CAAC;CAC5D,CAAC,IAEL,CAAA,CACV;CACA,OAAOS,QAAQG,SAAS,IAAIH,UAAU;AAC1C;;AAGA,SAAgBI,gBAAgBC,OAA6D;CACzF,OAAON,eAAeM,OAAOC,UAAUN,OAAO;AAClD;;AAGA,SAAgBO,eAAeL,OAAyC;CACpE,OAAOA,MAAMX,UAAUE,WAAWS,MAAMb,KAAK,IAAIa,MAAMb,QAAQ;AACnE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
.panneau-country-field-multiple {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: var(--panneau-space-2);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.panneau-country-field-countries {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-wrap: wrap;
|
|
10
|
+
gap: var(--panneau-space-1) var(--panneau-space-2);
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: 0;
|
|
13
|
+
list-style: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.panneau-country-field-country,
|
|
17
|
+
.panneau-country-field-fixed-country {
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: var(--panneau-space-1);
|
|
21
|
+
min-height: var(--panneau-control-height-sm);
|
|
22
|
+
max-width: 100%;
|
|
23
|
+
padding-inline: var(--panneau-space-3) var(--panneau-space-1);
|
|
24
|
+
font-size: var(--panneau-font-size-sm);
|
|
25
|
+
background-color: var(--panneau-color-surface-sunken);
|
|
26
|
+
border: var(--panneau-border-width) solid var(--panneau-color-border);
|
|
27
|
+
border-radius: var(--panneau-radius-full);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.panneau-country-field-fixed-country {
|
|
31
|
+
padding-inline-end: var(--panneau-space-3);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.panneau-country-field-flag {
|
|
35
|
+
flex: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.panneau-country-field-name {
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
text-overflow: ellipsis;
|
|
41
|
+
white-space: nowrap;
|
|
42
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { FieldEntryProps, FieldProps } from '../shared/types.js';
|
|
2
|
-
|
|
2
|
+
/** Props of both single and multiple country fields. */
|
|
3
|
+
export interface CountryFieldBaseProps extends Omit<FieldProps<never>, 'value' | 'onChange'> {
|
|
3
4
|
/** The codes to offer. All countries without it. */
|
|
4
5
|
countries?: readonly string[];
|
|
5
6
|
/** Codes shown first, in their order, above the others: `['CA', 'US']`. */
|
|
@@ -7,11 +8,25 @@ export interface CountryFieldProps extends FieldProps<string> {
|
|
|
7
8
|
placeholder?: string;
|
|
8
9
|
controlClassName?: string;
|
|
9
10
|
}
|
|
11
|
+
export interface SingleCountryFieldProps extends CountryFieldBaseProps {
|
|
12
|
+
multiple?: false;
|
|
13
|
+
value?: string | null;
|
|
14
|
+
onChange?: (value: string | null) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface MultipleCountryFieldProps extends CountryFieldBaseProps {
|
|
17
|
+
/** Several countries, in the order they were chosen (decision 0058). */
|
|
18
|
+
multiple: true;
|
|
19
|
+
value?: readonly string[] | null;
|
|
20
|
+
/** Called with the codes. An empty list is `null`. */
|
|
21
|
+
onChange?: (value: string[] | null) => void;
|
|
22
|
+
}
|
|
23
|
+
export type CountryFieldProps = SingleCountryFieldProps | MultipleCountryFieldProps;
|
|
10
24
|
/**
|
|
11
25
|
* A country, as its ISO 3166-1 alpha-2 code (`CA`): a combo box of the countries with their flags
|
|
12
|
-
* and their names in the user's locale. Typing filters them by name or by code.
|
|
26
|
+
* and their names in the user's locale. Typing filters them by name or by code. With `multiple`,
|
|
27
|
+
* several countries, each removable, in the order they were chosen, and the combo box adds one.
|
|
13
28
|
*/
|
|
14
|
-
export declare function CountryField(
|
|
15
|
-
/** The `country` type: `settings.countries` and `settings.preferred`. */
|
|
29
|
+
export declare function CountryField(props: CountryFieldProps): import("react").JSX.Element;
|
|
30
|
+
/** The `country` type: `multiple`, `settings.countries` and `settings.preferred`. */
|
|
16
31
|
export declare function CountryFieldEntry(props: FieldEntryProps): import("react").JSX.Element;
|
|
17
32
|
//# sourceMappingURL=CountryField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountryField.d.ts","sourceRoot":"","sources":["../../src/country/CountryField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CountryField.d.ts","sourceRoot":"","sources":["../../src/country/CountryField.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAInE,wDAAwD;AACxD,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxF,oDAAoD;IACpD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACpE,wEAAwE;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAoHpD;AAKD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,+BA0BvD"}
|
|
@@ -1,87 +1,327 @@
|
|
|
1
1
|
import { getFieldProps, getSetting, isString } from "../shared/entry.js";
|
|
2
2
|
import { messages } from "../shared/messages.js";
|
|
3
3
|
import { CodeComboBox } from "../shared/CodeComboBox.js";
|
|
4
|
-
import
|
|
4
|
+
import CountryField_module_default from "./CountryField.module.js";
|
|
5
|
+
import { getCountryChoices, getCountryFlag, getCountryName, isCountryCode } from "./countries.js";
|
|
5
6
|
import { c } from "react/compiler-runtime";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
7
|
+
import { X } from "lucide-react";
|
|
8
|
+
import { Fieldset, IconButton, usePanneauIntl } from "@panneau/ui";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
10
|
//#region src/country/CountryField.tsx
|
|
9
11
|
/**
|
|
10
12
|
* A country, as its ISO 3166-1 alpha-2 code (`CA`): a combo box of the countries with their flags
|
|
11
|
-
* and their names in the user's locale. Typing filters them by name or by code.
|
|
13
|
+
* and their names in the user's locale. Typing filters them by name or by code. With `multiple`,
|
|
14
|
+
* several countries, each removable, in the order they were chosen, and the combo box adds one.
|
|
12
15
|
*/
|
|
13
|
-
function CountryField(
|
|
14
|
-
const $ = c(
|
|
15
|
-
let countries;
|
|
16
|
-
let placeholder;
|
|
17
|
-
let preferred;
|
|
18
|
-
let props;
|
|
19
|
-
if ($[0] !== t0) {
|
|
20
|
-
({countries, preferred, placeholder, ...props} = t0);
|
|
21
|
-
$[0] = t0;
|
|
22
|
-
$[1] = countries;
|
|
23
|
-
$[2] = placeholder;
|
|
24
|
-
$[3] = preferred;
|
|
25
|
-
$[4] = props;
|
|
26
|
-
} else {
|
|
27
|
-
countries = $[1];
|
|
28
|
-
placeholder = $[2];
|
|
29
|
-
preferred = $[3];
|
|
30
|
-
props = $[4];
|
|
31
|
-
}
|
|
16
|
+
function CountryField(props) {
|
|
17
|
+
const $ = c(91);
|
|
32
18
|
const intl = usePanneauIntl();
|
|
19
|
+
const { countries, preferred } = props;
|
|
33
20
|
let T0;
|
|
21
|
+
let T1;
|
|
22
|
+
let codes;
|
|
23
|
+
let emptyMessage;
|
|
24
|
+
let set;
|
|
25
|
+
let t0;
|
|
34
26
|
let t1;
|
|
27
|
+
let t10;
|
|
28
|
+
let t11;
|
|
29
|
+
let t12;
|
|
30
|
+
let t13;
|
|
31
|
+
let t14;
|
|
32
|
+
let t15;
|
|
33
|
+
let t16;
|
|
34
|
+
let t17;
|
|
35
|
+
let t18;
|
|
36
|
+
let t19;
|
|
35
37
|
let t2;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
let t20;
|
|
39
|
+
let t3;
|
|
40
|
+
let t4;
|
|
41
|
+
let t5;
|
|
42
|
+
let t6;
|
|
43
|
+
let t7;
|
|
44
|
+
let t8;
|
|
45
|
+
let t9;
|
|
46
|
+
if ($[0] !== countries || $[1] !== intl || $[2] !== preferred || $[3] !== props) {
|
|
47
|
+
t20 = Symbol.for("react.early_return_sentinel");
|
|
48
|
+
bb0: {
|
|
49
|
+
const choices = getCountryChoices(intl.locale, {
|
|
50
|
+
countries,
|
|
51
|
+
preferred
|
|
52
|
+
});
|
|
53
|
+
const all = [...choices.preferred, ...choices.others].map(_temp);
|
|
54
|
+
let t21;
|
|
55
|
+
if ($[30] !== intl) {
|
|
56
|
+
t21 = intl.formatMessage(messages.noCountries);
|
|
57
|
+
$[30] = intl;
|
|
58
|
+
$[31] = t21;
|
|
59
|
+
} else t21 = $[31];
|
|
60
|
+
emptyMessage = t21;
|
|
61
|
+
if (props.multiple !== true) {
|
|
62
|
+
let rest;
|
|
63
|
+
if ($[32] !== props) {
|
|
64
|
+
const { multiple: _multiple, countries: _countries, preferred: _preferred, ...t22 } = props;
|
|
65
|
+
rest = t22;
|
|
66
|
+
$[32] = props;
|
|
67
|
+
$[33] = rest;
|
|
68
|
+
} else rest = $[33];
|
|
69
|
+
let t22;
|
|
70
|
+
if ($[34] !== intl || $[35] !== props.placeholder) {
|
|
71
|
+
t22 = props.placeholder ?? intl.formatMessage(messages.countryPlaceholder);
|
|
72
|
+
$[34] = intl;
|
|
73
|
+
$[35] = props.placeholder;
|
|
74
|
+
$[36] = t22;
|
|
75
|
+
} else t22 = $[36];
|
|
76
|
+
t20 = /* @__PURE__ */ jsx(CodeComboBox, {
|
|
77
|
+
...rest,
|
|
78
|
+
choices: all,
|
|
79
|
+
placeholder: t22,
|
|
80
|
+
emptyMessage
|
|
81
|
+
});
|
|
82
|
+
break bb0;
|
|
83
|
+
}
|
|
84
|
+
const { value, onChange, onBlur, label, description, errors, disabled, readOnly, required, name, id, autoFocus, className, labelClassName, descriptionClassName, errorsClassName, controlClassName } = props;
|
|
85
|
+
codes = (value ?? []).filter(_temp2);
|
|
86
|
+
const editable = disabled !== true && readOnly !== true;
|
|
87
|
+
let t22;
|
|
88
|
+
if ($[37] !== onChange) {
|
|
89
|
+
t22 = (next) => onChange?.(next.length > 0 ? next : null);
|
|
90
|
+
$[37] = onChange;
|
|
91
|
+
$[38] = t22;
|
|
92
|
+
} else t22 = $[38];
|
|
93
|
+
set = t22;
|
|
94
|
+
let t23;
|
|
95
|
+
if ($[39] !== intl.locale) {
|
|
96
|
+
t23 = (code_0) => isCountryCode(code_0) ? getCountryName(code_0, intl.locale) : code_0;
|
|
97
|
+
$[39] = intl.locale;
|
|
98
|
+
$[40] = t23;
|
|
99
|
+
} else t23 = $[40];
|
|
100
|
+
const nameOf = t23;
|
|
101
|
+
const comboLabel = typeof label === "string" ? label : props["aria-label"];
|
|
102
|
+
T1 = Fieldset;
|
|
103
|
+
t11 = label;
|
|
104
|
+
t12 = description;
|
|
105
|
+
if ($[41] !== errors) {
|
|
106
|
+
t13 = errors ?? [];
|
|
107
|
+
$[41] = errors;
|
|
108
|
+
$[42] = t13;
|
|
109
|
+
} else t13 = $[42];
|
|
110
|
+
t14 = required;
|
|
111
|
+
t15 = disabled;
|
|
112
|
+
t16 = className;
|
|
113
|
+
t17 = labelClassName;
|
|
114
|
+
t18 = descriptionClassName;
|
|
115
|
+
t19 = errorsClassName;
|
|
116
|
+
t9 = CountryField_module_default.multiple;
|
|
117
|
+
t10 = codes.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
118
|
+
className: CountryField_module_default.countries,
|
|
119
|
+
children: codes.map((code_1) => /* @__PURE__ */ jsxs("li", {
|
|
120
|
+
className: editable ? CountryField_module_default.country : CountryField_module_default.fixedCountry,
|
|
121
|
+
children: [
|
|
122
|
+
isCountryCode(code_1) ? /* @__PURE__ */ jsx("span", {
|
|
123
|
+
className: CountryField_module_default.flag,
|
|
124
|
+
"aria-hidden": "true",
|
|
125
|
+
children: getCountryFlag(code_1)
|
|
126
|
+
}) : null,
|
|
127
|
+
/* @__PURE__ */ jsx("span", {
|
|
128
|
+
className: CountryField_module_default.name,
|
|
129
|
+
children: nameOf(code_1)
|
|
130
|
+
}),
|
|
131
|
+
editable ? /* @__PURE__ */ jsx(IconButton, {
|
|
132
|
+
icon: X,
|
|
133
|
+
size: "sm",
|
|
134
|
+
label: `${intl.formatMessage(messages.remove)} ${nameOf(code_1)}`,
|
|
135
|
+
showTooltip: false,
|
|
136
|
+
onPress: () => set(codes.filter((entry) => entry !== code_1))
|
|
137
|
+
}) : null
|
|
138
|
+
]
|
|
139
|
+
}, code_1))
|
|
140
|
+
}) : null;
|
|
141
|
+
T0 = CodeComboBox;
|
|
142
|
+
if ($[43] !== comboLabel) {
|
|
143
|
+
t0 = comboLabel !== void 0 ? { "aria-label": comboLabel } : {};
|
|
144
|
+
$[43] = comboLabel;
|
|
145
|
+
$[44] = t0;
|
|
146
|
+
} else t0 = $[44];
|
|
147
|
+
if ($[45] !== name) {
|
|
148
|
+
t1 = name !== void 0 ? { name } : {};
|
|
149
|
+
$[45] = name;
|
|
150
|
+
$[46] = t1;
|
|
151
|
+
} else t1 = $[46];
|
|
152
|
+
if ($[47] !== id) {
|
|
153
|
+
t2 = id !== void 0 ? { id } : {};
|
|
154
|
+
$[47] = id;
|
|
155
|
+
$[48] = t2;
|
|
156
|
+
} else t2 = $[48];
|
|
157
|
+
if ($[49] !== autoFocus) {
|
|
158
|
+
t3 = autoFocus !== void 0 ? { autoFocus } : {};
|
|
159
|
+
$[49] = autoFocus;
|
|
160
|
+
$[50] = t3;
|
|
161
|
+
} else t3 = $[50];
|
|
162
|
+
if ($[51] !== onBlur) {
|
|
163
|
+
t4 = onBlur !== void 0 ? { onBlur } : {};
|
|
164
|
+
$[51] = onBlur;
|
|
165
|
+
$[52] = t4;
|
|
166
|
+
} else t4 = $[52];
|
|
167
|
+
if ($[53] !== controlClassName) {
|
|
168
|
+
t5 = controlClassName !== void 0 ? { controlClassName } : {};
|
|
169
|
+
$[53] = controlClassName;
|
|
170
|
+
$[54] = t5;
|
|
171
|
+
} else t5 = $[54];
|
|
172
|
+
t6 = disabled;
|
|
173
|
+
t7 = readOnly;
|
|
174
|
+
t8 = all.filter((choice) => !codes.includes(choice.code));
|
|
175
|
+
}
|
|
176
|
+
$[0] = countries;
|
|
177
|
+
$[1] = intl;
|
|
178
|
+
$[2] = preferred;
|
|
179
|
+
$[3] = props;
|
|
180
|
+
$[4] = T0;
|
|
181
|
+
$[5] = T1;
|
|
182
|
+
$[6] = codes;
|
|
183
|
+
$[7] = emptyMessage;
|
|
184
|
+
$[8] = set;
|
|
185
|
+
$[9] = t0;
|
|
49
186
|
$[10] = t1;
|
|
50
|
-
$[11] =
|
|
187
|
+
$[11] = t10;
|
|
188
|
+
$[12] = t11;
|
|
189
|
+
$[13] = t12;
|
|
190
|
+
$[14] = t13;
|
|
191
|
+
$[15] = t14;
|
|
192
|
+
$[16] = t15;
|
|
193
|
+
$[17] = t16;
|
|
194
|
+
$[18] = t17;
|
|
195
|
+
$[19] = t18;
|
|
196
|
+
$[20] = t19;
|
|
197
|
+
$[21] = t2;
|
|
198
|
+
$[22] = t20;
|
|
199
|
+
$[23] = t3;
|
|
200
|
+
$[24] = t4;
|
|
201
|
+
$[25] = t5;
|
|
202
|
+
$[26] = t6;
|
|
203
|
+
$[27] = t7;
|
|
204
|
+
$[28] = t8;
|
|
205
|
+
$[29] = t9;
|
|
51
206
|
} else {
|
|
52
|
-
T0 = $[
|
|
207
|
+
T0 = $[4];
|
|
208
|
+
T1 = $[5];
|
|
209
|
+
codes = $[6];
|
|
210
|
+
emptyMessage = $[7];
|
|
211
|
+
set = $[8];
|
|
212
|
+
t0 = $[9];
|
|
53
213
|
t1 = $[10];
|
|
54
|
-
|
|
214
|
+
t10 = $[11];
|
|
215
|
+
t11 = $[12];
|
|
216
|
+
t12 = $[13];
|
|
217
|
+
t13 = $[14];
|
|
218
|
+
t14 = $[15];
|
|
219
|
+
t15 = $[16];
|
|
220
|
+
t16 = $[17];
|
|
221
|
+
t17 = $[18];
|
|
222
|
+
t18 = $[19];
|
|
223
|
+
t19 = $[20];
|
|
224
|
+
t2 = $[21];
|
|
225
|
+
t20 = $[22];
|
|
226
|
+
t3 = $[23];
|
|
227
|
+
t4 = $[24];
|
|
228
|
+
t5 = $[25];
|
|
229
|
+
t6 = $[26];
|
|
230
|
+
t7 = $[27];
|
|
231
|
+
t8 = $[28];
|
|
232
|
+
t9 = $[29];
|
|
55
233
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
234
|
+
if (t20 !== Symbol.for("react.early_return_sentinel")) return t20;
|
|
235
|
+
let t21;
|
|
236
|
+
if ($[55] !== codes || $[56] !== set) {
|
|
237
|
+
t21 = (code_2) => {
|
|
238
|
+
if (code_2 !== null && !codes.includes(code_2)) set([...codes, code_2]);
|
|
239
|
+
};
|
|
240
|
+
$[55] = codes;
|
|
241
|
+
$[56] = set;
|
|
242
|
+
$[57] = t21;
|
|
243
|
+
} else t21 = $[57];
|
|
244
|
+
let t22;
|
|
245
|
+
if ($[58] !== intl || $[59] !== props.placeholder) {
|
|
246
|
+
t22 = props.placeholder ?? intl.formatMessage(messages.addCountry);
|
|
247
|
+
$[58] = intl;
|
|
248
|
+
$[59] = props.placeholder;
|
|
249
|
+
$[60] = t22;
|
|
250
|
+
} else t22 = $[60];
|
|
251
|
+
let t23;
|
|
252
|
+
if ($[61] !== T0 || $[62] !== emptyMessage || $[63] !== t0 || $[64] !== t1 || $[65] !== t2 || $[66] !== t21 || $[67] !== t22 || $[68] !== t3 || $[69] !== t4 || $[70] !== t5 || $[71] !== t6 || $[72] !== t7 || $[73] !== t8) {
|
|
253
|
+
t23 = /* @__PURE__ */ jsx(T0, {
|
|
254
|
+
...t0,
|
|
72
255
|
...t1,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
256
|
+
...t2,
|
|
257
|
+
...t3,
|
|
258
|
+
...t4,
|
|
259
|
+
...t5,
|
|
260
|
+
disabled: t6,
|
|
261
|
+
readOnly: t7,
|
|
262
|
+
choices: t8,
|
|
263
|
+
value: null,
|
|
264
|
+
onChange: t21,
|
|
265
|
+
placeholder: t22,
|
|
266
|
+
emptyMessage
|
|
267
|
+
});
|
|
268
|
+
$[61] = T0;
|
|
269
|
+
$[62] = emptyMessage;
|
|
270
|
+
$[63] = t0;
|
|
271
|
+
$[64] = t1;
|
|
272
|
+
$[65] = t2;
|
|
273
|
+
$[66] = t21;
|
|
274
|
+
$[67] = t22;
|
|
275
|
+
$[68] = t3;
|
|
276
|
+
$[69] = t4;
|
|
277
|
+
$[70] = t5;
|
|
278
|
+
$[71] = t6;
|
|
279
|
+
$[72] = t7;
|
|
280
|
+
$[73] = t8;
|
|
281
|
+
$[74] = t23;
|
|
282
|
+
} else t23 = $[74];
|
|
283
|
+
let t24;
|
|
284
|
+
if ($[75] !== t10 || $[76] !== t23 || $[77] !== t9) {
|
|
285
|
+
t24 = /* @__PURE__ */ jsxs("div", {
|
|
286
|
+
className: t9,
|
|
287
|
+
children: [t10, t23]
|
|
288
|
+
});
|
|
289
|
+
$[75] = t10;
|
|
290
|
+
$[76] = t23;
|
|
291
|
+
$[77] = t9;
|
|
292
|
+
$[78] = t24;
|
|
293
|
+
} else t24 = $[78];
|
|
294
|
+
let t25;
|
|
295
|
+
if ($[79] !== T1 || $[80] !== t11 || $[81] !== t12 || $[82] !== t13 || $[83] !== t14 || $[84] !== t15 || $[85] !== t16 || $[86] !== t17 || $[87] !== t18 || $[88] !== t19 || $[89] !== t24) {
|
|
296
|
+
t25 = /* @__PURE__ */ jsx(T1, {
|
|
297
|
+
legend: t11,
|
|
298
|
+
description: t12,
|
|
299
|
+
errors: t13,
|
|
300
|
+
isRequired: t14,
|
|
301
|
+
isDisabled: t15,
|
|
302
|
+
className: t16,
|
|
303
|
+
legendClassName: t17,
|
|
304
|
+
descriptionClassName: t18,
|
|
305
|
+
errorsClassName: t19,
|
|
306
|
+
children: t24
|
|
76
307
|
});
|
|
77
|
-
$[
|
|
78
|
-
$[
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
83
|
-
|
|
84
|
-
|
|
308
|
+
$[79] = T1;
|
|
309
|
+
$[80] = t11;
|
|
310
|
+
$[81] = t12;
|
|
311
|
+
$[82] = t13;
|
|
312
|
+
$[83] = t14;
|
|
313
|
+
$[84] = t15;
|
|
314
|
+
$[85] = t16;
|
|
315
|
+
$[86] = t17;
|
|
316
|
+
$[87] = t18;
|
|
317
|
+
$[88] = t19;
|
|
318
|
+
$[89] = t24;
|
|
319
|
+
$[90] = t25;
|
|
320
|
+
} else t25 = $[90];
|
|
321
|
+
return t25;
|
|
322
|
+
}
|
|
323
|
+
function _temp2(code, index, list) {
|
|
324
|
+
return code !== "" && list.indexOf(code) === index;
|
|
85
325
|
}
|
|
86
326
|
function _temp(country) {
|
|
87
327
|
return {
|
|
@@ -91,9 +331,9 @@ function _temp(country) {
|
|
|
91
331
|
};
|
|
92
332
|
}
|
|
93
333
|
var isCodes = (value) => Array.isArray(value) && value.every(isString);
|
|
94
|
-
/** The `country` type: `settings.countries` and `settings.preferred`. */
|
|
334
|
+
/** The `country` type: `multiple`, `settings.countries` and `settings.preferred`. */
|
|
95
335
|
function CountryFieldEntry(props) {
|
|
96
|
-
const $ = c(
|
|
336
|
+
const $ = c(24);
|
|
97
337
|
let t0;
|
|
98
338
|
if ($[0] !== props.field) {
|
|
99
339
|
t0 = getSetting(props.field, "countries", isCodes);
|
|
@@ -126,24 +366,57 @@ function CountryFieldEntry(props) {
|
|
|
126
366
|
$[8] = preferred;
|
|
127
367
|
$[9] = t4;
|
|
128
368
|
} else t4 = $[9];
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
t6 = /* @__PURE__ */ jsx(CountryField, {
|
|
369
|
+
let t5;
|
|
370
|
+
if ($[10] !== t2 || $[11] !== t3 || $[12] !== t4) {
|
|
371
|
+
t5 = {
|
|
133
372
|
...t2,
|
|
134
373
|
...t3,
|
|
135
|
-
...t4
|
|
136
|
-
|
|
374
|
+
...t4
|
|
375
|
+
};
|
|
376
|
+
$[10] = t2;
|
|
377
|
+
$[11] = t3;
|
|
378
|
+
$[12] = t4;
|
|
379
|
+
$[13] = t5;
|
|
380
|
+
} else t5 = $[13];
|
|
381
|
+
const shared = t5;
|
|
382
|
+
if (props.field.multiple === true) {
|
|
383
|
+
let t6;
|
|
384
|
+
if ($[14] !== props.value) {
|
|
385
|
+
t6 = Array.isArray(props.value) ? props.value.filter(isString) : [];
|
|
386
|
+
$[14] = props.value;
|
|
387
|
+
$[15] = t6;
|
|
388
|
+
} else t6 = $[15];
|
|
389
|
+
const codes = t6;
|
|
390
|
+
const t7 = codes.length > 0 ? codes : null;
|
|
391
|
+
let t8;
|
|
392
|
+
if ($[16] !== props.onChange || $[17] !== shared || $[18] !== t7) {
|
|
393
|
+
t8 = /* @__PURE__ */ jsx(CountryField, {
|
|
394
|
+
...shared,
|
|
395
|
+
multiple: true,
|
|
396
|
+
value: t7,
|
|
397
|
+
onChange: props.onChange
|
|
398
|
+
});
|
|
399
|
+
$[16] = props.onChange;
|
|
400
|
+
$[17] = shared;
|
|
401
|
+
$[18] = t7;
|
|
402
|
+
$[19] = t8;
|
|
403
|
+
} else t8 = $[19];
|
|
404
|
+
return t8;
|
|
405
|
+
}
|
|
406
|
+
const t6 = isString(props.value) ? props.value : null;
|
|
407
|
+
let t7;
|
|
408
|
+
if ($[20] !== props.onChange || $[21] !== shared || $[22] !== t6) {
|
|
409
|
+
t7 = /* @__PURE__ */ jsx(CountryField, {
|
|
410
|
+
...shared,
|
|
411
|
+
value: t6,
|
|
137
412
|
onChange: props.onChange
|
|
138
413
|
});
|
|
139
|
-
$[
|
|
140
|
-
$[
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
} else t6 = $[15];
|
|
146
|
-
return t6;
|
|
414
|
+
$[20] = props.onChange;
|
|
415
|
+
$[21] = shared;
|
|
416
|
+
$[22] = t6;
|
|
417
|
+
$[23] = t7;
|
|
418
|
+
} else t7 = $[23];
|
|
419
|
+
return t7;
|
|
147
420
|
}
|
|
148
421
|
//#endregion
|
|
149
422
|
export { CountryField, CountryFieldEntry };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountryField.js","names":["usePanneauIntl","CodeComboBox","getFieldProps","getSetting","isString","messages","FieldEntryProps","FieldProps","getCountryChoices","CountryFieldProps","countries","preferred","placeholder","controlClassName","CountryField","t0","$","_c","props","intl","T0","t1","t2","locale","choices","others","map","_temp","t3","formatMessage","countryPlaceholder","t4","noCountries","t5","country","code","name","prefix","flag","isCodes","value","Array","isArray","every","CountryFieldEntry","field","undefined","t6","onChange","_c"],"sources":["../../src/country/CountryField.tsx"],"sourcesContent":["import { usePanneauIntl } from '@panneau/ui';\n\nimport { CodeComboBox } from '../shared/CodeComboBox';\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport { messages } from '../shared/messages';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport { getCountryChoices } from './countries';\n\nexport interface CountryFieldProps extends FieldProps<string> {\n /** The codes to offer. All countries without it. */\n countries?: readonly string[];\n /** Codes shown first, in their order, above the others: `['CA', 'US']`. */\n preferred?: readonly string[];\n placeholder?: string;\n controlClassName?: string;\n}\n\n/**\n * A country, as its ISO 3166-1 alpha-2 code (`CA`): a combo box of the countries with their flags\n * and their names in the user's locale. Typing filters them by name or by code.\n */\nexport function CountryField({ countries, preferred, placeholder, ...props }: CountryFieldProps) {\n const intl = usePanneauIntl();\n const choices = getCountryChoices(intl.locale, { countries, preferred });\n return (\n <CodeComboBox\n {...props}\n choices={[...choices.preferred, ...choices.others].map((country) => ({\n code: country.code,\n name: country.name,\n prefix: country.flag,\n }))}\n placeholder={placeholder ?? intl.formatMessage(messages.countryPlaceholder)}\n emptyMessage={intl.formatMessage(messages.noCountries)}\n />\n );\n}\n\nconst isCodes = (value: unknown): value is string[] =>\n Array.isArray(value) && value.every(isString);\n\n/** The `country` type: `settings.countries` and `settings.preferred`. */\nexport function CountryFieldEntry(props: FieldEntryProps) {\n const countries = getSetting(props.field, 'countries', isCodes);\n const preferred = getSetting(props.field, 'preferred', isCodes);\n return (\n <CountryField\n {...getFieldProps(props)}\n {...(countries !== undefined ? { countries } : {})}\n {...(preferred !== undefined ? { preferred } : {})}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n />\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CountryField.js","names":["X","Fieldset","IconButton","usePanneauIntl","CodeComboBox","getFieldProps","getSetting","isString","messages","FieldEntryProps","FieldProps","styles","getCountryChoices","getCountryFlag","getCountryName","isCountryCode","CountryFieldBaseProps","Omit","countries","preferred","placeholder","controlClassName","SingleCountryFieldProps","multiple","value","onChange","MultipleCountryFieldProps","CountryFieldProps","CountryField","props","$","_c","intl","T0","T1","codes","emptyMessage","set","t0","t1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t2","t20","t3","t4","t5","t6","t7","t8","t9","Symbol","for","bb0","choices","locale","all","others","map","_temp","t21","formatMessage","noCountries","rest","_multiple","_countries","_preferred","t22","countryPlaceholder","onBlur","label","description","errors","disabled","readOnly","required","name","id","autoFocus","className","labelClassName","descriptionClassName","errorsClassName","filter","_temp2","editable","next","length","t23","code_0","code","nameOf","comboLabel","code_1","country","fixedCountry","flag","remove","entry","undefined","choice","includes","code_2","addCountry","t24","t25","index","list","indexOf","prefix","isCodes","Array","isArray","every","CountryFieldEntry","field","shared","_c","styles"],"sources":["../../src/country/CountryField.tsx"],"sourcesContent":["import { X } from 'lucide-react';\n\nimport { Fieldset, IconButton, usePanneauIntl } from '@panneau/ui';\n\nimport { CodeComboBox } from '../shared/CodeComboBox';\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport { messages } from '../shared/messages';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport styles from './CountryField.module.css';\nimport { getCountryChoices, getCountryFlag, getCountryName, isCountryCode } from './countries';\n\n/** Props of both single and multiple country fields. */\nexport interface CountryFieldBaseProps extends Omit<FieldProps<never>, 'value' | 'onChange'> {\n /** The codes to offer. All countries without it. */\n countries?: readonly string[];\n /** Codes shown first, in their order, above the others: `['CA', 'US']`. */\n preferred?: readonly string[];\n placeholder?: string;\n controlClassName?: string;\n}\n\nexport interface SingleCountryFieldProps extends CountryFieldBaseProps {\n multiple?: false;\n value?: string | null;\n onChange?: (value: string | null) => void;\n}\n\nexport interface MultipleCountryFieldProps extends CountryFieldBaseProps {\n /** Several countries, in the order they were chosen (decision 0058). */\n multiple: true;\n value?: readonly string[] | null;\n /** Called with the codes. An empty list is `null`. */\n onChange?: (value: string[] | null) => void;\n}\n\nexport type CountryFieldProps = SingleCountryFieldProps | MultipleCountryFieldProps;\n\n/**\n * A country, as its ISO 3166-1 alpha-2 code (`CA`): a combo box of the countries with their flags\n * and their names in the user's locale. Typing filters them by name or by code. With `multiple`,\n * several countries, each removable, in the order they were chosen, and the combo box adds one.\n */\nexport function CountryField(props: CountryFieldProps) {\n const intl = usePanneauIntl();\n const { countries, preferred } = props;\n const choices = getCountryChoices(intl.locale, { countries, preferred });\n const all = [...choices.preferred, ...choices.others].map((country) => ({\n code: country.code,\n name: country.name,\n prefix: country.flag,\n }));\n const emptyMessage = intl.formatMessage(messages.noCountries);\n\n if (props.multiple !== true) {\n const {\n multiple: _multiple,\n countries: _countries,\n preferred: _preferred,\n ...rest\n } = props;\n return (\n <CodeComboBox\n {...rest}\n choices={all}\n placeholder={props.placeholder ?? intl.formatMessage(messages.countryPlaceholder)}\n emptyMessage={emptyMessage}\n />\n );\n }\n\n const {\n value,\n onChange,\n onBlur,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n name,\n id,\n autoFocus,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n controlClassName,\n } = props;\n const codes = (value ?? []).filter(\n (code, index, list) => code !== '' && list.indexOf(code) === index,\n );\n const editable = disabled !== true && readOnly !== true;\n const set = (next: string[]) => onChange?.(next.length > 0 ? next : null);\n const nameOf = (code: string) =>\n isCountryCode(code) ? getCountryName(code, intl.locale) : code;\n const comboLabel = typeof label === 'string' ? label : props['aria-label'];\n return (\n <Fieldset\n legend={label}\n description={description}\n errors={errors ?? []}\n isRequired={required}\n isDisabled={disabled}\n className={className}\n legendClassName={labelClassName}\n descriptionClassName={descriptionClassName}\n errorsClassName={errorsClassName}\n >\n <div className={styles.multiple}>\n {codes.length > 0 ? (\n <ul className={styles.countries}>\n {codes.map((code) => (\n <li\n key={code}\n className={editable ? styles.country : styles.fixedCountry}\n >\n {isCountryCode(code) ? (\n <span className={styles.flag} aria-hidden=\"true\">\n {getCountryFlag(code)}\n </span>\n ) : null}\n <span className={styles.name}>{nameOf(code)}</span>\n {editable ? (\n <IconButton\n icon={X}\n size=\"sm\"\n label={`${intl.formatMessage(messages.remove)} ${nameOf(code)}`}\n showTooltip={false}\n onPress={() => set(codes.filter((entry) => entry !== code))}\n />\n ) : null}\n </li>\n ))}\n </ul>\n ) : null}\n <CodeComboBox\n {...(comboLabel !== undefined ? { 'aria-label': comboLabel } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { controlClassName } : {})}\n disabled={disabled}\n readOnly={readOnly}\n choices={all.filter((choice) => !codes.includes(choice.code))}\n value={null}\n onChange={(code) => {\n if (code !== null && !codes.includes(code)) {\n set([...codes, code]);\n }\n }}\n placeholder={props.placeholder ?? intl.formatMessage(messages.addCountry)}\n emptyMessage={emptyMessage}\n />\n </div>\n </Fieldset>\n );\n}\n\nconst isCodes = (value: unknown): value is string[] =>\n Array.isArray(value) && value.every(isString);\n\n/** The `country` type: `multiple`, `settings.countries` and `settings.preferred`. */\nexport function CountryFieldEntry(props: FieldEntryProps) {\n const countries = getSetting(props.field, 'countries', isCodes);\n const preferred = getSetting(props.field, 'preferred', isCodes);\n const shared = {\n ...getFieldProps(props),\n ...(countries !== undefined ? { countries } : {}),\n ...(preferred !== undefined ? { preferred } : {}),\n };\n if (props.field.multiple === true) {\n const codes = Array.isArray(props.value) ? props.value.filter(isString) : [];\n return (\n <CountryField\n {...shared}\n multiple\n value={codes.length > 0 ? codes : null}\n onChange={props.onChange}\n />\n );\n }\n return (\n <CountryField\n {...shared}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "./CountryField.css";
|
|
2
|
+
//#region src/country/CountryField.module.css
|
|
3
|
+
var multiple = "panneau-country-field-multiple";
|
|
4
|
+
var countries = "panneau-country-field-countries";
|
|
5
|
+
var country = "panneau-country-field-country";
|
|
6
|
+
var fixedCountry = "panneau-country-field-fixed-country";
|
|
7
|
+
var flag = "panneau-country-field-flag";
|
|
8
|
+
var name = "panneau-country-field-name";
|
|
9
|
+
var CountryField_module_default = {
|
|
10
|
+
multiple,
|
|
11
|
+
countries,
|
|
12
|
+
country,
|
|
13
|
+
fixedCountry,
|
|
14
|
+
flag,
|
|
15
|
+
name
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { countries, country, CountryField_module_default as default, fixedCountry, flag, multiple, name };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=CountryField.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CountryField.module.js","names":[],"sources":["../../src/country/CountryField.module.css"],"sourcesContent":[".multiple {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-2);\n}\n\n.countries {\n display: flex;\n flex-wrap: wrap;\n gap: var(--panneau-space-1) var(--panneau-space-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.country,\n.fixedCountry {\n display: inline-flex;\n align-items: center;\n gap: var(--panneau-space-1);\n min-height: var(--panneau-control-height-sm);\n max-width: 100%;\n padding-inline: var(--panneau-space-3) var(--panneau-space-1);\n font-size: var(--panneau-font-size-sm);\n background-color: var(--panneau-color-surface-sunken);\n border: var(--panneau-border-width) solid var(--panneau-color-border);\n border-radius: var(--panneau-radius-full);\n}\n\n.fixedCountry {\n padding-inline-end: var(--panneau-space-3);\n}\n\n.flag {\n flex: none;\n}\n\n.name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n"],"mappings":""}
|
package/dist/country/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CountryField, CountryFieldEntry, type CountryFieldProps } from './CountryField.js';
|
|
1
|
+
export { CountryField, type CountryFieldBaseProps, CountryFieldEntry, type CountryFieldProps, type MultipleCountryFieldProps, type SingleCountryFieldProps, } from './CountryField.js';
|
|
2
2
|
export { COUNTRY_CODES, type CountryChoice, type CountryChoicesOptions, getCountryChoices, getCountryFlag, getCountryName, getLocaleCountry, isCountryCode, } from './countries.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/country/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/country/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,GAChB,MAAM,aAAa,CAAC"}
|