-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathnativescript-intl.ios.ts
103 lines (94 loc) · 4.04 KB
/
nativescript-intl.ios.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import {
DateTimeFormat as commonDateTimeFormat,
NumberFormat as commonNumberFormat,
FULL
} from "./nativescript-intl-common";
import { NumberFormatOptions } from "./nativescript-intl";
export class DateTimeFormat extends commonDateTimeFormat {
public getNativePattern(patternDefinition: {date?: string, time?: string}, locale?: string): string {
let dateFormatter = NSDateFormatter.new();
if (locale) {
dateFormatter.locale = NSLocale.alloc().initWithLocaleIdentifier(locale);
}
if (patternDefinition.date) {
dateFormatter.dateStyle = patternDefinition.date === FULL ?
NSDateFormatterStyle.FullStyle :
NSDateFormatterStyle.ShortStyle;
}
if (patternDefinition.time) {
dateFormatter.timeStyle = NSDateFormatterStyle.LongStyle;
}
return dateFormatter.dateFormat;
}
public formatNative(pattern: string, locale?: string, date?: Date): string {
let dateFormatter = NSDateFormatter.new();
if (locale) {
dateFormatter.locale = NSLocale.alloc().initWithLocaleIdentifier(locale);
}
dateFormatter.dateFormat = pattern;
// return dateFormatter.stringFromDate(date ?
// NSDate.dateWithTimeIntervalSince1970(date.valueOf()/1000) :
// NSDate.new());
return dateFormatter.stringFromDate(date ? date : new Date());
}
}
// style?: string;
// currency?: string;
// currencyDisplay?: string;
// useGrouping?: boolean;
// minimumIntegerDigits?: number;
// minimumFractionDigits?: number;
// maximumFractionDigits?: number;
export class NumberFormat extends commonNumberFormat {
public formatNative(value: number, locale?: string, options?: NumberFormatOptions, pattern?: string) {
let numberFormat = NSNumberFormatter.new();
if (locale) {
numberFormat.locale = NSLocale.alloc().initWithLocaleIdentifier(locale);
}
if (options) {
switch (options.style.toLowerCase()) {
case "decimal":
numberFormat.numberStyle = NSNumberFormatterStyle.DecimalStyle;
break;
case "percent":
numberFormat.numberStyle = NSNumberFormatterStyle.PercentStyle;
break;
case "currency":
numberFormat.numberStyle = NSNumberFormatterStyle.CurrencyStyle;
if (options.currency !== void 0) {
numberFormat.currencyCode = options.currency;
}
break;
default:
numberFormat.numberStyle = NSNumberFormatterStyle.DecimalStyle;
break;
}
} else {
numberFormat.numberStyle = NSNumberFormatterStyle.DecimalStyle;
}
if (options && options.minimumIntegerDigits !== void 0) {
numberFormat.minimumIntegerDigits = options.minimumIntegerDigits;
}
if (options && options.minimumFractionDigits !== void 0) {
numberFormat.minimumFractionDigits = options.minimumFractionDigits;
}
if (options && options.maximumFractionDigits !== void 0) {
numberFormat.maximumFractionDigits = options.maximumFractionDigits;
}
if (options && options.useGrouping !== void 0) {
numberFormat.usesGroupingSeparator = options.useGrouping;
}
if (pattern) {
numberFormat.positiveFormat = pattern;
} else {
if (options && (options.style.toLowerCase() === "currency" && options.currencyDisplay === "code")) {
let tempPattern = numberFormat.positiveFormat;
// this will display currency code instead of currency symbol
tempPattern = tempPattern.replace("¤", "¤¤");
numberFormat.positiveFormat = tempPattern;
}
}
// return numberFormat.stringFromNumber(NSNumber.alloc().initWithDouble(value));
return numberFormat.stringFromNumber(value);
}
}