react-native-transformer-text-input 0.1.0 → 0.3.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.
@@ -1,7 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  import { Transformer } from "../Transformer.js";
4
- import { COUNTRY_PHONE_DATA } from "./phone-data.js";
4
+ import { COUNTRY_CALLING_CODES, COUNTRY_PHONE_DATA } from "./phone-data.js";
5
+ // Longest calling-code prefix (1–3 digits) of `digits` that is a key of
6
+ // `codes`. `codes` can be any calling-code-keyed record (the lookup table or
7
+ // the per-code format index), so the worklet reuses its captured index.
8
+ const matchCallingCode = (digits, codes) => {
9
+ 'worklet';
10
+
11
+ const max = Math.min(3, digits.length);
12
+ for (let len = max; len >= 1; len--) {
13
+ if (codes[digits.slice(0, len)] !== undefined) {
14
+ return digits.slice(0, len);
15
+ }
16
+ }
17
+ return '';
18
+ };
19
+
20
+ /**
21
+ * Detect the ISO 3166-1 alpha-2 country for a phone value by its leading
22
+ * international calling code. Returns the primary country for the code (e.g.
23
+ * "US" for "+1"), or undefined if no calling code is recognized yet. Runs on
24
+ * the JS thread — use it to drive a flag/country indicator alongside an
25
+ * `international` PhoneNumberTransformer.
26
+ */
27
+ export function detectCountry(value) {
28
+ const digits = value.replace(/\D/g, '');
29
+ const code = matchCallingCode(digits, COUNTRY_CALLING_CODES);
30
+ return code ? COUNTRY_CALLING_CODES[code]?.[0] : undefined;
31
+ }
32
+
5
33
  // Extract all digits from text
