Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
coopwire-hypothesis
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
孙灵跃 Leon Sun
coopwire-hypothesis
Commits
dd676034
Commit
dd676034
authored
Jul 20, 2020
by
Lyza Danger Gardner
Committed by
Lyza Gardner
Jul 21, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move unicode from services to util
parent
9edc2928
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
31 additions
and
28 deletions
+31
-28
index.js
src/sidebar/index.js
+0
-2
view-filter-test.js
src/sidebar/services/test/view-filter-test.js
+9
-1
view-filter.js
src/sidebar/services/view-filter.js
+4
-3
threading-test.js
src/sidebar/test/integration/threading-test.js
+1
-11
unicode-test.js
src/sidebar/util/test/unicode-test.js
+3
-5
unicode.js
src/sidebar/util/unicode.js
+14
-6
No files found.
src/sidebar/index.js
View file @
dd676034
...
@@ -130,7 +130,6 @@ import streamerService from './services/streamer';
...
@@ -130,7 +130,6 @@ import streamerService from './services/streamer';
import
tagsService
from
'./services/tags'
;
import
tagsService
from
'./services/tags'
;
import
threadsService
from
'./services/threads'
;
import
threadsService
from
'./services/threads'
;
import
toastMessenger
from
'./services/toast-messenger'
;
import
toastMessenger
from
'./services/toast-messenger'
;
import
unicodeService
from
'./services/unicode'
;
import
viewFilterService
from
'./services/view-filter'
;
import
viewFilterService
from
'./services/view-filter'
;
// Redux store.
// Redux store.
...
@@ -167,7 +166,6 @@ function startApp(config) {
...
@@ -167,7 +166,6 @@ function startApp(config) {
.
register
(
'tags'
,
tagsService
)
.
register
(
'tags'
,
tagsService
)
.
register
(
'threadsService'
,
threadsService
)
.
register
(
'threadsService'
,
threadsService
)
.
register
(
'toastMessenger'
,
toastMessenger
)
.
register
(
'toastMessenger'
,
toastMessenger
)
.
register
(
'unicode'
,
unicodeService
)
.
register
(
'viewFilter'
,
viewFilterService
)
.
register
(
'viewFilter'
,
viewFilterService
)
.
register
(
'store'
,
store
);
.
register
(
'store'
,
store
);
...
...
src/sidebar/services/test/view-filter-test.js
View file @
dd676034
import
ViewFilter
from
'../view-filter'
;
import
ViewFilter
,
{
$imports
}
from
'../view-filter'
;
function
isoDateWithAge
(
age
)
{
function
isoDateWithAge
(
age
)
{
return
new
Date
(
Date
.
now
()
-
age
*
1000
).
toISOString
();
return
new
Date
(
Date
.
now
()
-
age
*
1000
).
toISOString
();
...
@@ -27,6 +27,14 @@ describe('sidebar/services/view-filter', () => {
...
@@ -27,6 +27,14 @@ describe('sidebar/services/view-filter', () => {
normalize
:
sinon
.
stub
().
returnsArg
(
0
),
normalize
:
sinon
.
stub
().
returnsArg
(
0
),
};
};
viewFilter
=
new
ViewFilter
(
fakeUnicode
);
viewFilter
=
new
ViewFilter
(
fakeUnicode
);
$imports
.
$mock
({
'../util/unicode'
:
fakeUnicode
,
});
});
afterEach
(()
=>
{
$imports
.
$restore
();
});
});
describe
(
'#filter'
,
()
=>
{
describe
(
'#filter'
,
()
=>
{
...
...
src/sidebar/services/view-filter.js
View file @
dd676034
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
*/
*/
import
{
quote
}
from
'../util/annotation-metadata'
;
import
{
quote
}
from
'../util/annotation-metadata'
;
import
*
as
unicodeUtils
from
'../util/unicode'
;
// Prevent Babel inserting helper code after `@ngInject` comment below which
// Prevent Babel inserting helper code after `@ngInject` comment below which
// breaks browserify-ngannotate.
// breaks browserify-ngannotate.
...
@@ -35,8 +36,8 @@ function displayName(ann) {
...
@@ -35,8 +36,8 @@ function displayName(ann) {
* against the parsed query by the `filter` method of this class. Annotations
* against the parsed query by the `filter` method of this class. Annotations
* which do not match the filter are then hidden.
* which do not match the filter are then hidden.
*/
*/
// @ngInject
export
default
function
ViewFilter
(
unicode
)
{
export
default
function
ViewFilter
()
{
/**
/**
* Normalize a field value or query term for comparison.
* Normalize a field value or query term for comparison.
*/
*/
...
@@ -44,7 +45,7 @@ export default function ViewFilter(unicode) {
...
@@ -44,7 +45,7 @@ export default function ViewFilter(unicode) {
if
(
typeof
val
!==
'string'
)
{
if
(
typeof
val
!==
'string'
)
{
return
val
;
return
val
;
}
}
return
unicode
.
fold
(
unicode
.
normalize
(
val
)).
toLowerCase
();
return
unicode
Utils
.
fold
(
unicodeUtils
.
normalize
(
val
)).
toLowerCase
();
}
}
/**
/**
...
...
src/sidebar/test/integration/threading-test.js
View file @
dd676034
...
@@ -39,15 +39,6 @@ describe('annotation threading', function () {
...
@@ -39,15 +39,6 @@ describe('annotation threading', function () {
let
rootThread
;
let
rootThread
;
beforeEach
(
function
()
{
beforeEach
(
function
()
{
const
fakeUnicode
=
{
normalize
:
function
(
s
)
{
return
s
;
},
fold
:
function
(
s
)
{
return
s
;
},
};
const
fakeFeatures
=
{
const
fakeFeatures
=
{
flagEnabled
:
sinon
.
stub
().
returns
(
true
),
flagEnabled
:
sinon
.
stub
().
returns
(
true
),
};
};
...
@@ -59,8 +50,7 @@ describe('annotation threading', function () {
...
@@ -59,8 +50,7 @@ describe('annotation threading', function () {
.
register
(
'annotationsService'
,
()
=>
{})
.
register
(
'annotationsService'
,
()
=>
{})
.
register
(
'viewFilter'
,
viewFilterFactory
)
.
register
(
'viewFilter'
,
viewFilterFactory
)
.
register
(
'features'
,
{
value
:
fakeFeatures
})
.
register
(
'features'
,
{
value
:
fakeFeatures
})
.
register
(
'settings'
,
{
value
:
{}
})
.
register
(
'settings'
,
{
value
:
{}
});
.
register
(
'unicode'
,
{
value
:
fakeUnicode
});
store
=
container
.
get
(
'store'
);
store
=
container
.
get
(
'store'
);
rootThread
=
container
.
get
(
'rootThread'
);
rootThread
=
container
.
get
(
'rootThread'
);
...
...
src/sidebar/
services
/test/unicode-test.js
→
src/sidebar/
util
/test/unicode-test.js
View file @
dd676034
import
unicodeFactory
from
'../unicode'
;
import
*
as
unicode
from
'../unicode'
;
const
unicode
=
unicodeFactory
();
describe
(
'sidebar/util/unicode'
,
()
=>
{
describe
(
'fold'
,
()
=>
{
describe
(
'unicode'
,
()
=>
{
describe
(
'#fold'
,
()
=>
{
it
(
'removes hungarian marks'
,
()
=>
{
it
(
'removes hungarian marks'
,
()
=>
{
const
text
=
'Fürge rőt róka túlszökik zsíros étkű kutyán'
;
const
text
=
'Fürge rőt róka túlszökik zsíros étkű kutyán'
;
const
decoded
=
unicode
.
fold
(
unicode
.
normalize
(
text
));
const
decoded
=
unicode
.
fold
(
unicode
.
normalize
(
text
));
...
...
src/sidebar/
services
/unicode.js
→
src/sidebar/
util
/unicode.js
View file @
dd676034
...
@@ -9,10 +9,18 @@
...
@@ -9,10 +9,18 @@
// eslint-disable-next-line no-misleading-character-class
// eslint-disable-next-line no-misleading-character-class
const
COMBINING_MARKS
=
/
[\u
0300-
\u
036F
\u
0483-
\u
0489
\u
0591-
\u
05BD
\u
05BF
\u
05C1
\u
05C2
\u
05C4
\u
05C5
\u
05C7
\u
0610-
\u
061A
\u
064B-
\u
065F
\u
0670
\u
06D6-
\u
06DC
\u
06DF-
\u
06E4
\u
06E7
\u
06E8
\u
06EA-
\u
06ED
\u
0711
\u
0730-
\u
074A
\u
07A6-
\u
07B0
\u
07EB-
\u
07F3
\u
0816-
\u
0819
\u
081B-
\u
0823
\u
0825-
\u
0827
\u
0829-
\u
082D
\u
0859-
\u
085B
\u
08E4-
\u
08FE
\u
0900-
\u
0903
\u
093A-
\u
093C
\u
093E-
\u
094F
\u
0951-
\u
0957
\u
0962
\u
0963
\u
0981-
\u
0983
\u
09BC
\u
09BE-
\u
09C4
\u
09C7
\u
09C8
\u
09CB-
\u
09CD
\u
09D7
\u
09E2
\u
09E3
\u
0A01-
\u
0A03
\u
0A3C
\u
0A3E-
\u
0A42
\u
0A47
\u
0A48
\u
0A4B-
\u
0A4D
\u
0A51
\u
0A70
\u
0A71
\u
0A75
\u
0A81-
\u
0A83
\u
0ABC
\u
0ABE-
\u
0AC5
\u
0AC7-
\u
0AC9
\u
0ACB-
\u
0ACD
\u
0AE2
\u
0AE3
\u
0B01-
\u
0B03
\u
0B3C
\u
0B3E-
\u
0B44
\u
0B47
\u
0B48
\u
0B4B-
\u
0B4D
\u
0B56
\u
0B57
\u
0B62
\u
0B63
\u
0B82
\u
0BBE-
\u
0BC2
\u
0BC6-
\u
0BC8
\u
0BCA-
\u
0BCD
\u
0BD7
\u
0C01-
\u
0C03
\u
0C3E-
\u
0C44
\u
0C46-
\u
0C48
\u
0C4A-
\u
0C4D
\u
0C55
\u
0C56
\u
0C62
\u
0C63
\u
0C82
\u
0C83
\u
0CBC
\u
0CBE-
\u
0CC4
\u
0CC6-
\u
0CC8
\u
0CCA-
\u
0CCD
\u
0CD5
\u
0CD6
\u
0CE2
\u
0CE3
\u
0D02
\u
0D03
\u
0D3E-
\u
0D44
\u
0D46-
\u
0D48
\u
0D4A-
\u
0D4D
\u
0D57
\u
0D62
\u
0D63
\u
0D82
\u
0D83
\u
0DCA
\u
0DCF-
\u
0DD4
\u
0DD6
\u
0DD8-
\u
0DDF
\u
0DF2
\u
0DF3
\u
0E31
\u
0E34-
\u
0E3A
\u
0E47-
\u
0E4E
\u
0EB1
\u
0EB4-
\u
0EB9
\u
0EBB
\u
0EBC
\u
0EC8-
\u
0ECD
\u
0F18
\u
0F19
\u
0F35
\u
0F37
\u
0F39
\u
0F3E
\u
0F3F
\u
0F71-
\u
0F84
\u
0F86
\u
0F87
\u
0F8D-
\u
0F97
\u
0F99-
\u
0FBC
\u
0FC6
\u
102B-
\u
103E
\u
1056-
\u
1059
\u
105E-
\u
1060
\u
1062-
\u
1064
\u
1067-
\u
106D
\u
1071-
\u
1074
\u
1082-
\u
108D
\u
108F
\u
109A-
\u
109D
\u
135D-
\u
135F
\u
1712-
\u
1714
\u
1732-
\u
1734
\u
1752
\u
1753
\u
1772
\u
1773
\u
17B4-
\u
17D3
\u
17DD
\u
180B-
\u
180D
\u
18A9
\u
1920-
\u
192B
\u
1930-
\u
193B
\u
19B0-
\u
19C0
\u
19C8
\u
19C9
\u
1A17-
\u
1A1B
\u
1A55-
\u
1A5E
\u
1A60-
\u
1A7C
\u
1A7F
\u
1B00-
\u
1B04
\u
1B34-
\u
1B44
\u
1B6B-
\u
1B73
\u
1B80-
\u
1B82
\u
1BA1-
\u
1BAD
\u
1BE6-
\u
1BF3
\u
1C24-
\u
1C37
\u
1CD0-
\u
1CD2
\u
1CD4-
\u
1CE8
\u
1CED
\u
1CF2-
\u
1CF4
\u
1DC0-
\u
1DE6
\u
1DFC-
\u
1DFF
\u
20D0-
\u
20F0
\u
2CEF-
\u
2CF1
\u
2D7F
\u
2DE0-
\u
2DFF
\u
302A-
\u
302F
\u
3099
\u
309A
\u
A66F-
\u
A672
\u
A674-
\u
A67D
\u
A69F
\u
A6F0
\u
A6F1
\u
A802
\u
A806
\u
A80B
\u
A823-
\u
A827
\u
A880
\u
A881
\u
A8B4-
\u
A8C4
\u
A8E0-
\u
A8F1
\u
A926-
\u
A92D
\u
A947-
\u
A953
\u
A980-
\u
A983
\u
A9B3-
\u
A9C0
\u
AA29-
\u
AA36
\u
AA43
\u
AA4C
\u
AA4D
\u
AA7B
\u
AAB0
\u
AAB2-
\u
AAB4
\u
AAB7
\u
AAB8
\u
AABE
\u
AABF
\u
AAC1
\u
AAEB-
\u
AAEF
\u
AAF5
\u
AAF6
\u
ABE3-
\u
ABEA
\u
ABEC
\u
ABED
\u
FB1E
\u
FE00-
\u
FE0F
\u
FE20-
\u
FE26
]
/g
;
const
COMBINING_MARKS
=
/
[\u
0300-
\u
036F
\u
0483-
\u
0489
\u
0591-
\u
05BD
\u
05BF
\u
05C1
\u
05C2
\u
05C4
\u
05C5
\u
05C7
\u
0610-
\u
061A
\u
064B-
\u
065F
\u
0670
\u
06D6-
\u
06DC
\u
06DF-
\u
06E4
\u
06E7
\u
06E8
\u
06EA-
\u
06ED
\u
0711
\u
0730-
\u
074A
\u
07A6-
\u
07B0
\u
07EB-
\u
07F3
\u
0816-
\u
0819
\u
081B-
\u
0823
\u
0825-
\u
0827
\u
0829-
\u
082D
\u
0859-
\u
085B
\u
08E4-
\u
08FE
\u
0900-
\u
0903
\u
093A-
\u
093C
\u
093E-
\u
094F
\u
0951-
\u
0957
\u
0962
\u
0963
\u
0981-
\u
0983
\u
09BC
\u
09BE-
\u
09C4
\u
09C7
\u
09C8
\u
09CB-
\u
09CD
\u
09D7
\u
09E2
\u
09E3
\u
0A01-
\u
0A03
\u
0A3C
\u
0A3E-
\u
0A42
\u
0A47
\u
0A48
\u
0A4B-
\u
0A4D
\u
0A51
\u
0A70
\u
0A71
\u
0A75
\u
0A81-
\u
0A83
\u
0ABC
\u
0ABE-
\u
0AC5
\u
0AC7-
\u
0AC9
\u
0ACB-
\u
0ACD
\u
0AE2
\u
0AE3
\u
0B01-
\u
0B03
\u
0B3C
\u
0B3E-
\u
0B44
\u
0B47
\u
0B48
\u
0B4B-
\u
0B4D
\u
0B56
\u
0B57
\u
0B62
\u
0B63
\u
0B82
\u
0BBE-
\u
0BC2
\u
0BC6-
\u
0BC8
\u
0BCA-
\u
0BCD
\u
0BD7
\u
0C01-
\u
0C03
\u
0C3E-
\u
0C44
\u
0C46-
\u
0C48
\u
0C4A-
\u
0C4D
\u
0C55
\u
0C56
\u
0C62
\u
0C63
\u
0C82
\u
0C83
\u
0CBC
\u
0CBE-
\u
0CC4
\u
0CC6-
\u
0CC8
\u
0CCA-
\u
0CCD
\u
0CD5
\u
0CD6
\u
0CE2
\u
0CE3
\u
0D02
\u
0D03
\u
0D3E-
\u
0D44
\u
0D46-
\u
0D48
\u
0D4A-
\u
0D4D
\u
0D57
\u
0D62
\u
0D63
\u
0D82
\u
0D83
\u
0DCA
\u
0DCF-
\u
0DD4
\u
0DD6
\u
0DD8-
\u
0DDF
\u
0DF2
\u
0DF3
\u
0E31
\u
0E34-
\u
0E3A
\u
0E47-
\u
0E4E
\u
0EB1
\u
0EB4-
\u
0EB9
\u
0EBB
\u
0EBC
\u
0EC8-
\u
0ECD
\u
0F18
\u
0F19
\u
0F35
\u
0F37
\u
0F39
\u
0F3E
\u
0F3F
\u
0F71-
\u
0F84
\u
0F86
\u
0F87
\u
0F8D-
\u
0F97
\u
0F99-
\u
0FBC
\u
0FC6
\u
102B-
\u
103E
\u
1056-
\u
1059
\u
105E-
\u
1060
\u
1062-
\u
1064
\u
1067-
\u
106D
\u
1071-
\u
1074
\u
1082-
\u
108D
\u
108F
\u
109A-
\u
109D
\u
135D-
\u
135F
\u
1712-
\u
1714
\u
1732-
\u
1734
\u
1752
\u
1753
\u
1772
\u
1773
\u
17B4-
\u
17D3
\u
17DD
\u
180B-
\u
180D
\u
18A9
\u
1920-
\u
192B
\u
1930-
\u
193B
\u
19B0-
\u
19C0
\u
19C8
\u
19C9
\u
1A17-
\u
1A1B
\u
1A55-
\u
1A5E
\u
1A60-
\u
1A7C
\u
1A7F
\u
1B00-
\u
1B04
\u
1B34-
\u
1B44
\u
1B6B-
\u
1B73
\u
1B80-
\u
1B82
\u
1BA1-
\u
1BAD
\u
1BE6-
\u
1BF3
\u
1C24-
\u
1C37
\u
1CD0-
\u
1CD2
\u
1CD4-
\u
1CE8
\u
1CED
\u
1CF2-
\u
1CF4
\u
1DC0-
\u
1DE6
\u
1DFC-
\u
1DFF
\u
20D0-
\u
20F0
\u
2CEF-
\u
2CF1
\u
2D7F
\u
2DE0-
\u
2DFF
\u
302A-
\u
302F
\u
3099
\u
309A
\u
A66F-
\u
A672
\u
A674-
\u
A67D
\u
A69F
\u
A6F0
\u
A6F1
\u
A802
\u
A806
\u
A80B
\u
A823-
\u
A827
\u
A880
\u
A881
\u
A8B4-
\u
A8C4
\u
A8E0-
\u
A8F1
\u
A926-
\u
A92D
\u
A947-
\u
A953
\u
A980-
\u
A983
\u
A9B3-
\u
A9C0
\u
AA29-
\u
AA36
\u
AA43
\u
AA4C
\u
AA4D
\u
AA7B
\u
AAB0
\u
AAB2-
\u
AAB4
\u
AAB7
\u
AAB8
\u
AABE
\u
AABF
\u
AAC1
\u
AAEB-
\u
AAEF
\u
AAF5
\u
AAF6
\u
ABE3-
\u
ABEA
\u
ABEC
\u
ABED
\u
FB1E
\u
FE00-
\u
FE0F
\u
FE20-
\u
FE26
]
/g
;
// @ngInject
/**
export
default
function
unicode
()
{
* @param {string} str
return
{
* @return {string}
normalize
:
str
=>
str
.
normalize
(
'NFKD'
),
*/
fold
:
str
=>
str
.
replace
(
COMBINING_MARKS
,
''
),
export
function
fold
(
str
)
{
};
return
str
.
replace
(
COMBINING_MARKS
,
''
);
}
/**
* @param {string} str
* @return {string}
*/
export
function
normalize
(
str
)
{
return
str
.
normalize
(
'NFKD'
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment