-
Notifications
You must be signed in to change notification settings - Fork 0
/
pipes.ts
49 lines (43 loc) · 1005 Bytes
/
pipes.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
import {Injectable, Pipe} from 'angular2/core';
import * as marked from 'marked';
import * as _ from 'lodash';
import * as moment from 'moment';
@Injectable()
@Pipe({ name: 'markdown' })
export class Markdown {
transform(value, args) {
value = value + '';
return marked(value)
}
}
@Pipe({ name: 'orderBy' })
export class OrderByPipe {
transform(array, args) {
return _.sortBy(array, args);
}
}
@Pipe({ name: 'filter' })
export class FilterArrayPipe {
transform(value, args) {
if (!args[0]) {
return value;
} else if (value) {
return value.filter(item => {
for (let key in item) {
if ((typeof item[key] === 'string' || item[key] instanceof String) &&
(item[key].indexOf(args[0]) !== -1)) {
return true;
}
}
});
}
}
}
@Pipe({ name: 'moment' })
export class MomentPipe {
transform(value, args) {
value = value + '';
args = args + '';
return moment(value).format(args)
}
}