11import { Vector2d } from 'konva/lib/types' ;
2+ import { t } from '../context' ;
23
34const special = / [ \s ` ~ ! @ # $ % ^ & * ( ) \- _ = + [ \] { } ; : ' " \\ | / , . < > ? ] / g;
45
@@ -12,38 +13,95 @@ const translation: Record<string, string> = {
1213 а : 'a' ,
1314 б : 'b' ,
1415 в : 'v' ,
15- ф : 'f' ,
16+ г : 'g' ,
17+ д : 'd' ,
18+ е : 'e' ,
19+ ж : 'j' ,
20+ з : 'z' ,
21+ и : 'i' ,
22+ к : 'k' ,
23+ л : 'l' ,
24+ м : 'm' ,
25+ н : 'n' ,
26+ о : 'o' ,
27+ п : 'p' ,
28+ р : 'r' ,
29+ с : 's' ,
1630 т : 't' ,
31+ у : 'u' ,
32+ ф : 'f' ,
1733 х : 'h' ,
34+ ц : 'c' ,
35+ ч : 'ch' ,
36+ ш : 'sh' ,
1837 мт : 'mt' ,
19- и : 'i' ,
2038 гук : 'mab' ,
21- м : 'm' ,
2239 э : 'e' ,
2340 сп : 'sp' ,
24- с : 's' ,
25- р : 'r' ,
2641 вход : 'entry' ,
2742 a : 'a' ,
2843 b : 'b' ,
2944 v : 'v' ,
30- f : 'f' ,
45+ g : 'g' ,
46+ d : 'd' ,
47+ e : 'e' ,
48+ j : 'j' ,
49+ z : 'z' ,
50+ i : 'i' ,
51+ k : 'k' ,
52+ l : 'l' ,
53+ m : 'm' ,
54+ n : 'n' ,
55+ o : 'o' ,
56+ p : 'p' ,
57+ r : 'r' ,
58+ s : 's' ,
3159 t : 't' ,
60+ u : 'u' ,
61+ f : 'f' ,
3262 h : 'h' ,
63+ c : 'c' ,
64+ ch : 'ch' ,
65+ sh : 'sh' ,
3366 mt : 'mt' ,
34- i : 'i' ,
3567 mab : 'mab' ,
36- m : 'm' ,
37- e : 'e' ,
3868 sp : 'sp' ,
39- s : 's' ,
40- r : 'r' ,
4169 entry : 'entry' ,
4270} ;
4371
4472const tr = new Proxy ( translation , propertyHandler ) ;
4573
46- export function convertCabinet ( cabinet : string , building ?: string ) : string {
74+ export function toFrontName ( name : string ) {
75+ let result = name . toString ( ) ;
76+ if ( ! result && result === '' ) {
77+ return result ;
78+ }
79+ result = result . replace ( special , '' ) ;
80+ let numberIndex : number | undefined = undefined ;
81+ let postfixSize = 0 ;
82+ for ( let i = 0 ; i < result . length ; i ++ ) {
83+ if ( ! isNaN ( parseInt ( result [ i ] ) ) ) {
84+ numberIndex = i ;
85+ break ;
86+ }
87+ }
88+ for ( let i = result . length - 1 ; i >= 0 ; i -- ) {
89+ if ( ! isNaN ( parseInt ( result [ i ] ) ) ) {
90+ break ;
91+ }
92+ postfixSize ++ ;
93+ }
94+ if ( numberIndex ) {
95+ return ( result =
96+ t ( result . slice ( 0 , numberIndex ) ) +
97+ ' ' +
98+ result . substring ( numberIndex , result . length - postfixSize ) +
99+ t ( result . substring ( result . length - postfixSize ) ) ) ;
100+ }
101+ return t ( result ) ;
102+ }
103+
104+ export function toApiName ( cabinet : string , building ?: string ) : string {
47105 let result = cabinet . toLowerCase ( ) ;
48106 if ( ! result ) {
49107 return result ;
@@ -69,11 +127,14 @@ export function convertCabinet(cabinet: string, building?: string): string {
69127 result . substring ( numberIndex , result . length - postfixSize ) +
70128 tr [ result . substring ( result . length - postfixSize ) ] ;
71129 } else {
72- result = tr [ result ] ;
130+ result = tr [ result . slice ( 0 , 5 ) ] ;
73131 }
74132 if ( building ) {
75133 if ( result . slice ( 0 , 5 ) === 'entry' ) {
76134 result += building ;
135+ if ( building === 'mab' ) {
136+ result += 'm' ;
137+ }
77138 }
78139 }
79140 return result ;
0 commit comments