6
34
  const extractDigits = text => {
7
35
  'worklet';
@@ -224,14 +252,132 @@ export class PhoneNumberTransformer extends Transformer {
224
252
  constructor({
225
253
  country = 'US',
226
254
  includeCallingCode = true,
255
+ international = false,
227
256
  debug = false
228
257
  } = {}) {
258
+ if (international) {
259
+ // Per-calling-code formatting data (primary country for each code),
260
+ // captured once so the worklet can detect + format any country.
261
+ const callingCodeData = {};
262
+ for (const code in COUNTRY_CALLING_CODES) {
263
+ const primary = COUNTRY_CALLING_CODES[code][0];
264
+ const d = COUNTRY_PHONE_DATA[primary];
265
+ if (d) {
266
+ callingCodeData[code] = {
267
+ formats: d.formats,
268
+ nationalPrefix: d.nationalPrefix ?? ''
269
+ };
270
+ }
271
+ }
272
+ const intlWorklet = input => {
273
+ 'worklet';
274
+
275
+ const {
276
+ value,
277
+ selection,
278
+ previousValue,
279
+ previousSelection
280
+ } = input;
281
+ const allDigits = extractDigits(value);
282
+ const prevAllDigits = extractDigits(previousValue);
283
+ if (allDigits.length === 0) {
284
+ return {
285
+ value: '',
286
+ selection: {
287
+ start: 0,
288
+ end: 0
289
+ }
290
+ };
291
+ }
292
+ const digitsBeforeStart = countDigitsBefore(value, selection.start);
293
+ const digitsBeforeEnd = countDigitsBefore(value, selection.end);
294
+
295
+ // Backspacing a separator removes the digit before the caret instead,
296
+ // so deletion makes progress.
297
+ const isCaret = selection.start === selection.end;
298
+ const deletedFormattingChar = isCaret && value.length < previousValue.length && allDigits.length === prevAllDigits.length && allDigits.length > 0;
299
+ let workingDigits = allDigits;
300
+ let finalStart = digitsBeforeStart;
301
+ let finalEnd = digitsBeforeEnd;
302
+ if (deletedFormattingChar && digitsBeforeStart > 0) {
303
+ workingDigits = allDigits.slice(0, digitsBeforeStart - 1) + allDigits.slice(digitsBeforeStart);
304
+ finalStart = digitsBeforeStart - 1;
305
+ finalEnd = finalStart;
306
+ }
307
+ const cursorAtEnd = isCaret && selection.end >= value.length && previousSelection.end >= previousValue.length;
308
+ const callingCode = matchCallingCode(workingDigits, callingCodeData);
309
+
310
+ // No recognized calling code yet — show "+digits" as typed.
311
+ if (callingCode === '') {
312
+ const result = '+' + workingDigits;
313
+ if (cursorAtEnd) {
314
+ return {
315
+ value: result,
316
+ selection: {
317
+ start: result.length,
318
+ end: result.length
319
+ }
320
+ };
321
+ }
322
+ // One leading "+" before the digits.
323
+ return {
324
+ value: result,
325
+ selection: {
326
+ start: 1 + finalStart,
327
+ end: 1 + finalEnd
328
+ }
329
+ };
330
+ }
331
+ const data = callingCodeData[callingCode];
332
+ const nationalPrefix = data.nationalPrefix;
333
+ const nationalDigits = workingDigits.slice(callingCode.length);
334
+ let result;
335
+ if (nationalDigits.length === 0) {
336
+ result = '+' + callingCode;
337
+ } else {
338
+ let significantDigits = nationalDigits;
339
+ let trunkPrefix = '';
340
+ if (nationalPrefix.length > 0 && nationalDigits.length > nationalPrefix.length && nationalDigits.startsWith(nationalPrefix)) {
341
+ significantDigits = nationalDigits.slice(nationalPrefix.length);
342
+ trunkPrefix = nationalPrefix;
343
+ }
344
+ const format = selectFormat(significantDigits, data.formats);
345
+ const formattedNational = format ? trunkPrefix + applyFormat(significantDigits, format) : nationalDigits;
346
+ result = '+' + callingCode + ' ' + formattedNational;
347
+ }
348
+ if (cursorAtEnd) {
349
+ return {
350
+ value: result,
351
+ selection: {
352
+ start: result.length,
353
+ end: result.length
354
+ }
355
+ };
356
+ }
357
+
358
+ // result digits are [callingCode..., national...] in input order, so
359
+ // map the input digit counts straight onto the formatted output.
360
+ const newStart = mapCursorToFormatted(result, finalStart);
361
+ const newEnd = mapCursorToFormatted(result, finalEnd);
362
+ return {
363
+ value: result,
364
+ selection: {
365
+ start: newStart,
366
+ end: newEnd
367
+ }
368
+ };
369
+ };
370
+ super(intlWorklet);
371
+ return;
372
+ }
229
373
  const countryData = COUNTRY_PHONE_DATA[country];
230
374
  if (!countryData) {
231
375
  throw new Error(`[PhoneNumberTransformer] Country "${country}" is not supported.`);
232
376
  }
233
377
  const callingCode = countryData.callingCode;
234
378
  const formats = countryData.formats;
379
+ const nationalPrefix = countryData.nationalPrefix ?? '';
380
+ const nationalPrefixLen = nationalPrefix.length;
235
381
  const prefix = '+' + callingCode + ' ';
236
382
  // Pre-compute these outside the worklet so only simple string/number
237
383
  // values are captured in the closure (more reliable across worklet runtimes).
@@ -324,8 +470,18 @@ export class PhoneNumberTransformer extends Transformer {
324
470
  finalEnd = adjustedStart - 1;
325
471
  }
326
472
 
473
+ // Strip the national trunk prefix (e.g. "0") before selecting and applying
474
+ // a format — formats describe the national significant number — then
475
+ // re-add it so the displayed digits still line up with the input.
476
+ let significantDigits = nationalDigits;
477
+ let trunkPrefix = '';
478
+ if (nationalPrefixLen > 0 && nationalDigits.length > nationalPrefixLen && nationalDigits.startsWith(nationalPrefix)) {
479
+ significantDigits = nationalDigits.slice(nationalPrefixLen);
480
+ trunkPrefix = nationalPrefix;
481
+ }
482
+
327
483
  // Select format based on leading digits
328
- const format = selectFormat(nationalDigits, formats);
484
+ const format = selectFormat(significantDigits, formats);
329
485
  if (!format) {
330
486
  // No format available — just show digits
331
487
  const result = outputPrefix + nationalDigits;
@@ -340,7 +496,7 @@ export class PhoneNumberTransformer extends Transformer {
340
496
  }
341
497
 
342
498
  // Apply the selected format
343
- const formatted = applyFormat(nationalDigits, format);
499
+ const formatted = trunkPrefix + applyFormat(significantDigits, format);
344
500
  const result = outputPrefix + formatted;
345
501
 
346
502
  // Map cursor position
@@ -1 +1 @@
1
- {"version":3,"names":["Transformer","COUNTRY_PHONE_DATA","extractDigits","text","replace","countDigitsBefore","pos","count","i","Math","min","length","char","undefined","selectFormat","nationalDigits","formats","format","leadingDigits","re","RegExp","test","getFormatMaxDigits","pattern","closeBrace","indexOf","inner","slice","commaIdx","parseInt","buildPartialFormat","digits","groups","depth","j","groupContent","groupMax","push","digitIdx","result","lastGroupComplete","allGroupsFilled","ti","template","tc","groupNum","isNaN","groupSize","available","chunk","applyFormat","maxDigits","clamped","match","mapCursorToFormatted","formatted","digitCount","c","PhoneNumberTransformer","constructor","country","includeCallingCode","debug","countryData","Error","callingCode","prefix","outputPrefix","outputPrefixLen","codeToStrip","worklet","input","value","selection","previousValue","previousSelection","allDigits","prevAllDigits","start","end","prevNationalDigits","strippedCallingCode","startsWith","digitsBeforeStart","digitsBeforeEnd","callingCodeLen","adjustedStart","max","adjustedEnd","isCaret","deletedFormattingChar","finalStart","finalEnd","cursorAtEnd","prevCursorAtEnd","console","log","cursor","newStart","newEnd"],"sourceRoot":"../../../src","sources":["formatters/phone-number.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Transformer","COUNTRY_CALLING_CODES","COUNTRY_PHONE_DATA","matchCallingCode","digits","codes","max","Math","min","length","len","slice","undefined","detectCountry","value","replace","code","extractDigits","text","countDigitsBefore","pos","count","i","char","selectFormat","nationalDigits","formats","format","leadingDigits","re","RegExp","test","getFormatMaxDigits","pattern","closeBrace","indexOf","inner","commaIdx","parseInt","buildPartialFormat","groups","depth","j","groupContent","groupMax","push","digitIdx","result","lastGroupComplete","allGroupsFilled","ti","template","tc","groupNum","isNaN","groupSize","available","chunk","applyFormat","maxDigits","clamped","match","mapCursorToFormatted","formatted","digitCount","c","PhoneNumberTransformer","constructor","country","includeCallingCode","international","debug","callingCodeData","primary","d","nationalPrefix","intlWorklet","input","selection","previousValue","previousSelection","allDigits","prevAllDigits","start","end","digitsBeforeStart","digitsBeforeEnd","isCaret","deletedFormattingChar","workingDigits","finalStart","finalEnd","cursorAtEnd","callingCode","data","significantDigits","trunkPrefix","startsWith","formattedNational","newStart","newEnd","countryData","Error","nationalPrefixLen","prefix","outputPrefix","outputPrefixLen","codeToStrip","worklet","prevNationalDigits","strippedCallingCode","callingCodeLen","adjustedStart","adjustedEnd","prevCursorAtEnd","console","log","cursor"],"sourceRoot":"../../../src","sources":["formatters/phone-number.ts"],"mappings":"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","ignoreList":[]}
@@ -7,9 +7,11 @@ export type CountryPhoneData = {
7
7
  code: string;
8
8
  callingCode: string;
9
9
  formats: PhoneFormat[];
10
+ nationalPrefix?: string;
10
11
  name: string;
11
12
  flag: string;
12
13
  };
13
14
  export declare const COUNTRY_PHONE_DATA: Record<string, CountryPhoneData>;
14
15
  export declare const COUNTRY_LIST: CountryPhoneData[];
16
+ export declare const COUNTRY_CALLING_CODES: Record<string, string[]>;
15
17
  //# sourceMappingURL=phone-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phone-data.d.ts","sourceRoot":"","sources":["../../../../src/formatters/phone-data.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAuxK/D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,gBAAgB,EAsP1C,CAAC"}
1
+ {"version":3,"file":"phone-data.d.ts","sourceRoot":"","sources":["../../../../src/formatters/phone-data.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAw5K/D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,gBAAgB,EAsP1C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAyO1D,CAAC"}
@@ -12,13 +12,29 @@ export type PhoneNumberTransformerOptions = {
12
12
  * @default true
13
13
  */
14
14
  includeCallingCode?: boolean;
15
+ /**
16
+ * International mode: the calling code is part of the editable text and the
17
+ * country is detected from it as you type (e.g. typing "+44" switches
18
+ * formatting to the UK). `country` is ignored in this mode. Use
19
+ * {@link detectCountry} to drive a flag/country indicator from the value.
20
+ * @default false
21
+ */
22
+ international?: boolean;
15
23
  /**
16
24
  * Enable debug logging for transformer operations.
17
25
  * @default false
18
26
  */
19
27
  debug?: boolean;
20
28
  };
29
+ /**
30
+ * Detect the ISO 3166-1 alpha-2 country for a phone value by its leading
31
+ * international calling code. Returns the primary country for the code (e.g.
32
+ * "US" for "+1"), or undefined if no calling code is recognized yet. Runs on
33
+ * the JS thread — use it to drive a flag/country indicator alongside an
34
+ * `international` PhoneNumberTransformer.
35
+ */
36
+ export declare function detectCountry(value: string): string | undefined;
21
37
  export declare class PhoneNumberTransformer extends Transformer {
22
- constructor({ country, includeCallingCode, debug, }?: PhoneNumberTransformerOptions);
38
+ constructor({ country, includeCallingCode, international, debug, }?: PhoneNumberTransformerOptions);
23
39
  }
24
40
  //# sourceMappingURL=phone-number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phone-number.d.ts","sourceRoot":"","sources":["../../../../src/formatters/phone-number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAG7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAuOF,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,EACV,OAAc,EACd,kBAAyB,EACzB,KAAa,GACd,GAAE,6BAAkC;CAyJtC"}
1
+ {"version":3,"file":"phone-number.d.ts","sourceRoot":"","sources":["../../../../src/formatters/phone-number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAO7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAmBF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/D;AAuOD,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,EACV,OAAc,EACd,kBAAyB,EACzB,aAAqB,EACrB,KAAa,GACd,GAAE,6BAAkC;CAqStC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-transformer-text-input",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "TextInput component that allows transforming text synchronously with a worklet",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",