Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
springcloud-sentinel
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
senthink-project-origin
springcloud-sentinel
Commits
d0bbf8ad
Commit
d0bbf8ad
authored
Apr 03, 2020
by
李根
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复dashboard重启之后,新添加的规则会替换掉老规则的bug
parent
155c6b3b
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
163 additions
and
99 deletions
+163
-99
.gitignore
+2
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/v2/FlowControllerV2.java
+4
-4
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/gateway/InMemApiDefinitionStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/gateway/InMemGatewayFlowRuleStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemAuthorityRuleStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemDegradeRuleStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemFlowRuleStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemParamFlowRuleStore.java
+10
-0
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemSystemRuleStore.java
+10
-0
sentinel-dashboard/src/main/resources/application.yml
+2
-2
sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html
+1
-1
sentinel-dashboard/src/main/webapp/resources/dist/css/app.css
+0
-6
sentinel-dashboard/src/main/webapp/resources/dist/js/app.js
+0
-2
sentinel-dashboard/src/main/webapp/resources/dist/js/app.vendor.js
+0
-0
sentinel-dashboard/src/main/webapp/resources/package-lock.json
+84
-84
No files found.
.gitignore
View file @
d0bbf8ad
...
@@ -5,3 +5,5 @@ target\
...
@@ -5,3 +5,5 @@ target\
sentinel-dashboard-plus.iml
sentinel-dashboard-plus.iml
application-dev.yml
application-dev.yml
application-dev.properties
application-dev.properties
application-dev.yml
application-dev.properties
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/v2/FlowControllerV2.java
View file @
d0bbf8ad
...
@@ -188,10 +188,10 @@ public class FlowControllerV2 {
...
@@ -188,10 +188,10 @@ public class FlowControllerV2 {
entity
.
setGmtCreate
(
oldEntity
.
getGmtCreate
());
entity
.
setGmtCreate
(
oldEntity
.
getGmtCreate
());
entity
.
setGmtModified
(
date
);
entity
.
setGmtModified
(
date
);
try
{
try
{
entity
=
repository
.
save
(
entity
);
//
entity = repository.save(entity);
if
(
entity
==
null
)
{
//
if (entity == null) {
return
Result
.
ofFail
(-
1
,
"save entity fail"
);
//
return Result.ofFail(-1, "save entity fail");
}
//
}
publishRules
(
oldEntity
.
getApp
());
publishRules
(
oldEntity
.
getApp
());
}
catch
(
Throwable
throwable
)
{
}
catch
(
Throwable
throwable
)
{
logger
.
error
(
"Failed to update flow rule"
,
throwable
);
logger
.
error
(
"Failed to update flow rule"
,
throwable
);
...
...
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/gateway/InMemApiDefinitionStore.java
View file @
d0bbf8ad
...
@@ -36,4 +36,14 @@ public class InMemApiDefinitionStore extends InMemoryRuleRepositoryAdapter<ApiDe
...
@@ -36,4 +36,14 @@ public class InMemApiDefinitionStore extends InMemoryRuleRepositoryAdapter<ApiDe
protected
long
nextId
()
{
protected
long
nextId
()
{
return
ids
.
incrementAndGet
();
return
ids
.
incrementAndGet
();
}
}
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
}
}
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/gateway/InMemGatewayFlowRuleStore.java
View file @
d0bbf8ad
...
@@ -36,4 +36,14 @@ public class InMemGatewayFlowRuleStore extends InMemoryRuleRepositoryAdapter<Gat
...
@@ -36,4 +36,14 @@ public class InMemGatewayFlowRuleStore extends InMemoryRuleRepositoryAdapter<Gat
protected
long
nextId
()
{
protected
long
nextId
()
{
return
ids
.
incrementAndGet
();
return
ids
.
incrementAndGet
();
}
}
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
}
}
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemAuthorityRuleStore.java
View file @
d0bbf8ad
...
@@ -36,4 +36,14 @@ public class InMemAuthorityRuleStore extends InMemoryRuleRepositoryAdapter<Autho
...
@@ -36,4 +36,14 @@ public class InMemAuthorityRuleStore extends InMemoryRuleRepositoryAdapter<Autho
protected
long
nextId
()
{
protected
long
nextId
()
{
return
ids
.
incrementAndGet
();
return
ids
.
incrementAndGet
();
}
}
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
}
}
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemDegradeRuleStore.java
View file @
d0bbf8ad
...
@@ -33,4 +33,14 @@ public class InMemDegradeRuleStore extends InMemoryRuleRepositoryAdapter<Degrade
...
@@ -33,4 +33,14 @@ public class InMemDegradeRuleStore extends InMemoryRuleRepositoryAdapter<Degrade
protected
long
nextId
()
{
protected
long
nextId
()
{
return
ids
.
incrementAndGet
();
return
ids
.
incrementAndGet
();
}
}
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
}
}
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemFlowRuleStore.java
View file @
d0bbf8ad
...
@@ -38,6 +38,11 @@ public class InMemFlowRuleStore extends InMemoryRuleRepositoryAdapter<FlowRuleEn
...
@@ -38,6 +38,11 @@ public class InMemFlowRuleStore extends InMemoryRuleRepositoryAdapter<FlowRuleEn
}
}
@Override
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
FlowRuleEntity
preProcess
(
FlowRuleEntity
entity
)
{
protected
FlowRuleEntity
preProcess
(
FlowRuleEntity
entity
)
{
if
(
entity
!=
null
&&
entity
.
isClusterMode
())
{
if
(
entity
!=
null
&&
entity
.
isClusterMode
())
{
ClusterFlowConfig
config
=
entity
.
getClusterConfig
();
ClusterFlowConfig
config
=
entity
.
getClusterConfig
();
...
@@ -50,4 +55,9 @@ public class InMemFlowRuleStore extends InMemoryRuleRepositoryAdapter<FlowRuleEn
...
@@ -50,4 +55,9 @@ public class InMemFlowRuleStore extends InMemoryRuleRepositoryAdapter<FlowRuleEn
}
}
return
entity
;
return
entity
;
}
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
}
}
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemParamFlowRuleStore.java
View file @
d0bbf8ad
...
@@ -37,6 +37,16 @@ public class InMemParamFlowRuleStore extends InMemoryRuleRepositoryAdapter<Param
...
@@ -37,6 +37,16 @@ public class InMemParamFlowRuleStore extends InMemoryRuleRepositoryAdapter<Param
}
}
@Override
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
@Override
protected
ParamFlowRuleEntity
preProcess
(
ParamFlowRuleEntity
entity
)
{
protected
ParamFlowRuleEntity
preProcess
(
ParamFlowRuleEntity
entity
)
{
if
(
entity
!=
null
&&
entity
.
isClusterMode
())
{
if
(
entity
!=
null
&&
entity
.
isClusterMode
())
{
ParamFlowClusterConfig
config
=
entity
.
getClusterConfig
();
ParamFlowClusterConfig
config
=
entity
.
getClusterConfig
();
...
...
sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemSystemRuleStore.java
View file @
d0bbf8ad
...
@@ -33,4 +33,14 @@ public class InMemSystemRuleStore extends InMemoryRuleRepositoryAdapter<SystemRu
...
@@ -33,4 +33,14 @@ public class InMemSystemRuleStore extends InMemoryRuleRepositoryAdapter<SystemRu
protected
long
nextId
()
{
protected
long
nextId
()
{
return
ids
.
incrementAndGet
();
return
ids
.
incrementAndGet
();
}
}
@Override
protected
void
setId
(
long
id
)
{
ids
.
set
(
id
);
}
@Override
protected
void
clearId
()
{
ids
.
set
(
0
);
}
}
}
sentinel-dashboard/src/main/resources/application.yml
View file @
d0bbf8ad
...
@@ -5,7 +5,7 @@ spring:
...
@@ -5,7 +5,7 @@ spring:
mongodb
:
mongodb
:
port
:
27017
port
:
27017
database
:
db1
database
:
db1
uri
:
mongodb://lg:123456@
118.25.153.63
uri
:
mongodb://lg:123456@
xx.xx.xx.xx
authentication-database
:
admin
authentication-database
:
admin
http
:
http
:
encoding
:
encoding
:
...
@@ -34,7 +34,7 @@ auth:
...
@@ -34,7 +34,7 @@ auth:
nacos
:
nacos
:
degradeDataIdPrefix
:
degrade-rules
degradeDataIdPrefix
:
degrade-rules
serverAddr
:
10.16.10.139
serverAddr
:
xx.xx.xx.xx
groupId
:
DEFAULT_GROUP
groupId
:
DEFAULT_GROUP
flowDataIdPrefix
:
flow-rules
flowDataIdPrefix
:
flow-rules
namespace
:
31b168cb-51ee-4b8b-adfa-29b42d4afa0b
namespace
:
31b168cb-51ee-4b8b-adfa-29b42d4afa0b
...
...
sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html
View file @
d0bbf8ad
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<ul
class=
"nav nav-second-level"
ng-show=
"entry.active"
>
<ul
class=
"nav nav-second-level"
ng-show=
"entry.active"
>
<li
ui-sref-active=
"active"
>
<li
ui-sref-active=
"active"
>
<a
ui-sref=
"dashboard.metric({app: entry.app})"
>
<a
ui-sref=
"dashboard.metric({app: entry.app})"
>
<i
class=
"fa fa-bar-chart"
></i>
实时监控
11
</a>
<i
class=
"fa fa-bar-chart"
></i>
实时监控
</a>
</li>
</li>
<li
ui-sref-active=
"active"
ng-if=
"!entry.isGateway"
>
<li
ui-sref-active=
"active"
ng-if=
"!entry.isGateway"
>
...
...
sentinel-dashboard/src/main/webapp/resources/dist/css/app.css
deleted
100644 → 0
View file @
155c6b3b
.chat
,
.timeline
{
list-style
:
none
}
#loading-bar
,
#loading-bar-spinner
{
pointer-events
:
none
;
-webkit-pointer-events
:
none
;
-webkit-transition
:
350ms
linear
all
;
-moz-transition
:
350ms
linear
all
;
-o-transition
:
350ms
linear
all
;
transition
:
350ms
linear
all
}
#loading-bar-spinner
.ng-enter
,
#loading-bar-spinner
.ng-leave.ng-leave-active
,
#loading-bar
.ng-enter
,
#loading-bar
.ng-leave.ng-leave-active
{
opacity
:
0
}
#loading-bar-spinner
.ng-enter.ng-enter-active
,
#loading-bar-spinner
.ng-leave
,
#loading-bar
.ng-enter.ng-enter-active
,
#loading-bar
.ng-leave
{
opacity
:
1
}
#loading-bar
.bar
{
-webkit-transition
:
width
350ms
;
-moz-transition
:
width
350ms
;
-o-transition
:
width
350ms
;
transition
:
width
350ms
;
background
:
#29d
;
position
:
fixed
;
z-index
:
10002
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
2px
;
border-bottom-right-radius
:
1px
;
border-top-right-radius
:
1px
}
#loading-bar
.peg
{
position
:
absolute
;
width
:
70px
;
right
:
0
;
top
:
0
;
height
:
2px
;
opacity
:
.45
;
-moz-box-shadow
:
#29d
1px
0
6px
1px
;
-ms-box-shadow
:
#29d
1px
0
6px
1px
;
-webkit-box-shadow
:
#29d
1px
0
6px
1px
;
box-shadow
:
#29d
1px
0
6px
1px
;
-moz-border-radius
:
100%
;
-webkit-border-radius
:
100%
;
border-radius
:
100%
}
#loading-bar-spinner
{
display
:
block
;
position
:
fixed
;
z-index
:
10002
;
top
:
10px
;
left
:
10px
}
#loading-bar-spinner
.spinner-icon
{
width
:
14px
;
height
:
14px
;
border
:
2px
solid
transparent
;
border-top-color
:
#29d
;
border-left-color
:
#29d
;
border-radius
:
50%
;
-webkit-animation
:
loading-bar-spinner
.4s
linear
infinite
;
-moz-animation
:
loading-bar-spinner
.4s
linear
infinite
;
-ms-animation
:
loading-bar-spinner
.4s
linear
infinite
;
-o-animation
:
loading-bar-spinner
.4s
linear
infinite
;
animation
:
loading-bar-spinner
.4s
linear
infinite
}
@-webkit-keyframes
loading-bar-spinner
{
0
%
{
-webkit-transform
:
rotate
(
0
);
transform
:
rotate
(
0
)}
100
%
{
-webkit-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
)}}
@-moz-keyframes
loading-bar-spinner
{
0
%
{
-moz-transform
:
rotate
(
0
);
transform
:
rotate
(
0
)}
100
%
{
-moz-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
)}}
@-o-keyframes
loading-bar-spinner
{
0
%
{
-o-transform
:
rotate
(
0
);
transform
:
rotate
(
0
)}
100
%
{
-o-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
)}}
@-ms-keyframes
loading-bar-spinner
{
0
%
{
-ms-transform
:
rotate
(
0
);
transform
:
rotate
(
0
)}
100
%
{
-ms-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
)}}
@keyframes
loading-bar-spinner
{
0
%
{
transform
:
rotate
(
0
)}
100
%
{
transform
:
rotate
(
360deg
)}}
.bootstrap-switch
{
display
:
inline-block
;
direction
:
ltr
;
cursor
:
pointer
;
border-radius
:
4px
;
border
:
1px
solid
#ccc
;
position
:
relative
;
text-align
:
left
;
overflow
:
hidden
;
line-height
:
8px
;
z-index
:
0
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
vertical-align
:
middle
;
-webkit-transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
;
-o-transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
;
transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
}
.bootstrap-switch
.bootstrap-switch-container
{
display
:
inline-block
;
top
:
0
;
border-radius
:
4px
;
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}
.bootstrap-switch
.bootstrap-switch-handle-off
,
.bootstrap-switch
.bootstrap-switch-handle-on
,
.bootstrap-switch
.bootstrap-switch-label
{
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
cursor
:
pointer
;
display
:
table-cell
;
vertical-align
:
middle
;
padding
:
6px
12px
;
font-size
:
14px
;
line-height
:
20px
}
.bootstrap-switch
.bootstrap-switch-handle-off
,
.bootstrap-switch
.bootstrap-switch-handle-on
{
text-align
:
center
;
z-index
:
1
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-primary
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-primary
{
color
:
#fff
;
background
:
#337ab7
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-info
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-info
{
color
:
#fff
;
background
:
#5bc0de
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-warning
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-warning
{
background
:
#f0ad4e
;
color
:
#fff
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-danger
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-danger
{
color
:
#fff
;
background
:
#d9534f
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-default
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-default
{
color
:
#000
;
background
:
#eee
}
.bootstrap-switch
.bootstrap-switch-label
{
text-align
:
center
;
margin-top
:
-1px
;
margin-bottom
:
-1px
;
z-index
:
100
;
color
:
#333
;
background
:
#fff
}
.bootstrap-switch
span
::before
{
content
:
"\200b"
}
.bootstrap-switch
.bootstrap-switch-handle-on
{
border-bottom-left-radius
:
3px
;
border-top-left-radius
:
3px
}
.bootstrap-switch
.bootstrap-switch-handle-off
{
border-bottom-right-radius
:
3px
;
border-top-right-radius
:
3px
}
.bootstrap-switch
input
[
type
=
radio
],
.bootstrap-switch
input
[
type
=
checkbox
]
{
position
:
absolute
!important
;
top
:
0
;
left
:
0
;
margin
:
0
;
z-index
:
-1
;
opacity
:
0
;
filter
:
alpha
(
opacity
=
0
);
visibility
:
hidden
}
.bootstrap-switch.bootstrap-switch-mini
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-mini
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-mini
.bootstrap-switch-label
{
padding
:
1px
5px
;
font-size
:
12px
;
line-height
:
1.5
}
.bootstrap-switch.bootstrap-switch-small
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-small
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-small
.bootstrap-switch-label
{
padding
:
5px
10px
;
font-size
:
12px
;
line-height
:
1.5
}
.bootstrap-switch.bootstrap-switch-large
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-large
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-large
.bootstrap-switch-label
{
padding
:
6px
16px
;
font-size
:
18px
;
line-height
:
1.3333333
}
.bootstrap-switch.bootstrap-switch-disabled
,
.bootstrap-switch.bootstrap-switch-indeterminate
,
.bootstrap-switch.bootstrap-switch-readonly
{
cursor
:
default
!important
}
.bootstrap-switch.bootstrap-switch-disabled
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-disabled
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-disabled
.bootstrap-switch-label
,
.bootstrap-switch.bootstrap-switch-indeterminate
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-indeterminate
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-indeterminate
.bootstrap-switch-label
,
.bootstrap-switch.bootstrap-switch-readonly
.bootstrap-switch-handle-off
,
.bootstrap-switch.bootstrap-switch-readonly
.bootstrap-switch-handle-on
,
.bootstrap-switch.bootstrap-switch-readonly
.bootstrap-switch-label
{
opacity
:
.5
;
filter
:
alpha
(
opacity
=
50
);
cursor
:
default
!important
}
.bootstrap-switch.bootstrap-switch-animate
.bootstrap-switch-container
{
-webkit-transition
:
margin-left
.5s
;
-o-transition
:
margin-left
.5s
;
transition
:
margin-left
.5s
}
.bootstrap-switch.bootstrap-switch-inverse
.bootstrap-switch-handle-on
{
border-radius
:
0
3px
3px
0
}
.bootstrap-switch.bootstrap-switch-inverse
.bootstrap-switch-handle-off
{
border-radius
:
3px
0
0
3px
}
.bootstrap-switch.bootstrap-switch-focused
{
border-color
:
#66afe9
;
outline
:
0
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
.075
),
0
0
8px
rgba
(
102
,
175
,
233
,
.6
);
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
.075
),
0
0
8px
rgba
(
102
,
175
,
233
,
.6
)}
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off
.bootstrap-switch-label
,
.bootstrap-switch.bootstrap-switch-on
.bootstrap-switch-label
{
border-bottom-right-radius
:
3px
;
border-top-right-radius
:
3px
}
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on
.bootstrap-switch-label
,
.bootstrap-switch.bootstrap-switch-off
.bootstrap-switch-label
{
border-bottom-left-radius
:
3px
;
border-top-left-radius
:
3px
}
.ngdialog
,
.ngdialog-overlay
{
position
:
fixed
;
top
:
0
;
right
:
0
;
bottom
:
0
;
left
:
0
}
@-webkit-keyframes
ngdialog-fadeout
{
0
%
{
opacity
:
1
}
100
%
{
opacity
:
0
}}
@keyframes
ngdialog-fadeout
{
0
%
{
opacity
:
1
}
100
%
{
opacity
:
0
}}
@-webkit-keyframes
ngdialog-fadein
{
0
%
{
opacity
:
0
}
100
%
{
opacity
:
1
}}
@keyframes
ngdialog-fadein
{
0
%
{
opacity
:
0
}
100
%
{
opacity
:
1
}}
.ngdialog
{
box-sizing
:
border-box
;
overflow
:
auto
;
-webkit-overflow-scrolling
:
touch
;
z-index
:
10000
}
.ngdialog
*,
.ngdialog
:after
,
.ngdialog
:before
{
box-sizing
:
inherit
}
.ngdialog.ngdialog-disabled-animation
,
.ngdialog.ngdialog-disabled-animation
.ngdialog-content
,
.ngdialog.ngdialog-disabled-animation
.ngdialog-overlay
{
-webkit-animation
:
none
!important
;
animation
:
none
!important
}
.ngdialog-overlay
{
background
:
rgba
(
0
,
0
,
0
,
.4
);
-webkit-backface-visibility
:
hidden
;
-webkit-animation
:
ngdialog-fadein
.5s
;
animation
:
ngdialog-fadein
.5s
}
.ngdialog-no-overlay
{
pointer-events
:
none
}
.ngdialog.ngdialog-closing
.ngdialog-overlay
{
-webkit-backface-visibility
:
hidden
;
-webkit-animation
:
ngdialog-fadeout
.5s
;
animation
:
ngdialog-fadeout
.5s
}
.ngdialog-content
{
background
:
#fff
;
-webkit-backface-visibility
:
hidden
;
-webkit-animation
:
ngdialog-fadein
.5s
;
animation
:
ngdialog-fadein
.5s
;
pointer-events
:
all
}
.ngdialog.ngdialog-closing
.ngdialog-content
{
-webkit-backface-visibility
:
hidden
;
-webkit-animation
:
ngdialog-fadeout
.5s
;
animation
:
ngdialog-fadeout
.5s
}
.ngdialog-close
:before
{
font-family
:
Helvetica
,
Arial
,
sans-serif
;
content
:
'\00D7'
;
cursor
:
pointer
}
body
.ngdialog-open
,
html
.ngdialog-open
{
overflow
:
hidden
}
@-webkit-keyframes
ngdialog-flyin
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
-40px
);
transform
:
translateY
(
-40px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
@keyframes
ngdialog-flyin
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
-40px
);
transform
:
translateY
(
-40px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
@-webkit-keyframes
ngdialog-flyout
{
0
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}
100
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
-40px
);
transform
:
translateY
(
-40px
)}}
@keyframes
ngdialog-flyout
{
0
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}
100
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
-40px
);
transform
:
translateY
(
-40px
)}}
.ngdialog.ngdialog-theme-default
{
padding-bottom
:
160px
;
padding-top
:
160px
}
.ngdialog.ngdialog-theme-default.ngdialog-closing
.ngdialog-content
{
-webkit-animation
:
ngdialog-flyout
.5s
;
animation
:
ngdialog-flyout
.5s
}
.ngdialog.ngdialog-theme-default
.ngdialog-content
{
-webkit-animation
:
ngdialog-flyin
.5s
;
animation
:
ngdialog-flyin
.5s
;
background
:
#f0f0f0
;
border-radius
:
5px
;
color
:
#444
;
font-family
:
Helvetica
,
sans-serif
;
font-size
:
1.1em
;
line-height
:
1.5em
;
margin
:
0
auto
;
max-width
:
100%
;
padding
:
1em
;
position
:
relative
;
width
:
450px
}
.ngdialog.ngdialog-theme-default
.ngdialog-close
{
border-radius
:
5px
;
cursor
:
pointer
;
position
:
absolute
;
right
:
0
;
top
:
0
}
.ngdialog.ngdialog-theme-default
.ngdialog-close
:before
{
background
:
0
0
;
border-radius
:
3px
;
color
:
#bbb
;
content
:
'\00D7'
;
font-size
:
26px
;
font-weight
:
400
;
height
:
30px
;
line-height
:
26px
;
position
:
absolute
;
right
:
3px
;
text-align
:
center
;
top
:
3px
;
width
:
30px
}
.ngdialog.ngdialog-theme-default
.ngdialog-close
:active:before
,
.ngdialog.ngdialog-theme-default
.ngdialog-close
:hover:before
{
color
:
#777
}
.ngdialog.ngdialog-theme-default
.ngdialog-message
{
margin-bottom
:
.5em
}
.ngdialog.ngdialog-theme-default
.ngdialog-input
{
margin-bottom
:
1em
}
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
text
],
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
password
],
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
email
],
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
url
],
.ngdialog.ngdialog-theme-default
.ngdialog-input
textarea
{
background
:
#fff
;
border
:
0
;
border-radius
:
3px
;
font-family
:
inherit
;
font-size
:
inherit
;
font-weight
:
inherit
;
margin
:
0
0
.25em
;
min-height
:
2.5em
;
padding
:
.25em
.67em
;
width
:
100%
}
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
text
]
:focus
,
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
password
]
:focus
,
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
email
]
:focus
,
.ngdialog.ngdialog-theme-default
.ngdialog-input
input
[
type
=
url
]
:focus
,
.ngdialog.ngdialog-theme-default
.ngdialog-input
textarea
:focus
{
box-shadow
:
inset
0
0
0
2px
#8dbdf1
;
outline
:
0
}
.ngdialog.ngdialog-theme-default
.ngdialog-buttons
:after
{
content
:
''
;
display
:
table
;
clear
:
both
}
.ngdialog.ngdialog-theme-default
.ngdialog-button
{
border
:
0
;
border-radius
:
3px
;
cursor
:
pointer
;
float
:
right
;
font-family
:
inherit
;
font-size
:
.8em
;
letter-spacing
:
.1em
;
line-height
:
1em
;
margin
:
0
0
0
.5em
;
padding
:
.75em
2em
;
text-transform
:
uppercase
}
.ngdialog.ngdialog-theme-default
.ngdialog-button
:focus
{
-webkit-animation
:
ngdialog-pulse
1.1s
infinite
;
animation
:
ngdialog-pulse
1.1s
infinite
;
outline
:
0
}
.btn
:active
,
.btn
:focus
,
.selectize-input
>
input
:focus
{
outline
:
0
!important
}
@media
(
max-width
:
568px
){
.ngdialog.ngdialog-theme-default
.ngdialog-button
:focus
{
-webkit-animation
:
none
;
animation
:
none
}}
.ngdialog.ngdialog-theme-default
.ngdialog-button.ngdialog-button-primary
{
background
:
#3288e6
;
color
:
#fff
}
.ngdialog.ngdialog-theme-default
.ngdialog-button.ngdialog-button-secondary
{
background
:
#e0e0e0
;
color
:
#777
}
.datetimepicker
{
border-radius
:
4px
;
direction
:
ltr
;
display
:
block
;
margin-top
:
1px
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
width
:
320px
}
.datetimepicker
>
div
{
display
:
none
}
.datetimepicker
.hour
,
.datetimepicker
.minute
{
height
:
34px
;
line-height
:
34px
;
margin
:
0
;
width
:
25%
}
.datetimepicker
.table
{
margin
:
0
}
.datetimepicker
.table
td
,
.datetimepicker
.table
th
{
border
:
0
;
border-radius
:
4px
;
height
:
20px
;
text-align
:
center
}
.datetimepicker
.day
:hover
,
.datetimepicker
.hour
:hover
,
.datetimepicker
.left
:hover
,
.datetimepicker
.minute
:hover
,
.datetimepicker
.right
:hover
,
.datetimepicker
.switch
:hover
{
background
:
#eee
;
cursor
:
pointer
}
.datetimepicker
.disabled
,
.datetimepicker
.disabled
:hover
{
background
:
0
0
;
color
:
#ebebeb
;
cursor
:
default
}
.datetimepicker
.active
,
.datetimepicker
.active.disabled
,
.datetimepicker
.active.disabled
:hover
,
.datetimepicker
.active
:hover
{
background-color
:
#04c
;
background-image
:
linear-gradient
(
to
bottom
,
#08c
,
#04c
);
background-repeat
:
repeat-x
;
border-color
:
#04c
#04c
#002a80
;
color
:
#fff
;
filter
:
progid
:
dximagetransform
.
microsoft
.
gradient
(
startColorstr
=
'#08c'
,
endColorstr
=
'#04c'
,
GradientType
=
0
);
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
.25
)}
.datetimepicker
.current
,
.datetimepicker
.current.disabled
,
.datetimepicker
.current.disabled
:hover
,
.datetimepicker
.current
:hover
{
background-color
:
#e5e5e5
}
.datetimepicker
.active.active
,
.datetimepicker
.active.disabled
,
.datetimepicker
.active.disabled.active
,
.datetimepicker
.active.disabled.disabled
,
.datetimepicker
.active.disabled
:active
,
.datetimepicker
.active.disabled
:hover
,
.datetimepicker
.active.disabled
:hover
.active
,
.datetimepicker
.active.disabled
:hover
.disabled
,
.datetimepicker
.active.disabled
:hover:active
,
.datetimepicker
.active.disabled
:hover:hover
,
.datetimepicker
.active
:active
,
.datetimepicker
.active
:hover
,
.datetimepicker
.active
:hover
.active
,
.datetimepicker
.active
:hover
.disabled
,
.datetimepicker
.active
:hover:active
,
.datetimepicker
.active
:hover:hover
,
.datetimepicker
span
.active.disabled
:hover
[
disabled
],
.datetimepicker
span
.active.disabled
[
disabled
],
.datetimepicker
span
.active
:hover
[
disabled
],
.datetimepicker
span
.active
[
disabled
],
.datetimepicker
td
.active.disabled
:hover
[
disabled
],
.datetimepicker
td
.active.disabled
[
disabled
],
.datetimepicker
td
.active
:hover
[
disabled
],
.datetimepicker
td
.active
[
disabled
]
{
background-color
:
#04c
}
.datetimepicker
span
{
border-radius
:
4px
;
cursor
:
pointer
;
display
:
block
;
float
:
left
;
height
:
54px
;
line-height
:
54px
;
margin
:
1%
;
width
:
23%
}
.datetimepicker
span
:hover
{
background
:
#eee
}
.datetimepicker
.future
,
.datetimepicker
.past
{
color
:
#999
}
.ui-notification
{
position
:
fixed
;
z-index
:
9999
;
width
:
300px
;
-webkit-transition
:
all
ease
.5s
;
-o-transition
:
all
ease
.5s
;
transition
:
all
ease
.5s
;
color
:
#fff
;
border-radius
:
0
;
background
:
#337ab7
;
box-shadow
:
5px
5px
10px
rgba
(
0
,
0
,
0
,
.3
)}
.ui-notification.clickable
{
cursor
:
pointer
}
.ui-notification.clickable
:hover
{
opacity
:
.7
}
.ui-notification.killed
{
-webkit-transition
:
opacity
ease
1s
;
-o-transition
:
opacity
ease
1s
;
transition
:
opacity
ease
1s
;
opacity
:
0
}
.ui-notification
>
h3
{
font-size
:
14px
;
font-weight
:
700
;
display
:
block
;
margin
:
10px
10px
0
;
padding
:
0
0
5px
;
text-align
:
left
;
border-bottom
:
1px
solid
rgba
(
255
,
255
,
255
,
.3
)}
.ui-notification
a
{
color
:
#fff
}
.ui-notification
a
:hover
{
text-decoration
:
underline
}
.ui-notification
>
.message
{
margin
:
10px
}
.ui-notification.warning
{
color
:
#fff
;
background
:
#f0ad4e
}
.ui-notification.error
{
color
:
#fff
;
background
:
#d9534f
}
.ui-notification.success
{
color
:
#fff
;
background
:
#5cb85c
}
.ui-notification.info
{
color
:
#fff
;
background
:
#5bc0de
}
table
.rz-table
{
table-layout
:
fixed
;
border-collapse
:
collapse
}
table
.rz-table
th
{
position
:
relative
;
min-width
:
25px
}
table
.rz-table
th
.rz-handle
{
width
:
10px
;
height
:
100%
;
position
:
absolute
;
top
:
0
;
right
:
0
;
cursor
:
ew-resize
!important
}
table
.rz-table
th
.rz-handle.rz-handle-active
{
border-right
:
1px
dotted
#000
}
.selectize-control.plugin-drag_drop.multi
>
.selectize-input
>
div
.ui-sortable-placeholder
{
visibility
:
visible
!important
;
background
:
#f2f2f2
!important
;
background
:
rgba
(
0
,
0
,
0
,
.06
)
!important
;
border
:
0
!important
;
-webkit-box-shadow
:
inset
0
0
12px
4px
#fff
;
box-shadow
:
inset
0
0
12px
4px
#fff
}
.selectize-control.plugin-drag_drop
.ui-sortable-placeholder
::after
{
content
:
'!'
;
visibility
:
hidden
}
.selectize-control.plugin-drag_drop
.ui-sortable-helper
{
-webkit-box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.2
);
box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.2
)}
.selectize-dropdown-header
{
position
:
relative
;
padding
:
5px
8px
;
border-bottom
:
1px
solid
#d0d0d0
;
background
:
#f8f8f8
;
-webkit-border-radius
:
3px
3px
0
0
;
-moz-border-radius
:
3px
3px
0
0
;
border-radius
:
3px
3px
0
0
}
.selectize-dropdown-header-close
{
position
:
absolute
;
right
:
8px
;
top
:
50%
;
color
:
#303030
;
opacity
:
.4
;
margin-top
:
-12px
;
line-height
:
20px
;
font-size
:
20px
!important
}
.selectize-dropdown-header-close
:hover
{
color
:
#000
}
.selectize-dropdown.plugin-optgroup_columns
.optgroup
{
border-right
:
1px
solid
#f2f2f2
;
border-top
:
0
none
;
float
:
left
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
}
.selectize-control.plugin-remove_button
[
data-value
]
.remove
,
.selectize-input
{
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
display
:
inline-block
}
.selectize-dropdown.plugin-optgroup_columns
.optgroup
:last-child
{
border-right
:
0
none
}
.selectize-dropdown.plugin-optgroup_columns
.optgroup
:before
{
display
:
none
}
.selectize-dropdown.plugin-optgroup_columns
.optgroup-header
{
border-top
:
0
none
}
.selectize-control.plugin-remove_button
[
data-value
]
{
position
:
relative
;
padding-right
:
24px
!important
}
.selectize-control.plugin-remove_button
[
data-value
]
.remove
{
z-index
:
1
;
position
:
absolute
;
top
:
0
;
right
:
0
;
bottom
:
0
;
width
:
17px
;
text-align
:
center
;
font-weight
:
700
;
font-size
:
12px
;
color
:
inherit
;
text-decoration
:
none
;
vertical-align
:
middle
;
padding
:
2px
0
0
;
border-left
:
1px
solid
#d0d0d0
;
-webkit-border-radius
:
0
2px
2px
0
;
-moz-border-radius
:
0
2px
2px
0
;
border-radius
:
0
2px
2px
0
;
box-sizing
:
border-box
}
.selectize-control.plugin-remove_button
[
data-value
]
.remove
:hover
{
background
:
rgba
(
0
,
0
,
0
,
.05
)}
.selectize-control.plugin-remove_button
[
data-value
]
.active
.remove
{
border-left-color
:
#cacaca
}
.selectize-control.plugin-remove_button
.disabled
[
data-value
]
.remove
:hover
{
background
:
0
0
}
.selectize-control.plugin-remove_button
.disabled
[
data-value
]
.remove
{
border-left-color
:
#fff
}
.selectize-control.plugin-remove_button
.remove-single
{
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
23px
}
.selectize-control
,
.selectize-input
{
position
:
relative
}
.selectize-dropdown
,
.selectize-input
,
.selectize-input
input
{
color
:
#303030
;
font-family
:
inherit
;
font-size
:
13px
;
line-height
:
18px
;
-webkit-font-smoothing
:
inherit
}
.selectize-control.single
.selectize-input.input-active
,
.selectize-input
{
background
:
#fff
;
cursor
:
text
;
display
:
inline-block
}
.selectize-input
{
border
:
1px
solid
#d0d0d0
;
padding
:
8px
;
width
:
100%
;
overflow
:
hidden
;
z-index
:
1
;
box-sizing
:
border-box
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
.1
);
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
.1
);
-webkit-border-radius
:
3px
;
-moz-border-radius
:
3px
;
border-radius
:
3px
}
.selectize-control.multi
.selectize-input.has-items
{
padding
:
6px
8px
3px
}
.selectize-input.full
{
background-color
:
#fff
}
.selectize-input.disabled
,
.selectize-input.disabled
*
{
cursor
:
default
!important
}
.selectize-input.focus
{
-webkit-box-shadow
:
inset
0
1px
2px
rgba
(
0
,
0
,
0
,
.15
);
box-shadow
:
inset
0
1px
2px
rgba
(
0
,
0
,
0
,
.15
)}
.selectize-input.dropdown-active
{
-webkit-border-radius
:
3px
3px
0
0
;
-moz-border-radius
:
3px
3px
0
0
;
border-radius
:
3px
3px
0
0
}
.selectize-input
>*
{
vertical-align
:
baseline
;
display
:
-moz-inline-stack
;
display
:
inline-block
;
zoom
:
1
}
.selectize-control.multi
.selectize-input
>
div
{
cursor
:
pointer
;
margin
:
0
3px
3px
0
;
padding
:
2px
6px
;
background
:
#f2f2f2
;
color
:
#303030
;
border
:
0
solid
#d0d0d0
}
.selectize-control.multi
.selectize-input
>
div
.active
{
background
:
#e8e8e8
;
color
:
#303030
;
border
:
0
solid
#cacaca
}
.selectize-control.multi
.selectize-input.disabled
>
div
,
.selectize-control.multi
.selectize-input.disabled
>
div
.active
{
color
:
#7d7d7d
;
background
:
#fff
;
border
:
0
solid
#fff
}
.selectize-input
>
input
{
display
:
inline-block
!important
;
padding
:
0
!important
;
min-height
:
0
!important
;
max-height
:
none
!important
;
max-width
:
100%
!important
;
margin
:
0
2px
0
0
!important
;
text-indent
:
0
!important
;
border
:
0
!important
;
background
:
0
0
!important
;
line-height
:
inherit
!important
;
-webkit-user-select
:
auto
!important
;
-webkit-box-shadow
:
none
!important
;
box-shadow
:
none
!important
}
.selectize-input
>
input
::-ms-clear
{
display
:
none
}
.selectize-input
::after
{
content
:
' '
;
display
:
block
;
clear
:
left
}
.selectize-input.dropdown-active
::before
{
content
:
' '
;
display
:
block
;
position
:
absolute
;
background
:
#f0f0f0
;
height
:
1px
;
bottom
:
0
;
left
:
0
;
right
:
0
}
.selectize-dropdown
{
position
:
absolute
;
z-index
:
10
;
border
:
1px
solid
#d0d0d0
;
background
:
#fff
;
margin
:
-1px
0
0
;
border-top
:
0
none
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
-webkit-box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
.1
);
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
.1
);
-webkit-border-radius
:
0
0
3px
3px
;
-moz-border-radius
:
0
0
3px
3px
;
border-radius
:
0
0
3px
3px
}
.selectize-dropdown
[
data-selectable
]
{
cursor
:
pointer
;
overflow
:
hidden
}
.selectize-dropdown
[
data-selectable
]
.highlight
{
background
:
rgba
(
125
,
168
,
208
,
.2
);
-webkit-border-radius
:
1px
;
-moz-border-radius
:
1px
;
border-radius
:
1px
}
.selectize-dropdown
.optgroup-header
,
.selectize-dropdown
.option
{
padding
:
5px
8px
}
.selectize-dropdown
.option
,
.selectize-dropdown
[
data-disabled
],
.selectize-dropdown
[
data-disabled
]
[
data-selectable
]
.option
{
cursor
:
inherit
;
opacity
:
.5
}
.selectize-dropdown
[
data-selectable
]
.option
{
opacity
:
1
}
.selectize-dropdown
.optgroup
:first-child
.optgroup-header
{
border-top
:
0
none
}
.selectize-dropdown
.optgroup-header
{
color
:
#303030
;
background
:
#fff
;
cursor
:
default
}
.selectize-dropdown
.active
{
background-color
:
#f5fafd
;
color
:
#495c68
}
.selectize-dropdown
.active.create
{
color
:
#495c68
}
.selectize-dropdown
.create
{
color
:
rgba
(
48
,
48
,
48
,
.5
)}
.selectize-dropdown-content
{
overflow-y
:
auto
;
overflow-x
:
hidden
;
max-height
:
200px
;
-webkit-overflow-scrolling
:
touch
}
.selectize-control.single
.selectize-input
,
.selectize-control.single
.selectize-input
input
{
cursor
:
pointer
}
.selectize-control.single
.selectize-input.input-active
,
.selectize-control.single
.selectize-input.input-active
input
{
cursor
:
text
}
.selectize-control.single
.selectize-input
:after
{
content
:
' '
;
display
:
block
;
position
:
absolute
;
top
:
50%
;
right
:
15px
;
margin-top
:
-3px
;
width
:
0
;
height
:
0
;
border-style
:
solid
;
border-width
:
5px
5px
0
;
border-color
:
grey
transparent
transparent
}
.selectize-control.single
.selectize-input.dropdown-active
:after
{
margin-top
:
-4px
;
border-width
:
0
5px
5px
;
border-color
:
transparent
transparent
grey
}
.selectize-control.rtl.single
.selectize-input
:after
{
left
:
15px
;
right
:
auto
}
.selectize-control.rtl
.selectize-input
>
input
{
margin
:
0
4px
0
-2px
!important
}
.selectize-control
.selectize-input.disabled
{
opacity
:
.5
;
background-color
:
#fafafa
}
/*!
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
body
{
background-color
:
#f8f8f8
}
.example
{
padding
:
.625rem
1.825rem
.625rem
2.5rem
;
border
:
1px
dashed
#ccc
;
position
:
relative
;
margin
:
0
0
.625rem
;
background-color
:
#fff
}
dl
dd
,
dl
dt
{
line-height
:
1.25rem
}
dl
dt
{
font-style
:
normal
;
font-weight
:
700
}
dl
dd
{
margin-left
:
.9375rem
}
dl
.horizontal
dt
{
float
:
left
;
width
:
10rem
;
overflow
:
hidden
;
clear
:
left
;
text-align
:
right
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
dl
.horizontal
dd
{
margin-left
:
11.25rem
}
#wrapper
{
width
:
100%
}
#page-wrapper
{
min-height
:
568px
;
background-color
:
#fff
}
@media
(
min-width
:
768px
){
#page-wrapper
{
position
:
inherit
;
margin
:
0
0
0
250px
;
padding
:
0
30px
;
border-left
:
1px
solid
#e7e7e7
}}
.navbar-top-links
{
margin-right
:
0
}
.navbar-top-links
li
{
display
:
inline-block
}
.flot-chart
,
.navbar-top-links
.dropdown-menu
li
{
display
:
block
}
.navbar-top-links
li
:last-child
{
margin-right
:
15px
}
.navbar-top-links
li
a
{
padding
:
15px
;
min-height
:
50px
}
.navbar-top-links
.dropdown-menu
li
:last-child
{
margin-right
:
0
}
.navbar-top-links
.dropdown-menu
li
a
{
padding
:
3px
20px
;
min-height
:
0
}
.navbar-top-links
.dropdown-menu
li
a
div
{
white-space
:
normal
}
.navbar-top-links
.dropdown-alerts
,
.navbar-top-links
.dropdown-messages
,
.navbar-top-links
.dropdown-tasks
{
width
:
310px
;
min-width
:
0
}
.navbar-top-links
.dropdown-messages
{
margin-left
:
5px
}
.navbar-top-links
.dropdown-tasks
{
margin-left
:
-59px
}
.navbar-top-links
.dropdown-alerts
{
margin-left
:
-123px
}
.navbar-top-links
.dropdown-user
{
right
:
0
;
left
:
auto
}
.sidebar
.sidebar-search
{
padding
:
15px
}
.sidebar
ul
li
{
border-bottom
:
1px
solid
#e7e7e7
}
.sidebar
ul
li
a
.active
{
background-color
:
#fff
;
color
:
#fff
}
.sidebar
.arrow
{
float
:
right
}
.sidebar
.fa.arrow
:before
{
content
:
"\f104"
}
.sidebar
.active
>
a
>
.fa.arrow
:before
{
content
:
"\f107"
}
.sidebar
.nav-second-level
li
,
.sidebar
.nav-third-level
li
{
border-bottom
:
0
!important
}
.sidebar
.nav-second-level
li
a
{
padding-left
:
37px
}
.sidebar
.nav-third-level
li
a
{
padding-left
:
52px
}
@media
(
min-width
:
768px
){
.sidebar
{
z-index
:
1
;
position
:
absolute
;
width
:
250px
;
margin-top
:
51px
}
.navbar-top-links
.dropdown-alerts
,
.navbar-top-links
.dropdown-messages
,
.navbar-top-links
.dropdown-tasks
{
margin-left
:
auto
}}
.btn-outline
{
color
:
inherit
;
background-color
:
transparent
;
transition
:
all
.5s
}
.btn-primary.btn-outline
{
color
:
#428bca
}
.btn-success.btn-outline
{
color
:
#5cb85c
}
.btn-info.btn-outline
{
color
:
#5bc0de
}
.btn-warning.btn-outline
{
color
:
#f0ad4e
}
.btn-danger.btn-outline
{
color
:
#d9534f
}
.btn-danger.btn-outline
:hover
,
.btn-info.btn-outline
:hover
,
.btn-primary.btn-outline
:hover
,
.btn-success.btn-outline
:hover
,
.btn-warning.btn-outline
:hover
{
color
:
#fff
}
.chat
{
margin
:
0
;
padding
:
0
}
.chat
li
{
margin-bottom
:
10px
;
padding-bottom
:
5px
;
border-bottom
:
1px
dotted
#999
}
.chat
li
.left
.chat-body
{
margin-left
:
60px
}
.chat
li
.right
.chat-body
{
margin-right
:
60px
}
.chat
li
.chat-body
p
{
margin
:
0
}
.chat
.glyphicon
,
.panel
.slidedown
.glyphicon
{
margin-right
:
5px
}
.chat-panel
.panel-body
{
height
:
350px
;
overflow-y
:
scroll
}
.login-panel
{
margin-top
:
25%
}
.flot-chart
{
height
:
400px
}
.flot-chart-content
{
width
:
100%
;
height
:
100%
}
.dataTables_wrapper
{
position
:
relative
;
clear
:
both
}
table
.dataTable
thead
.sorting
,
table
.dataTable
thead
.sorting_asc
,
table
.dataTable
thead
.sorting_asc_disabled
,
table
.dataTable
thead
.sorting_desc
,
table
.dataTable
thead
.sorting_desc_disabled
{
background
:
0
0
}
table
.dataTable
thead
.sorting_asc
:after
{
content
:
"\f0de"
;
float
:
right
;
font-family
:
fontawesome
}
table
.dataTable
thead
.sorting_desc
:after
{
content
:
"\f0dd"
;
float
:
right
;
font-family
:
fontawesome
}
table
.dataTable
thead
.sorting
:after
{
content
:
"\f0dc"
;
float
:
right
;
font-family
:
fontawesome
;
color
:
rgba
(
50
,
50
,
50
,
.5
)}
.btn-circle
{
width
:
30px
;
height
:
30px
;
padding
:
6px
0
;
border-radius
:
15px
;
text-align
:
center
;
font-size
:
12px
;
line-height
:
1.428571429
}
.btn-circle.btn-lg
{
width
:
50px
;
height
:
50px
;
padding
:
10px
16px
;
border-radius
:
25px
;
font-size
:
18px
;
line-height
:
1.33
}
.btn-circle.btn-xl
{
width
:
70px
;
height
:
70px
;
padding
:
10px
16px
;
border-radius
:
35px
;
font-size
:
24px
;
line-height
:
1.33
}
.show-grid
[
class
^=
col-
]
{
padding-top
:
10px
;
padding-bottom
:
10px
;
border
:
1px
solid
#ddd
;
background-color
:
#eee
!important
}
.show-grid
{
margin
:
15px
0
}
.huge
{
font-size
:
40px
}
.panel-green
{
border-color
:
#5cb85c
}
.panel-green
.panel-heading
{
border-color
:
#5cb85c
;
color
:
#fff
;
background-color
:
#5cb85c
}
.panel-green
a
{
color
:
#5cb85c
}
.panel-green
a
:hover
{
color
:
#3d8b3d
}
.panel-red
{
border-color
:
#d9534f
}
.panel-red
.panel-heading
{
border-color
:
#d9534f
;
color
:
#fff
;
background-color
:
#d9534f
}
.panel-red
a
{
color
:
#d9534f
}
.panel-red
a
:hover
{
color
:
#b52b27
}
.panel-yellow
{
border-color
:
#f0ad4e
}
.panel-yellow
.panel-heading
{
border-color
:
#f0ad4e
;
color
:
#fff
;
background-color
:
#f0ad4e
}
.panel-yellow
a
{
color
:
#f0ad4e
}
.panel-yellow
a
:hover
{
color
:
#df8a13
}
.timeline
{
position
:
relative
;
padding
:
20px
0
}
.timeline
:before
{
content
:
" "
;
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
50%
;
width
:
3px
;
margin-left
:
-1.5px
;
background-color
:
#eee
}
.timeline
>
li
{
position
:
relative
;
margin-bottom
:
20px
}
.timeline
>
li
:after
,
.timeline
>
li
:before
{
content
:
" "
;
display
:
table
}
.timeline
>
li
:after
{
clear
:
both
}
.timeline
>
li
>
.timeline-panel
{
float
:
left
;
position
:
relative
;
width
:
46%
;
padding
:
20px
;
border
:
1px
solid
#d4d4d4
;
border-radius
:
2px
;
-webkit-box-shadow
:
0
1px
6px
rgba
(
0
,
0
,
0
,
.175
);
box-shadow
:
0
1px
6px
rgba
(
0
,
0
,
0
,
.175
)}
.timeline
>
li
>
.timeline-panel
:before
{
content
:
" "
;
display
:
inline-block
;
position
:
absolute
;
top
:
26px
;
right
:
-15px
;
border-top
:
15px
solid
transparent
;
border-right
:
0
solid
#ccc
;
border-bottom
:
15px
solid
transparent
;
border-left
:
15px
solid
#ccc
}
.timeline
>
li
>
.timeline-panel
:after
{
content
:
" "
;
display
:
inline-block
;
position
:
absolute
;
top
:
27px
;
right
:
-14px
;
border-top
:
14px
solid
transparent
;
border-right
:
0
solid
#fff
;
border-bottom
:
14px
solid
transparent
;
border-left
:
14px
solid
#fff
}
.timeline
>
li
>
.timeline-badge
{
z-index
:
100
;
position
:
absolute
;
top
:
16px
;
left
:
50%
;
width
:
50px
;
height
:
50px
;
margin-left
:
-25px
;
border-radius
:
50%
;
text-align
:
center
;
font-size
:
1.4em
;
line-height
:
50px
;
color
:
#fff
;
background-color
:
#999
}
.timeline
>
li
.timeline-inverted
>
.timeline-panel
{
float
:
right
}
.timeline
>
li
.timeline-inverted
>
.timeline-panel
:before
{
right
:
auto
;
left
:
-15px
;
border-right-width
:
15px
;
border-left-width
:
0
}
.timeline
>
li
.timeline-inverted
>
.timeline-panel
:after
{
right
:
auto
;
left
:
-14px
;
border-right-width
:
14px
;
border-left-width
:
0
}
.timeline-badge.primary
{
background-color
:
#2e6da4
!important
}
.timeline-badge.success
{
background-color
:
#3f903f
!important
}
.timeline-badge.warning
{
background-color
:
#f0ad4e
!important
}
.timeline-badge.danger
{
background-color
:
#d9534f
!important
}
.timeline-badge.info
{
background-color
:
#5bc0de
!important
}
.timeline-title
{
margin-top
:
0
;
color
:
inherit
}
.timeline-body
>
p
,
.timeline-body
>
ul
{
margin-bottom
:
0
}
.timeline-body
>
p
+
p
{
margin-top
:
5px
}
@media
(
max-width
:
767px
){
ul
.timeline
:before
{
left
:
40px
}
ul
.timeline
>
li
>
.timeline-panel
{
width
:
calc
(
100%
-
90px
);
width
:
-moz-calc
(
100%
-
90px
);
width
:
-webkit-calc
(
100%
-
90px
);
float
:
right
}
ul
.timeline
>
li
>
.timeline-badge
{
top
:
16px
;
left
:
15px
;
margin-left
:
0
}
ul
.timeline
>
li
>
.timeline-panel
:before
{
right
:
auto
;
left
:
-15px
;
border-right-width
:
15px
;
border-left-width
:
0
}
ul
.timeline
>
li
>
.timeline-panel
:after
{
right
:
auto
;
left
:
-14px
;
border-right-width
:
14px
;
border-left-width
:
0
}}
.header
,
.jumbotron
{
border-bottom
:
1px
solid
#e5e5e5
}
.btn
{
height
:
32px
}
.width-200
{
max-width
:
200px
}
.width-300
,
.witdh-300
{
max-width
:
300px
}
body
{
padding
:
0
}
.footer
,
.header
,
.marketing
{
padding-left
:
15px
;
padding-right
:
15px
}
.header
{
margin-bottom
:
10px
}
.header
h3
{
margin-top
:
0
;
margin-bottom
:
0
;
line-height
:
40px
;
padding-bottom
:
19px
}
.card
.detail
,
.card
.detail-brand
{
line-height
:
98px
;
text-align
:
center
}
.footer
{
padding-top
:
19px
;
color
:
#777
;
border-top
:
1px
solid
#e5e5e5
}
.container-narrow
>
hr
{
margin
:
30px
0
}
.jumbotron
{
text-align
:
center
}
.jumbotron
.btn
{
font-size
:
21px
;
padding
:
14px
24px
}
.marketing
{
margin
:
40px
0
}
.marketing
p
+
h4
{
margin-top
:
28px
}
@media
screen
and
(
min-width
:
768px
){
.container
{
width
:
inherit
;
margin-left
:
60px
;
margin-right
:
5px
}
.footer
,
.header
,
.marketing
{
padding-left
:
0
;
padding-right
:
0
}
.header
{
margin-bottom
:
30px
}
.jumbotron
{
border-bottom
:
0
}}
.navbar-inverse
.navbar-nav
>
li
>
a
{
color
:
#b0ddce
;
font-size
:
15px
}
.navbar-inverse
.navbar-nav
>
.open
>
a
,
.navbar-inverse
.navbar-nav
>
.open
>
a
:focus
,
.navbar-inverse
.navbar-nav
>
.open
>
a
:hover
{
background-color
:
#1b926c
}
@media
(
min-width
:
900px
){
.navbar-right
,
.navbar-right
~
.navbar-right
{
margin-right
:
0
}
.navbar-left
{
float
:
left
!important
}
.navbar-right
{
float
:
right
!important
}}
.dropdown-menu
{
min-width
:
100px
!important
}
.nav-sidebar
li
.active
a
{
background
:
#DDD
}
.dropdown-menu
>
li
>
a
:focus
,
.dropdown-menu
>
li
>
a
:hover
{
background
:
#1d9d74
;
color
:
#fff
}
.broadcast-message
,
.broadcast-message-preview
{
padding
:
10px
;
text-align
:
center
;
background
:
#555
;
color
:
#BBB
;
margin-top
:
50px
}
.card
{
position
:
relative
;
border
:
1px
solid
#d9d9d9
;
color
:
#666
;
background-color
:
#fff
;
width
:
100%
;
border-radius
:
5px
}
.card
.card-header
,
.tools-header
{
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
}
.card
.card-header
{
padding
:
9px
0
;
height
:
40px
;
background
:
#555
;
color
:
#fff
;
text-align
:
center
}
.card
.card-body
{
padding
:
12px
10px
}
.card
.card-footer
{
height
:
20px
;
font-size
:
10px
;
color
:
#777
;
margin
:
-15px
20px
5px
}
.card
.detail-brand
{
float
:
left
;
width
:
30%
;
font-size
:
30px
;
color
:
#fff
}
.card
.default
{
background
:
#1d9d74
}
.card
.info
{
background
:
#6EBEE7
}
.card
.warn
{
background
:
#ED7F54
}
.card
.danger
{
background
:
#6583BE
}
.card
.detail
.text-default
{
color
:
#1d9d74
}
.card
.detail
.text-info
{
color
:
#6EBEE7
}
.card
.detail
.text-warn
{
color
:
#ED7F54
}
.card
.detail
.text-danger
{
color
:
#6583BE
}
.card
.detail
{
float
:
right
;
width
:
70%
}
.card
.detail
.text
{
font-size
:
12px
}
.card
.detail
.number
{
font-size
:
30px
;
font-weight
:
500
}
.h100
{
height
:
100px
}
.inline
{
display
:
inline
}
.separator
{
height
:
1px
;
background-color
:
#e5e5e5
;
margin-top
:
10px
}
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
,
.card
>
.card-body
>
table
>
thead
>
tr
>
td
{
word-wrap
:
break-word
;
word-break
:
break-all
}
.card
>
.card-body
>
table
>
thead
>
tr
>
td
{
font-weight
:
500
;
font-size
:
13px
;
text-align
:
center
}
.card
>
.card-body
>
table
>
thead
>
tr
>
td
>
span
{
font-weight
:
500
;
font-size
:
10px
}
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
{
font-size
:
12px
;
text-align
:
center
}
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
>
a
{
color
:
#666
}
.thumbnails
>
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
,
.thumbnails
>
.card
>
.card-body
>
table
>
thead
>
tr
>
td
{
font-size
:
12px
;
color
:
#777
;
word-wrap
:
break-word
;
word-break
:
break-all
}
.thumbnails
>
.card
>
.card-body
>
table
>
thead
>
tr
>
td
:nth-child
(
n
+
2
)
{
text-align
:
center
}
.thumbnails
>
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
:nth-child
(
n
+
2
)
{
font-weight
:
700
;
text-align
:
center
}
.thumbnails
>
.card
>
.card-body
>
table
>
tbody
>
tr
>
td
:nth-child
(
1
),
.thumbnails
>
.card
>
.card-body
>
table
>
thead
>
tr
>
td
:nth-child
(
1
)
{
text-align
:
left
}
.tools-header
{
background
:
#f5f5f5
;
padding
:
9px
0
;
height
:
40px
}
.tools-header
.brand
{
font-size
:
13px
;
margin
:
2px
10px
;
font-weight
:
700
;
float
:
left
}
.tools-header
.brand
>
a
{
color
:
#666
}
.tools-header
>
a
,
.tools-header
>
button
,
.tools-header
>
select
{
float
:
right
;
max-width
:
80px
;
margin
:
1px
10px
;
height
:
25px
;
padding
:
0
10px
;
line-height
:
25px
;
color
:
#666
}
.tools-header
.paged
{
margin-right
:
0
}
.btn.btn-danger-tag
{
color
:
#fff
;
background-color
:
#d9534f
;
border-color
:
#d43f3a
;
line-height
:
1px
;
font-size
:
11px
;
padding
:
4px
}
.btn.btn-danger
{
color
:
#333
;
background-color
:
#fff
;
border-color
:
#ccc
}
.btn.btn-danger
:active
,
.btn.btn-danger
:focus
,
.btn.btn-danger
:hover
{
color
:
#d9534f
;
border-color
:
#d9534f
;
background
:
#fff
}
.form-control
{
height
:
32px
}
.input-label
:before
{
display
:
inline-block
;
content
:
"*"
;
color
:
#f44336
;
font-family
:
SimSun
;
font-size
:
12px
;
-webkit-transform
:
TranslateX
(
-10px
);
-ms-transform
:
TranslateX
(
-10px
);
transform
:
TranslateX
(
-10px
)}
.badge-main
,
.label.label-main
{
color
:
#fff
;
background-color
:
#1d9d74
;
border-color
:
#1d9d74
}
.bootstrap-tagsinput
{
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
.075
);
display
:
inline-block
;
padding
:
4px
6px
;
color
:
#555
;
vertical-align
:
middle
;
border-radius
:
4px
;
width
:
85%
;
height
:
100px
;
line-height
:
20px
;
cursor
:
text
}
.bootstrap-tagsinput
>
.dropdown-menu
{
min-width
:
40px
;
font-size
:
12px
}
.bootstrap-tagsinput
>
.dropdown-menu
>
.active
>
a
,
.bootstrap-tagsinput
>
.dropdown-menu
>
.active
>
a
:focus
,
.bootstrap-tagsinput
>
.dropdown-menu
>
.active
>
a
:hover
{
background-image
:
-webkit-linear-gradient
(
top
,
#1d9d74
0
,
#1d9d74
100%
);
background-image
:
-o-linear-gradient
(
top
,
#1d9d74
0
,
#1d9d74
100%
);
background-image
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
from
(
#1d9d74
),
to
(
#1d9d74
));
background-image
:
linear-gradient
(
to
bottom
,
#1d9d74
0
,
#1d9d74
100%
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#1d9d74'
,
endColorstr
=
'#1d9d74'
,
GradientType
=
0
);
background-repeat
:
repeat-x
;
color
:
#fff
;
text-decoration
:
none
;
outline
:
0
;
background-color
:
#1d9d74
}
.inputs-header
{
padding
:
9px
0
;
height
:
50px
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
}
.inputs-header
.brand
{
font-size
:
13px
;
margin
:
2px
10px
;
font-weight
:
700
;
float
:
left
}
.inputs-header
.brand
>
a
{
color
:
#666
}
.inputs-header
>
input
{
float
:
right
;
margin
:
1px
10px
;
height
:
30px
;
padding
:
0
10px
;
color
:
#666
}
.inputs-header
>
a
{
float
:
right
;
margin
:
1px
10px
;
height
:
30px
;
padding
:
5
5px
}
.inputs-header
>
select
{
float
:
right
;
max-width
:
80px
;
margin
:
1px
10px
;
padding
:
0
10px
;
color
:
#666
;
height
:
25px
;
font-size
:
12px
}
.witdh-150
{
max-width
:
150px
}
.witdh-200
{
max-width
:
200px
}
.card.highlight
{
border-color
:
#d9534f
}
.card
.pagination-footer
{
height
:
40px
;
font-size
:
10px
;
color
:
#777
;
margin
:
-15px
20px
5px
}
.card
.pagination-footer
.tools
{
font-size
:
12px
;
margin
:
11px
20px
11px
0
;
float
:
right
;
display
:
inline
}
.card
>
.pagination-footer
>
.tools
>
span
>
input
{
height
:
25px
;
max-width
:
50px
;
display
:
inline
}
.pagination
{
display
:
inline-block
;
padding-left
:
0
;
margin
:
8px
0
;
float
:
right
;
border-radius
:
4px
}
.pagination
>
a
{
margin-right
:
5px
;
height
:
28px
;
width
:
28px
;
padding
:
5px
0
}
.datepicker
>
.table
>
tbody
>
tr
>
td
,
.datepicker
>
.table
>
thead
>
tr
>
td
,
.timepicker
>
.table
>
tbody
>
tr
>
td
,
.timepicker
>
.table
>
thead
>
tr
>
td
{
padding
:
5px
3px
}
.datepicker
>
.table
>
tbody
>
tr
>
td
>
.btn
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
.btn
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
.btn
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
.btn
{
border
:
1px
solid
#FFFDFD
}
.datepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:active
,
.datepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:focus
,
.datepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:hover
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:active
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:focus
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:hover
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:active
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:focus
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
.btn-default
:hover
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:active
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:focus
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
.btn-default
:hover
{
color
:
#1d9d74
;
border-color
:
#1d9d74
;
background
:
#fff
}
.datepicker
>
.table
>
tbody
>
tr
>
td
>
a
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
a
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
a
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
a
{
height
:
25px
;
width
:
25px
;
padding
:
3px
0
}
.datepicker
>
.table
>
tbody
>
tr
:first-child
>
td
>
a
{
padding
:
4px
0
}
.datepicker
>
.table
>
tbody
>
tr
>
td
>
a
.btn.active
,
.datepicker
>
.table
>
thead
>
tr
>
td
>
a
.btn.active
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
a
.btn.active
,
.timepicker
>
.table
>
thead
>
tr
>
td
>
a
.btn.active
{
color
:
#1d9d74
;
border-color
:
#1d9d74
;
background
:
#fff
;
box-shadow
:
inset
0
0
0
rgba
(
0
,
0
,
0
,
.125
)}
.datepicker
>
.table
>
thead
>
tr
>
td
:not
(
:first-child
)
:last-child
>
a
,
.timepicker
>
.table
>
thead
>
tr
>
td
:not
(
:first-child
)
:last-child
>
a
{
height
:
25px
;
width
:
50px
;
padding
:
5px
0
}
.datepicker
>
.table
>
tbody
>
tr
>
td
>
a
,
.timepicker
>
.table
>
tbody
>
tr
>
td
>
a
{
margin-left
:
8px
}
.sortorder
:after
{
content
:
'\25b2'
}
.sortorder.reverse
:after
{
content
:
'\25bc'
}
.input-control
select
{
-moz-appearance
:
none
;
-webkit-appearance
:
none
;
appearance
:
none
;
position
:
relative
;
border
:
1px
solid
#d9d9d9
;
width
:
100%
;
height
:
100%
;
padding
:
.3125rem
;
z-index
:
0
}
.navbar-inverse
{
background-color
:
#337ab7
;
border-color
:
#337ab7
}
.sidebar
{
z-index
:
1
;
width
:
220px
;
top
:
0
;
left
:
0
;
height
:
100%
}
#page-wrapper
{
position
:
inherit
;
margin
:
70px
0
0
220px
;
padding
:
12px
30px
;
border-left
:
0
solid
#e7e7e7
}
.sidebar
.sidebar-nav.navbar-collapse
{
background-color
:
#F5F5F5
;
position
:
relative
;
color
:
#000
;
width
:
100%
;
padding
:
0
;
margin
:
0
;
list-style
:
none
inside
}
.sidebar
a
{
color
:
#555
}
.sidebar
ul
li
:hover
{
color
:
red
}
.form-control
{
border-radius
:
8px
}
.form-control
:focus
,
.highlight-border
{
border-color
:
#337ab7
;
box-shadow
:
0
0
0
rgba
(
0
,
0
,
0
,
.075
)
inset
,
0
0
0
rgba
(
29
,
157
,
116
,
1
)}
.btn-outline-primary.focus
,
.btn-outline-primary
:focus
,
.btn-outline-primary
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-primary
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-primary.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
0
,
123
,
255
,
.5
)}
.browsehappy
{
margin
:
.2em
0
;
background
:
#ccc
;
color
:
#000
;
padding
:
.2em
0
}
.btn.btn-main
{
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#337ab7
}
.btn-default-inverse
,
.btn-default-inverse
:focus
,
.btn-default-inverse
:hover
,
.btn-default
:active
{
color
:
#337ab7
;
border-color
:
#337ab7
;
background
:
#fff
}
.btn-danger-inverse
,
.btn-danger-inverse
:focus
,
.btn-danger-inverse
:hover
,
.btn-danger
:active
{
color
:
#d9534f
;
border-color
:
#d9534f
;
background
:
#fff
}
.btn-tab-active
,
.btn-tab-active
:focus
,
.btn-tab-active
:hover
,
.btn-tab-default
:active
,
.btn-tab-default
:focus
,
.btn-tab-default
:hover
{
color
:
#337ab7
;
border-color
:
#337ab7
;
background
:
#fff
;
font-weight
:
600
}
.btn-tab-default
{
color
:
#777
;
background
:
#fff
;
font-weight
:
600
}
.pagination
>
.btn.active
{
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#337ab7
}
.btn-default
:active
,
.btn-default
:focus
,
.btn-default
:hover
{
color
:
#337ab7
;
border-color
:
#337ab7
;
background
:
#fff
}
.bootstrap-switch.bootstrap-switch-on
{
border-color
:
#337ab7
}
.bootstrap-switch
.bootstrap-switch-handle-off.bootstrap-switch-success
,
.bootstrap-switch
.bootstrap-switch-handle-on.bootstrap-switch-success
{
color
:
#fff
;
background
:
#337ab7
}
.selectize-input-200
>
.selectize-input
{
min-width
:
200px
;
border-color
:
#337ab7
}
.btn-outline-primary
{
color
:
#007bff
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#007bff
}
.btn-outline-primary
:hover
{
color
:
#fff
;
background-color
:
#007bff
;
border-color
:
#007bff
}
.btn-outline-primary.disabled
,
.btn-outline-primary
:disabled
{
color
:
#007bff
;
background-color
:
transparent
}
.btn-outline-primary
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-primary
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-primary.dropdown-toggle
{
color
:
#fff
;
background-color
:
#007bff
;
border-color
:
#007bff
}
.btn-outline-secondary.focus
,
.btn-outline-secondary
:focus
,
.btn-outline-secondary
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-secondary
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-secondary.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
108
,
117
,
125
,
.5
)}
.btn-outline-secondary
{
color
:
#6c757d
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#6c757d
}
.btn-outline-secondary
:hover
{
color
:
#fff
;
background-color
:
#6c757d
;
border-color
:
#6c757d
}
.btn-outline-secondary.disabled
,
.btn-outline-secondary
:disabled
{
color
:
#6c757d
;
background-color
:
transparent
}
.btn-outline-secondary
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-secondary
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-secondary.dropdown-toggle
{
color
:
#fff
;
background-color
:
#6c757d
;
border-color
:
#6c757d
}
.btn-outline-success.focus
,
.btn-outline-success
:focus
,
.btn-outline-success
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-success
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-success.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
40
,
167
,
69
,
.5
)}
.btn-outline-success
{
color
:
#28a745
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#28a745
}
.btn-outline-success
:hover
{
color
:
#fff
;
background-color
:
#28a745
;
border-color
:
#28a745
}
.btn-outline-success.disabled
,
.btn-outline-success
:disabled
{
color
:
#28a745
;
background-color
:
transparent
}
.btn-outline-success
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-success
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-success.dropdown-toggle
{
color
:
#fff
;
background-color
:
#28a745
;
border-color
:
#28a745
}
.btn-outline-info.focus
,
.btn-outline-info
:focus
,
.btn-outline-info
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-info
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-info.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
23
,
162
,
184
,
.5
)}
.btn-outline-info
{
color
:
#17a2b8
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#17a2b8
}
.btn-outline-info
:hover
{
color
:
#fff
;
background-color
:
#17a2b8
;
border-color
:
#17a2b8
}
.btn-outline-info.disabled
,
.btn-outline-info
:disabled
{
color
:
#17a2b8
;
background-color
:
transparent
}
.btn-outline-info
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-info
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-info.dropdown-toggle
{
color
:
#fff
;
background-color
:
#17a2b8
;
border-color
:
#17a2b8
}
.btn-outline-warning.focus
,
.btn-outline-warning
:focus
,
.btn-outline-warning
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-warning
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-warning.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
255
,
193
,
7
,
.5
)}
.btn-outline-warning
{
color
:
#ffc107
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#ffc107
}
.btn-outline-warning
:hover
{
color
:
#212529
;
background-color
:
#ffc107
;
border-color
:
#ffc107
}
.btn-outline-warning.disabled
,
.btn-outline-warning
:disabled
{
color
:
#ffc107
;
background-color
:
transparent
}
.btn-outline-warning
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-warning
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-warning.dropdown-toggle
{
color
:
#212529
;
background-color
:
#ffc107
;
border-color
:
#ffc107
}
.btn-outline-danger.focus
,
.btn-outline-danger
:focus
,
.btn-outline-danger
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-danger
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-danger.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
220
,
53
,
69
,
.5
)}
.btn-outline-danger
{
color
:
#dc3545
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#dc3545
}
.btn-outline-danger
:hover
{
color
:
#fff
;
background-color
:
#dc3545
;
border-color
:
#dc3545
}
.btn-outline-danger.disabled
,
.btn-outline-danger
:disabled
{
color
:
#dc3545
;
background-color
:
transparent
}
.btn-outline-danger
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-danger
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-danger.dropdown-toggle
{
color
:
#fff
;
background-color
:
#dc3545
;
border-color
:
#dc3545
}
.btn-outline-light.focus
,
.btn-outline-light
:focus
,
.btn-outline-light
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-light
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-light.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
248
,
249
,
250
,
.5
)}
.btn-outline-light
{
color
:
#f8f9fa
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#f8f9fa
}
.btn-outline-light
:hover
{
color
:
#212529
;
background-color
:
#f8f9fa
;
border-color
:
#f8f9fa
}
.btn-outline-light.disabled
,
.btn-outline-light
:disabled
{
color
:
#f8f9fa
;
background-color
:
transparent
}
.btn-outline-light
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-light
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-light.dropdown-toggle
{
color
:
#212529
;
background-color
:
#f8f9fa
;
border-color
:
#f8f9fa
}
.btn-outline-dark.focus
,
.btn-outline-dark
:focus
,
.btn-outline-dark
:not
(
:disabled
)
:not
(
.disabled
)
.active
:focus
,
.btn-outline-dark
:not
(
:disabled
)
:not
(
.disabled
)
:active:focus
,
.show
>
.btn-outline-dark.dropdown-toggle
:focus
{
box-shadow
:
0
0
0
.2rem
rgba
(
52
,
58
,
64
,
.5
)}
.btn-outline-dark
{
color
:
#343a40
;
background-color
:
transparent
;
background-image
:
none
;
border-color
:
#343a40
}
.btn-outline-dark
:hover
{
color
:
#fff
;
background-color
:
#343a40
;
border-color
:
#343a40
}
.btn-outline-dark.disabled
,
.btn-outline-dark
:disabled
{
color
:
#343a40
;
background-color
:
transparent
}
.btn-outline-dark
:not
(
:disabled
)
:not
(
.disabled
)
.active
,
.btn-outline-dark
:not
(
:disabled
)
:not
(
.disabled
)
:active
,
.show
>
.btn-outline-dark.dropdown-toggle
{
color
:
#fff
;
background-color
:
#343a40
;
border-color
:
#343a40
}
\ No newline at end of file
sentinel-dashboard/src/main/webapp/resources/dist/js/app.js
deleted
100644 → 0
View file @
155c6b3b
"use strict"
;
var
app
;
angular
.
module
(
"sentinelDashboardApp"
,[
"oc.lazyLoad"
,
"ui.router"
,
"ui.bootstrap"
,
"angular-loading-bar"
,
"ngDialog"
,
"ui.bootstrap.datetimepicker"
,
"ui-notification"
,
"rzTable"
,
"angular-clipboard"
,
"selectize"
,
"angularUtils.directives.dirPagination"
]).
factory
(
"AuthInterceptor"
,[
"$window"
,
"$state"
,
function
(
t
,
r
){
return
{
responseError
:
function
(
e
){
return
401
===
e
.
status
&&
(
t
.
localStorage
.
removeItem
(
"session_sentinel_admin"
),
r
.
go
(
"login"
)),
e
},
response
:
function
(
e
){
return
e
},
request
:
function
(
e
){
return
e
},
requestError
:
function
(
e
){
return
e
}}}]).
config
([
"$stateProvider"
,
"$urlRouterProvider"
,
"$ocLazyLoadProvider"
,
"$httpProvider"
,
function
(
e
,
t
,
r
,
a
){
a
.
interceptors
.
push
(
"AuthInterceptor"
),
r
.
config
({
debug
:
!
1
,
events
:
!
0
}),
t
.
otherwise
(
"/dashboard/home"
),
e
.
state
(
"login"
,{
url
:
"/login"
,
templateUrl
:
"app/views/login.html"
,
controller
:
"LoginCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/login.js"
]})}]}}).
state
(
"dashboard"
,{
url
:
"/dashboard"
,
templateUrl
:
"app/views/dashboard/main.html"
,
resolve
:{
loadMyDirectives
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/directives/header/header.js"
,
"app/scripts/directives/sidebar/sidebar.js"
,
"app/scripts/directives/sidebar/sidebar-search/sidebar-search.js"
]})}]}}).
state
(
"dashboard.home"
,{
url
:
"/home"
,
templateUrl
:
"app/views/dashboard/home.html"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/main.js"
]})}]}}).
state
(
"dashboard.flowV1"
,{
templateUrl
:
"app/views/flow_v1.html"
,
url
:
"/flow/:app"
,
controller
:
"FlowControllerV1"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/flow_v1.js"
]})}]}}).
state
(
"dashboard.flow"
,{
templateUrl
:
"app/views/flow_v2.html"
,
url
:
"/v2/flow/:app"
,
controller
:
"FlowControllerV2"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/flow_v2.js"
]})}]}}).
state
(
"dashboard.paramFlow"
,{
templateUrl
:
"app/views/param_flow.html"
,
url
:
"/paramFlow/:app"
,
controller
:
"ParamFlowController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/param_flow.js"
]})}]}}).
state
(
"dashboard.clusterAppAssignManage"
,{
templateUrl
:
"app/views/cluster_app_assign_manage.html"
,
url
:
"/cluster/assign_manage/:app"
,
controller
:
"SentinelClusterAppAssignManageController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/cluster_app_assign_manage.js"
]})}]}}).
state
(
"dashboard.clusterAppServerList"
,{
templateUrl
:
"app/views/cluster_app_server_list.html"
,
url
:
"/cluster/server/:app"
,
controller
:
"SentinelClusterAppServerListController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/cluster_app_server_list.js"
]})}]}}).
state
(
"dashboard.clusterAppClientList"
,{
templateUrl
:
"app/views/cluster_app_client_list.html"
,
url
:
"/cluster/client/:app"
,
controller
:
"SentinelClusterAppTokenClientListController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/cluster_app_token_client_list.js"
]})}]}}).
state
(
"dashboard.clusterSingle"
,{
templateUrl
:
"app/views/cluster_single_config.html"
,
url
:
"/cluster/single/:app"
,
controller
:
"SentinelClusterSingleController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/cluster_single.js"
]})}]}}).
state
(
"dashboard.authority"
,{
templateUrl
:
"app/views/authority.html"
,
url
:
"/authority/:app"
,
controller
:
"AuthorityRuleController"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/authority.js"
]})}]}}).
state
(
"dashboard.degradeV1"
,{
templateUrl
:
"app/views/degrade_v1.html"
,
url
:
"/degrade/:app"
,
controller
:
"DegradeControllerV1"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/degrade_v1.js"
]})}]}}).
state
(
"dashboard.degradeV2"
,{
templateUrl
:
"app/views/degrade_v2.html"
,
url
:
"/v2/degrade/:app"
,
controller
:
"DegradeControllerV2"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/degrade_v2.js"
]})}]}}).
state
(
"dashboard.system"
,{
templateUrl
:
"app/views/system.html"
,
url
:
"/system/:app"
,
controller
:
"SystemCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/system.js"
]})}]}}).
state
(
"dashboard.machine"
,{
templateUrl
:
"app/views/machine.html"
,
url
:
"/app/:app"
,
controller
:
"MachineCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/machine.js"
]})}]}}).
state
(
"dashboard.identity"
,{
templateUrl
:
"app/views/identity.html"
,
url
:
"/identity/:app"
,
controller
:
"IdentityCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/identity.js"
]})}]}}).
state
(
"dashboard.gatewayIdentity"
,{
templateUrl
:
"app/views/gateway/identity.html"
,
url
:
"/gateway/identity/:app"
,
controller
:
"GatewayIdentityCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/gateway/identity.js"
]})}]}}).
state
(
"dashboard.metric"
,{
templateUrl
:
"app/views/metric.html"
,
url
:
"/metric/:app"
,
controller
:
"MetricCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/metric.js"
]})}]}}).
state
(
"dashboard.gatewayApi"
,{
templateUrl
:
"app/views/gateway/api.html"
,
url
:
"/gateway/api/:app"
,
controller
:
"GatewayApiCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/gateway/api.js"
]})}]}}).
state
(
"dashboard.gatewayFlow"
,{
templateUrl
:
"app/views/gateway/flow.html"
,
url
:
"/gateway/flow/:app"
,
controller
:
"GatewayFlowCtl"
,
resolve
:{
loadMyFiles
:[
"$ocLazyLoad"
,
function
(
e
){
return
e
.
load
({
name
:
"sentinelDashboardApp"
,
files
:[
"app/scripts/controllers/gateway/flow.js"
]})}]}})}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
filter
(
"range"
,[
function
(){
return
function
(
e
,
t
){
if
(
isNaN
(
t
)
||
t
<=
0
)
return
[];
e
=
[];
for
(
var
r
=
1
;
r
<=
t
;
r
++
)
e
.
push
(
r
);
return
e
}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"VersionService"
,[
"$http"
,
function
(
e
){
this
.
version
=
function
(){
return
e
({
url
:
"/version"
,
method
:
"GET"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"AuthService"
,[
"$http"
,
function
(
t
){
this
.
check
=
function
(){
return
t
({
url
:
"/auth/check"
,
method
:
"POST"
})},
this
.
login
=
function
(
e
){
return
t
({
url
:
"/auth/login"
,
params
:
e
,
method
:
"POST"
})},
this
.
logout
=
function
(){
return
t
({
url
:
"/auth/logout"
,
method
:
"POST"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"AppService"
,[
"$http"
,
function
(
e
){
this
.
getApps
=
function
(){
return
e
({
url
:
"app/briefinfos.json"
,
method
:
"GET"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"FlowServiceV1"
,[
"$http"
,
function
(
a
){
function
t
(
e
){
return
void
0
===
e
||
""
===
e
||
isNaN
(
e
)
||
e
<=
0
}
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/v1/flow/rules"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
e
.
resource
,
e
.
limitApp
,
e
.
grade
,
e
.
count
,
e
.
strategy
,
e
.
refResource
,
e
.
controlBehavior
,
e
.
warmUpPeriodSec
,
e
.
maxQueueingTimeMs
,
e
.
app
,
e
.
ip
,
e
.
port
;
return
a
({
url
:
"/v1/flow/rule"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
resource
:
e
.
resource
,
limitApp
:
e
.
limitApp
,
grade
:
e
.
grade
,
count
:
e
.
count
,
strategy
:
e
.
strategy
,
refResource
:
e
.
refResource
,
controlBehavior
:
e
.
controlBehavior
,
warmUpPeriodSec
:
e
.
warmUpPeriodSec
,
maxQueueingTimeMs
:
e
.
maxQueueingTimeMs
};
return
a
({
url
:
"/v1/flow/save.json"
,
params
:
t
,
method
:
"PUT"
})},
this
.
deleteRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/v1/flow/delete.json"
,
params
:
t
,
method
:
"DELETE"
})},
this
.
checkRuleValid
=
function
(
e
){
return
void
0
===
e
.
resource
||
""
===
e
.
resource
?(
alert
(
"资源名称不能为空"
),
!
1
):
void
0
===
e
.
count
||
e
.
count
<
0
?(
alert
(
"限流阈值必须大于等于 0"
),
!
1
):
void
0
===
e
.
strategy
||
e
.
strategy
<
0
?(
alert
(
"无效的流控模式"
),
!
1
):
1
!=
e
.
strategy
&&
2
!=
e
.
strategy
||
void
0
!==
e
.
refResource
&&
""
!=
e
.
refResource
?
void
0
===
e
.
controlBehavior
||
e
.
controlBehavior
<
0
?(
alert
(
"无效的流控整形方式"
),
!
1
):
1
==
e
.
controlBehavior
&&
t
(
e
.
warmUpPeriodSec
)?(
alert
(
"预热时长必须大于 0"
),
!
1
):
2
==
e
.
controlBehavior
&&
t
(
e
.
maxQueueingTimeMs
)?(
alert
(
"排队超时时间必须大于 0"
),
!
1
):
!
e
.
clusterMode
||
void
0
!==
e
.
clusterConfig
&&
void
0
!==
e
.
clusterConfig
.
thresholdType
||
(
alert
(
"集群限流配置不正确"
),
!
1
):(
alert
(
"请填写关联资源或入口"
),
!
1
)}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"FlowServiceV2"
,[
"$http"
,
function
(
a
){
function
t
(
e
){
return
void
0
===
e
||
""
===
e
||
isNaN
(
e
)
||
e
<=
0
}
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/v2/flow/rules"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
return
a
({
url
:
"/v2/flow/rule"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveRule
=
function
(
e
){
return
a
({
url
:
"/v2/flow/rule/"
+
e
.
id
,
data
:
e
,
method
:
"PUT"
})},
this
.
deleteRule
=
function
(
e
){
return
a
({
url
:
"/v2/flow/rule/"
+
e
.
id
,
method
:
"DELETE"
})},
this
.
checkRuleValid
=
function
(
e
){
return
void
0
===
e
.
resource
||
""
===
e
.
resource
?(
alert
(
"资源名称不能为空"
),
!
1
):
void
0
===
e
.
count
||
e
.
count
<
0
?(
alert
(
"限流阈值必须大于等于 0"
),
!
1
):
void
0
===
e
.
strategy
||
e
.
strategy
<
0
?(
alert
(
"无效的流控模式"
),
!
1
):
1
!=
e
.
strategy
&&
2
!=
e
.
strategy
||
void
0
!==
e
.
refResource
&&
""
!=
e
.
refResource
?
void
0
===
e
.
controlBehavior
||
e
.
controlBehavior
<
0
?(
alert
(
"无效的流控整形方式"
),
!
1
):
1
==
e
.
controlBehavior
&&
t
(
e
.
warmUpPeriodSec
)?(
alert
(
"预热时长必须大于 0"
),
!
1
):
2
==
e
.
controlBehavior
&&
t
(
e
.
maxQueueingTimeMs
)?(
alert
(
"排队超时时间必须大于 0"
),
!
1
):
!
e
.
clusterMode
||
void
0
!==
e
.
clusterConfig
&&
void
0
!==
e
.
clusterConfig
.
thresholdType
||
(
alert
(
"集群限流配置不正确"
),
!
1
):(
alert
(
"请填写关联资源或入口"
),
!
1
)}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"DegradeServiceV1"
,[
"$http"
,
function
(
a
){
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/v1/degrade/rules.json"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
resource
:
e
.
resource
,
limitApp
:
e
.
limitApp
,
count
:
e
.
count
,
timeWindow
:
e
.
timeWindow
,
grade
:
e
.
grade
,
app
:
e
.
app
,
ip
:
e
.
ip
,
port
:
e
.
port
};
return
a
({
url
:
"/v1/degrade/new.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
saveRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
resource
:
e
.
resource
,
limitApp
:
e
.
limitApp
,
grade
:
e
.
grade
,
count
:
e
.
count
,
timeWindow
:
e
.
timeWindow
};
return
a
({
url
:
"/v1/degrade/save.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
deleteRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/v1/degrade/delete.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
checkRuleValid
=
function
(
e
){
return
void
0
===
e
.
resource
||
""
===
e
.
resource
?(
alert
(
"资源名称不能为空"
),
!
1
):
void
0
===
e
.
grade
||
e
.
grade
<
0
?(
alert
(
"未知的降级策略"
),
!
1
):
void
0
===
e
.
count
||
""
===
e
.
count
||
e
.
count
<
0
?(
alert
(
"降级阈值不能为空或小于 0"
),
!
1
):
void
0
===
e
.
timeWindow
||
""
===
e
.
timeWindow
||
e
.
timeWindow
<=
0
?(
alert
(
"降级时间窗口必须大于 0"
),
!
1
):
!
(
1
==
e
.
grade
&&
1
<
e
.
count
)
||
(
alert
(
"异常比率超出范围:[0.0 - 1.0]"
),
!
1
)}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"DegradeServiceV2"
,[
"$http"
,
function
(
a
){
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/v2/degrade/rules.json"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
resource
:
e
.
resource
,
limitApp
:
e
.
limitApp
,
count
:
e
.
count
,
timeWindow
:
e
.
timeWindow
,
grade
:
e
.
grade
,
app
:
e
.
app
,
ip
:
e
.
ip
,
port
:
e
.
port
};
return
a
({
url
:
"/v2/degrade/new.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
saveRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
resource
:
e
.
resource
,
limitApp
:
e
.
limitApp
,
grade
:
e
.
grade
,
count
:
e
.
count
,
timeWindow
:
e
.
timeWindow
};
return
a
({
url
:
"/v2/degrade/save.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
deleteRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/v2/degrade/delete.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
checkRuleValid
=
function
(
e
){
return
void
0
===
e
.
resource
||
""
===
e
.
resource
?(
alert
(
"资源名称不能为空"
),
!
1
):
void
0
===
e
.
grade
||
e
.
grade
<
0
?(
alert
(
"未知的降级策略"
),
!
1
):
void
0
===
e
.
count
||
""
===
e
.
count
||
e
.
count
<
0
?(
alert
(
"降级阈值不能为空或小于 0"
),
!
1
):
void
0
===
e
.
timeWindow
||
""
===
e
.
timeWindow
||
e
.
timeWindow
<=
0
?(
alert
(
"降级时间窗口必须大于 0"
),
!
1
):
!
(
1
==
e
.
grade
&&
1
<
e
.
count
)
||
(
alert
(
"异常比率超出范围:[0.0 - 1.0]"
),
!
1
)}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"SystemService"
,[
"$http"
,
function
(
a
){
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"system/rules.json"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
var
t
=
{
app
:
e
.
app
,
ip
:
e
.
ip
,
port
:
e
.
port
};
return
0
==
e
.
grade
?
t
.
highestSystemLoad
=
e
.
highestSystemLoad
:
1
==
e
.
grade
?
t
.
avgRt
=
e
.
avgRt
:
2
==
e
.
grade
?
t
.
maxThread
=
e
.
maxThread
:
3
==
e
.
grade
?
t
.
qps
=
e
.
qps
:
4
==
e
.
grade
&&
(
t
.
highestCpuUsage
=
e
.
highestCpuUsage
),
a
({
url
:
"/system/new.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
saveRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
};
return
0
==
e
.
grade
?
t
.
highestSystemLoad
=
e
.
highestSystemLoad
:
1
==
e
.
grade
?
t
.
avgRt
=
e
.
avgRt
:
2
==
e
.
grade
?
t
.
maxThread
=
e
.
maxThread
:
3
==
e
.
grade
?
t
.
qps
=
e
.
qps
:
4
==
e
.
grade
&&
(
t
.
highestCpuUsage
=
e
.
highestCpuUsage
),
a
({
url
:
"/system/save.json"
,
params
:
t
,
method
:
"GET"
})},
this
.
deleteRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/system/delete.json"
,
params
:
t
,
method
:
"GET"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"MachineService"
,[
"$http"
,
"$httpParamSerializerJQLike"
,
function
(
a
,
o
){
this
.
getAppMachines
=
function
(
e
){
return
a
({
url
:
"app/"
+
e
+
"/machines.json"
,
method
:
"GET"
})},
this
.
removeAppMachine
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"app/"
+
e
+
"/machine/remove.json"
,
method
:
"POST"
,
headers
:{
"Content-type"
:
"application/x-www-form-urlencoded; charset=UTF-8"
},
data
:
o
({
ip
:
t
,
port
:
r
})})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"IdentityService"
,[
"$http"
,
function
(
a
){
this
.
fetchIdentityOfMachine
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"resource/machineResource.json"
,
params
:{
ip
:
e
,
port
:
t
,
searchKey
:
r
},
method
:
"GET"
})},
this
.
fetchClusterNodeOfMachine
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"resource/machineResource.json"
,
params
:{
ip
:
e
,
port
:
t
,
type
:
"cluster"
,
searchKey
:
r
},
method
:
"GET"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"MetricService"
,[
"$http"
,
function
(
n
){
this
.
queryAppSortedIdentities
=
function
(
e
){
return
n
({
url
:
"/metric/queryTopResourceMetric.json"
,
params
:
e
,
method
:
"GET"
})},
this
.
queryByAppAndIdentity
=
function
(
e
){
return
n
({
url
:
"/metric/queryByAppAndResource.json"
,
params
:
e
,
method
:
"GET"
})},
this
.
queryByMachineAndIdentity
=
function
(
e
,
t
,
r
,
a
,
o
){
var
i
=
{
ip
:
e
,
port
:
t
,
identity
:
r
,
startTime
:
a
.
getTime
(),
endTime
:
o
.
getTime
()};
return
n
({
url
:
"/metric/queryByAppAndResource.json"
,
params
:
i
,
method
:
"GET"
})}}]),
angular
.
module
(
"sentinelDashboardApp"
).
service
(
"ParamFlowService"
,[
"$http"
,
function
(
a
){
function
o
(
e
){
return
!
(
"int"
!==
(
r
=
e
.
classType
)
&&
"double"
!==
r
&&
"float"
!==
r
&&
"long"
!==
r
&&
"short"
!==
r
||
void
0
!==
(
t
=
e
.
object
)
&&
""
!==
t
&&!
isNaN
(
t
))
||
(
"byte"
===
e
.
classType
&&
(
a
=
e
.
object
,
o
=-
128
,
i
=
127
,
void
0
===
a
||
""
===
a
||
isNaN
(
a
)
||
a
<
o
||
i
<
a
)
||
(
void
0
===
e
.
object
||
void
0
===
e
.
classType
||
(
void
0
===
(
n
=
e
.
count
)
||
""
===
n
||
isNaN
(
n
)
||
n
<
0
)));
var
t
,
r
,
a
,
o
,
i
,
n
}
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/paramFlow/rules"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
addNewRule
=
function
(
e
){
return
a
({
url
:
"/paramFlow/rule"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveRule
=
function
(
e
){
return
a
({
url
:
"/paramFlow/rule/"
+
e
.
id
,
data
:
e
,
method
:
"PUT"
})},
this
.
deleteRule
=
function
(
e
){
return
a
({
url
:
"/paramFlow/rule/"
+
e
.
id
,
method
:
"DELETE"
})},
this
.
checkRuleValid
=
function
(
e
){
if
(
!
e
.
resource
||
""
===
e
.
resource
)
return
alert
(
"资源名称不能为空"
),
!
1
;
if
(
1
!=
e
.
grade
)
return
alert
(
"未知的限流模式"
),
!
1
;
if
(
e
.
count
<
0
)
return
alert
(
"限流阈值必须大于等于 0"
),
!
1
;
if
(
void
0
===
e
.
paramIdx
||
""
===
e
.
paramIdx
||
isNaN
(
e
.
paramIdx
)
||
e
.
paramIdx
<
0
)
return
alert
(
"热点参数索引必须大于等于 0"
),
!
1
;
if
(
void
0
!==
e
.
paramFlowItemList
)
for
(
var
t
=
0
;
t
<
e
.
paramFlowItemList
.
length
;
t
++
){
var
r
=
e
.
paramFlowItemList
[
t
];
if
(
o
(
r
))
return
alert
(
"热点参数例外项不合法,请检查值和类型是否正确:参数为 "
+
r
.
object
+
", 类型为 "
+
r
.
classType
+
", 限流阈值为 "
+
r
.
count
),
!
1
}
return
!
0
}}]),
angular
.
module
(
"sentinelDashboardApp"
).
service
(
"AuthorityRuleService"
,[
"$http"
,
function
(
a
){
this
.
queryMachineRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/authority/rules"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
addNewRule
=
function
(
e
){
return
a
({
url
:
"/authority/rule"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveRule
=
function
(
e
){
return
a
({
url
:
"/authority/rule/"
+
e
.
id
,
data
:
e
,
method
:
"PUT"
})},
this
.
deleteRule
=
function
(
e
){
return
a
({
url
:
"/authority/rule/"
+
e
.
id
,
method
:
"DELETE"
})},
this
.
checkRuleValid
=
function
(
e
){
return
void
0
===
e
.
resource
||
""
===
e
.
resource
?(
alert
(
"资源名称不能为空"
),
!
1
):
void
0
===
e
.
limitApp
||
""
===
e
.
limitApp
?(
alert
(
"流控针对应用不能为空"
),
!
1
):
void
0
!==
e
.
strategy
||
(
alert
(
"必须选择黑白名单模式"
),
!
1
)}}]),
angular
.
module
(
"sentinelDashboardApp"
).
service
(
"ClusterStateService"
,[
"$http"
,
function
(
a
){
this
.
fetchClusterUniversalStateSingle
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/cluster/state_single"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
fetchClusterUniversalStateOfApp
=
function
(
e
){
return
a
({
url
:
"/cluster/state/"
+
e
,
method
:
"GET"
})},
this
.
fetchClusterServerStateOfApp
=
function
(
e
){
return
a
({
url
:
"/cluster/server_state/"
+
e
,
method
:
"GET"
})},
this
.
fetchClusterClientStateOfApp
=
function
(
e
){
return
a
({
url
:
"/cluster/client_state/"
+
e
,
method
:
"GET"
})},
this
.
modifyClusterConfig
=
function
(
e
){
return
a
({
url
:
"/cluster/config/modify_single"
,
data
:
e
,
method
:
"POST"
})},
this
.
applyClusterFullAssignOfApp
=
function
(
e
,
t
){
return
a
({
url
:
"/cluster/assign/all_server/"
+
e
,
data
:
t
,
method
:
"POST"
})},
this
.
applyClusterSingleServerAssignOfApp
=
function
(
e
,
t
){
return
a
({
url
:
"/cluster/assign/single_server/"
+
e
,
data
:
t
,
method
:
"POST"
})},
this
.
applyClusterServerBatchUnbind
=
function
(
e
,
t
){
return
a
({
url
:
"/cluster/assign/unbind_server/"
+
e
,
data
:
t
,
method
:
"POST"
})}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"GatewayApiService"
,[
"$http"
,
function
(
a
){
this
.
queryApis
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/gateway/api/list.json"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newApi
=
function
(
e
){
return
a
({
url
:
"/gateway/api/new.json"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveApi
=
function
(
e
){
return
a
({
url
:
"/gateway/api/save.json"
,
data
:
e
,
method
:
"POST"
})},
this
.
deleteApi
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/gateway/api/delete.json"
,
params
:
t
,
method
:
"POST"
})},
this
.
checkApiValid
=
function
(
e
,
t
){
if
(
void
0
===
e
.
apiName
||
""
===
e
.
apiName
)
return
alert
(
"API名称不能为空"
),
!
1
;
if
(
null
==
e
.
predicateItems
||
0
===
e
.
predicateItems
.
length
)
return
alert
(
"至少有一个匹配规则"
),
!
1
;
for
(
var
r
=
0
;
r
<
e
.
predicateItems
.
length
;
r
++
){
var
a
=
e
.
predicateItems
[
r
].
pattern
;
if
(
void
0
===
a
||
""
===
a
)
return
alert
(
"匹配串不能为空,请检查"
),
!
1
}
return
-
1
===
t
.
indexOf
(
e
.
apiName
)
||
(
alert
(
"API名称("
+
e
.
apiName
+
")已存在"
),
!
1
)}}]),(
app
=
angular
.
module
(
"sentinelDashboardApp"
)).
service
(
"GatewayFlowService"
,[
"$http"
,
function
(
a
){
this
.
queryRules
=
function
(
e
,
t
,
r
){
return
a
({
url
:
"/gateway/flow/list.json"
,
params
:{
app
:
e
,
ip
:
t
,
port
:
r
},
method
:
"GET"
})},
this
.
newRule
=
function
(
e
){
return
a
({
url
:
"/gateway/flow/new.json"
,
data
:
e
,
method
:
"POST"
})},
this
.
saveRule
=
function
(
e
){
return
a
({
url
:
"/gateway/flow/save.json"
,
data
:
e
,
method
:
"POST"
})},
this
.
deleteRule
=
function
(
e
){
var
t
=
{
id
:
e
.
id
,
app
:
e
.
app
};
return
a
({
url
:
"/gateway/flow/delete.json"
,
params
:
t
,
method
:
"POST"
})},
this
.
checkRuleValid
=
function
(
e
){
if
(
void
0
===
e
.
resource
||
""
===
e
.
resource
)
return
alert
(
"API名称不能为空"
),
!
1
;
if
(
null
!=
e
.
paramItem
&&
(
2
==
e
.
paramItem
.
parseStrategy
||
3
==
e
.
paramItem
.
parseStrategy
||
4
==
e
.
paramItem
.
parseStrategy
)){
if
(
void
0
===
e
.
paramItem
.
fieldName
||
""
===
e
.
paramItem
.
fieldName
)
return
alert
(
"当参数属性为Header、URL参数、Cookie时,参数名称不能为空"
),
!
1
;
if
(
""
===
e
.
paramItem
.
pattern
)
return
alert
(
"匹配串不能为空"
),
!
1
}
return
!
(
void
0
===
e
.
count
||
e
.
count
<
0
)
||
(
alert
((
1
===
e
.
grade
?
"QPS阈值"
:
"线程数"
)
+
"必须大于等于 0"
),
!
1
)}}]);
\ No newline at end of file
sentinel-dashboard/src/main/webapp/resources/dist/js/app.vendor.js
deleted
100644 → 0
View file @
155c6b3b
This source diff could not be displayed because it is too large. You can
view the blob
instead.
sentinel-dashboard/src/main/webapp/resources/package-lock.json
View file @
d0bbf8ad
...
@@ -183,7 +183,7 @@
...
@@ -183,7 +183,7 @@
},
},
"archy"
:
{
"archy"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/archy/download
/archy-1.0.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/archy/-
/archy-1.0.0.tgz"
,
"integrity"
:
"sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
,
"integrity"
:
"sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -213,7 +213,7 @@
...
@@ -213,7 +213,7 @@
},
},
"array-each"
:
{
"array-each"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/array-each/download
/array-each-1.0.1.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/array-each/-
/array-each-1.0.1.tgz"
,
"integrity"
:
"sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
,
"integrity"
:
"sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -225,8 +225,8 @@
...
@@ -225,8 +225,8 @@
},
},
"array-slice"
:
{
"array-slice"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"resolved"
:
"http
://registry.npm.taobao.org/array-slice/download
/array-slice-1.1.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/array-slice/-
/array-slice-1.1.0.tgz"
,
"integrity"
:
"sha
1-42jqFfibxwaff/uJrsOmx9SsItQ
="
,
"integrity"
:
"sha
512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=
="
,
"dev"
:
true
"dev"
:
true
},
},
"array-uniq"
:
{
"array-uniq"
:
{
...
@@ -762,7 +762,7 @@
...
@@ -762,7 +762,7 @@
},
},
"defaults"
:
{
"defaults"
:
{
"version"
:
"1.0.3"
,
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npm
.taobao.org/defaults/download
/defaults-1.0.3.tgz"
,
"resolved"
:
"https://registry.npm
js.org/defaults/-
/defaults-1.0.3.tgz"
,
"integrity"
:
"sha1-xlYFHpgX2f8I7YgUd/P+QBnz730="
,
"integrity"
:
"sha1-xlYFHpgX2f8I7YgUd/P+QBnz730="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -818,7 +818,7 @@
...
@@ -818,7 +818,7 @@
},
},
"deprecated"
:
{
"deprecated"
:
{
"version"
:
"0.0.1"
,
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/deprecated/download
/deprecated-0.0.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/deprecated/-
/deprecated-0.0.1.tgz"
,
"integrity"
:
"sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
,
"integrity"
:
"sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -900,7 +900,7 @@
...
@@ -900,7 +900,7 @@
},
},
"end-of-stream"
:
{
"end-of-stream"
:
{
"version"
:
"0.1.5"
,
"version"
:
"0.1.5"
,
"resolved"
:
"https://registry.npm
.taobao.org/end-of-stream/download
/end-of-stream-0.1.5.tgz"
,
"resolved"
:
"https://registry.npm
js.org/end-of-stream/-
/end-of-stream-0.1.5.tgz"
,
"integrity"
:
"sha1-jhdyBsPICDfYVjLouTWd/osvbq8="
,
"integrity"
:
"sha1-jhdyBsPICDfYVjLouTWd/osvbq8="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1007,8 +1007,8 @@
...
@@ -1007,8 +1007,8 @@
},
},
"extend"
:
{
"extend"
:
{
"version"
:
"3.0.2"
,
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/extend/download
/extend-3.0.2.tgz"
,
"resolved"
:
"https://registry.npm
js.org/extend/-
/extend-3.0.2.tgz"
,
"integrity"
:
"sha
1-+LETa0Bx+9jrFAr/hYsQGewpFfo
="
,
"integrity"
:
"sha
512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=
="
,
"dev"
:
true
"dev"
:
true
},
},
"extend-shallow"
:
{
"extend-shallow"
:
{
...
@@ -1163,7 +1163,7 @@
...
@@ -1163,7 +1163,7 @@
},
},
"find-index"
:
{
"find-index"
:
{
"version"
:
"0.1.1"
,
"version"
:
"0.1.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/find-index/download
/find-index-0.1.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/find-index/-
/find-index-0.1.1.tgz"
,
"integrity"
:
"sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
,
"integrity"
:
"sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -1179,7 +1179,7 @@
...
@@ -1179,7 +1179,7 @@
},
},
"findup-sync"
:
{
"findup-sync"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/findup-sync/download
/findup-sync-2.0.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/findup-sync/-
/findup-sync-2.0.0.tgz"
,
"integrity"
:
"sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw="
,
"integrity"
:
"sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1191,8 +1191,8 @@
...
@@ -1191,8 +1191,8 @@
},
},
"fined"
:
{
"fined"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/fined/download
/fined-1.2.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/fined/-
/fined-1.2.0.tgz"
,
"integrity"
:
"sha
1-0AvszxqitHXRbUI7Aji3E6LEo3s
="
,
"integrity"
:
"sha
512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"expand-tilde"
:
"^2.0.2"
,
"expand-tilde"
:
"^2.0.2"
,
...
@@ -1204,14 +1204,14 @@
...
@@ -1204,14 +1204,14 @@
},
},
"first-chunk-stream"
:
{
"first-chunk-stream"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/first-chunk-stream/download
/first-chunk-stream-1.0.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/first-chunk-stream/-
/first-chunk-stream-1.0.0.tgz"
,
"integrity"
:
"sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
,
"integrity"
:
"sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
,
"dev"
:
true
"dev"
:
true
},
},
"flagged-respawn"
:
{
"flagged-respawn"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/flagged-respawn/download
/flagged-respawn-1.0.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/flagged-respawn/-
/flagged-respawn-1.0.1.tgz"
,
"integrity"
:
"sha
1-595vEnnd2cqarIpZcdYYYGs6q0E
="
,
"integrity"
:
"sha
512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q=
="
,
"dev"
:
true
"dev"
:
true
},
},
"for-in"
:
{
"for-in"
:
{
...
@@ -1222,7 +1222,7 @@
...
@@ -1222,7 +1222,7 @@
},
},
"for-own"
:
{
"for-own"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/for-own/download
/for-own-1.0.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/for-own/-
/for-own-1.0.0.tgz"
,
"integrity"
:
"sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs="
,
"integrity"
:
"sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1252,7 +1252,7 @@
...
@@ -1252,7 +1252,7 @@
},
},
"gaze"
:
{
"gaze"
:
{
"version"
:
"0.5.2"
,
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/gaze/download
/gaze-0.5.2.tgz"
,
"resolved"
:
"https://registry.npm
js.org/gaze/-
/gaze-0.5.2.tgz"
,
"integrity"
:
"sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8="
,
"integrity"
:
"sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1273,7 +1273,7 @@
...
@@ -1273,7 +1273,7 @@
},
},
"glob"
:
{
"glob"
:
{
"version"
:
"4.5.3"
,
"version"
:
"4.5.3"
,
"resolved"
:
"https://registry.npm
.taobao.org/glob/download
/glob-4.5.3.tgz"
,
"resolved"
:
"https://registry.npm
js.org/glob/-
/glob-4.5.3.tgz"
,
"integrity"
:
"sha1-xstz0yJsHv7wTePFbQEvAzd+4V8="
,
"integrity"
:
"sha1-xstz0yJsHv7wTePFbQEvAzd+4V8="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1285,7 +1285,7 @@
...
@@ -1285,7 +1285,7 @@
},
},
"glob-stream"
:
{
"glob-stream"
:
{
"version"
:
"3.1.18"
,
"version"
:
"3.1.18"
,
"resolved"
:
"https://registry.npm
.taobao.org/glob-stream/download
/glob-stream-3.1.18.tgz"
,
"resolved"
:
"https://registry.npm
js.org/glob-stream/-
/glob-stream-3.1.18.tgz"
,
"integrity"
:
"sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs="
,
"integrity"
:
"sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1299,7 +1299,7 @@
...
@@ -1299,7 +1299,7 @@
"dependencies"
:
{
"dependencies"
:
{
"readable-stream"
:
{
"readable-stream"
:
{
"version"
:
"1.0.34"
,
"version"
:
"1.0.34"
,
"resolved"
:
"https://registry.npm
.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2F
readable-stream-1.0.34.tgz"
,
"resolved"
:
"https://registry.npm
js.org/readable-stream/-/
readable-stream-1.0.34.tgz"
,
"integrity"
:
"sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
,
"integrity"
:
"sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1311,7 +1311,7 @@
...
@@ -1311,7 +1311,7 @@
},
},
"through2"
:
{
"through2"
:
{
"version"
:
"0.6.5"
,
"version"
:
"0.6.5"
,
"resolved"
:
"https://registry.npm
.taobao.org/through2/download
/through2-0.6.5.tgz"
,
"resolved"
:
"https://registry.npm
js.org/through2/-
/through2-0.6.5.tgz"
,
"integrity"
:
"sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
,
"integrity"
:
"sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1323,7 +1323,7 @@
...
@@ -1323,7 +1323,7 @@
},
},
"glob-watcher"
:
{
"glob-watcher"
:
{
"version"
:
"0.0.6"
,
"version"
:
"0.0.6"
,
"resolved"
:
"https://registry.npm
.taobao.org/glob-watcher/download
/glob-watcher-0.0.6.tgz"
,
"resolved"
:
"https://registry.npm
js.org/glob-watcher/-
/glob-watcher-0.0.6.tgz"
,
"integrity"
:
"sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs="
,
"integrity"
:
"sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1332,7 +1332,7 @@
...
@@ -1332,7 +1332,7 @@
},
},
"glob2base"
:
{
"glob2base"
:
{
"version"
:
"0.0.12"
,
"version"
:
"0.0.12"
,
"resolved"
:
"https://registry.npm
.taobao.org/glob2base/download
/glob2base-0.0.12.tgz"
,
"resolved"
:
"https://registry.npm
js.org/glob2base/-
/glob2base-0.0.12.tgz"
,
"integrity"
:
"sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY="
,
"integrity"
:
"sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1365,7 +1365,7 @@
...
@@ -1365,7 +1365,7 @@
},
},
"globule"
:
{
"globule"
:
{
"version"
:
"0.1.0"
,
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/globule/download
/globule-0.1.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/globule/-
/globule-0.1.0.tgz"
,
"integrity"
:
"sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU="
,
"integrity"
:
"sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1376,7 +1376,7 @@
...
@@ -1376,7 +1376,7 @@
"dependencies"
:
{
"dependencies"
:
{
"glob"
:
{
"glob"
:
{
"version"
:
"3.1.21"
,
"version"
:
"3.1.21"
,
"resolved"
:
"https://registry.npm
.taobao.org/glob/download
/glob-3.1.21.tgz"
,
"resolved"
:
"https://registry.npm
js.org/glob/-
/glob-3.1.21.tgz"
,
"integrity"
:
"sha1-0p4KBV3qUTj00H7UDomC6DwgZs0="
,
"integrity"
:
"sha1-0p4KBV3qUTj00H7UDomC6DwgZs0="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1387,25 +1387,25 @@
...
@@ -1387,25 +1387,25 @@
},
},
"graceful-fs"
:
{
"graceful-fs"
:
{
"version"
:
"1.2.3"
,
"version"
:
"1.2.3"
,
"resolved"
:
"https://registry.npm
.taobao.org/graceful-fs/download
/graceful-fs-1.2.3.tgz"
,
"resolved"
:
"https://registry.npm
js.org/graceful-fs/-
/graceful-fs-1.2.3.tgz"
,
"integrity"
:
"sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
,
"integrity"
:
"sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
,
"dev"
:
true
"dev"
:
true
},
},
"inherits"
:
{
"inherits"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/inherits/download
/inherits-1.0.2.tgz"
,
"resolved"
:
"https://registry.npm
js.org/inherits/-
/inherits-1.0.2.tgz"
,
"integrity"
:
"sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
,
"integrity"
:
"sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
,
"dev"
:
true
"dev"
:
true
},
},
"lodash"
:
{
"lodash"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/lodash/download
/lodash-1.0.2.tgz"
,
"resolved"
:
"https://registry.npm
js.org/lodash/-
/lodash-1.0.2.tgz"
,
"integrity"
:
"sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
,
"integrity"
:
"sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
,
"dev"
:
true
"dev"
:
true
},
},
"minimatch"
:
{
"minimatch"
:
{
"version"
:
"0.2.14"
,
"version"
:
"0.2.14"
,
"resolved"
:
"https://registry.npm
.taobao.org/minimatch/download
/minimatch-0.2.14.tgz"
,
"resolved"
:
"https://registry.npm
js.org/minimatch/-
/minimatch-0.2.14.tgz"
,
"integrity"
:
"sha1-x054BXT2PG+aCQ6Q775u9TpqdWo="
,
"integrity"
:
"sha1-x054BXT2PG+aCQ6Q775u9TpqdWo="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1431,12 +1431,12 @@
...
@@ -1431,12 +1431,12 @@
"dev"
:
true
"dev"
:
true
},
},
"graceful-fs"
:
{
"graceful-fs"
:
{
"version"
:
"3.0.1
1
"
,
"version"
:
"3.0.1
2
"
,
"resolved"
:
"https://registry.npm
.taobao.org/graceful-fs/download/graceful-fs-3.0.11
.tgz"
,
"resolved"
:
"https://registry.npm
js.org/graceful-fs/-/graceful-fs-3.0.12
.tgz"
,
"integrity"
:
"sha
1-dhPHeKGv6mLyXGMKCG1/Osu92Bg
="
,
"integrity"
:
"sha
512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"natives"
:
"^1.1.
0
"
"natives"
:
"^1.1.
3
"
}
}
},
},
"graceful-readlink"
:
{
"graceful-readlink"
:
{
...
@@ -1447,7 +1447,7 @@
...
@@ -1447,7 +1447,7 @@
},
},
"gulp"
:
{
"gulp"
:
{
"version"
:
"3.9.1"
,
"version"
:
"3.9.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/gulp/download
/gulp-3.9.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/gulp/-
/gulp-3.9.1.tgz"
,
"integrity"
:
"sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ="
,
"integrity"
:
"sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -1467,9 +1467,9 @@
...
@@ -1467,9 +1467,9 @@
},
},
"dependencies"
:
{
"dependencies"
:
{
"minimist"
:
{
"minimist"
:
{
"version"
:
"1.2.
0
"
,
"version"
:
"1.2.
5
"
,
"resolved"
:
"https://registry.npm
.taobao.org/minimist/download/minimist-1.2.0
.tgz"
,
"resolved"
:
"https://registry.npm
js.org/minimist/-/minimist-1.2.5
.tgz"
,
"integrity"
:
"sha
1-o1AIsg9BOD7sH7kU9M1d95omQoQ
="
,
"integrity"
:
"sha
512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=
="
,
"dev"
:
true
"dev"
:
true
}
}
}
}
...
@@ -2118,14 +2118,14 @@
...
@@ -2118,14 +2118,14 @@
},
},
"interpret"
:
{
"interpret"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/interpret/download
/interpret-1.2.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/interpret/-
/interpret-1.2.0.tgz"
,
"integrity"
:
"sha
1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY
="
,
"integrity"
:
"sha
512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=
="
,
"dev"
:
true
"dev"
:
true
},
},
"is-absolute"
:
{
"is-absolute"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"http
://registry.npm.taobao.org/is-absolute/download
/is-absolute-1.0.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/is-absolute/-
/is-absolute-1.0.0.tgz"
,
"integrity"
:
"sha
1-OV4a6EsR8mrReV5zwXN45IowFXY
="
,
"integrity"
:
"sha
512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"is-relative"
:
"^1.0.0"
,
"is-relative"
:
"^1.0.0"
,
...
@@ -2235,7 +2235,7 @@
...
@@ -2235,7 +2235,7 @@
},
},
"is-glob"
:
{
"is-glob"
:
{
"version"
:
"3.1.0"
,
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/is-glob/download
/is-glob-3.1.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/is-glob/-
/is-glob-3.1.0.tgz"
,
"integrity"
:
"sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo="
,
"integrity"
:
"sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -2273,8 +2273,8 @@
...
@@ -2273,8 +2273,8 @@
},
},
"is-relative"
:
{
"is-relative"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"http
://registry.npm.taobao.org/is-relative/download
/is-relative-1.0.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/is-relative/-
/is-relative-1.0.0.tgz"
,
"integrity"
:
"sha
1-obtpNc6MXboei5dUubLcwCDiJg0
="
,
"integrity"
:
"sha
512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"is-unc-path"
:
"^1.0.0"
"is-unc-path"
:
"^1.0.0"
...
@@ -2282,8 +2282,8 @@
...
@@ -2282,8 +2282,8 @@
},
},
"is-unc-path"
:
{
"is-unc-path"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"http
://registry.npm.taobao.org/is-unc-path/download
/is-unc-path-1.0.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/is-unc-path/-
/is-unc-path-1.0.0.tgz"
,
"integrity"
:
"sha
1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0
="
,
"integrity"
:
"sha
512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"unc-path-regex"
:
"^0.1.2"
"unc-path-regex"
:
"^0.1.2"
...
@@ -2365,7 +2365,7 @@
...
@@ -2365,7 +2365,7 @@
},
},
"liftoff"
:
{
"liftoff"
:
{
"version"
:
"2.5.0"
,
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/liftoff/download
/liftoff-2.5.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/liftoff/-
/liftoff-2.5.0.tgz"
,
"integrity"
:
"sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew="
,
"integrity"
:
"sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -2709,8 +2709,8 @@
...
@@ -2709,8 +2709,8 @@
},
},
"make-iterator"
:
{
"make-iterator"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"http
://registry.npm.taobao.org/make-iterator/download
/make-iterator-1.0.1.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/make-iterator/-
/make-iterator-1.0.1.tgz"
,
"integrity"
:
"sha
1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY
="
,
"integrity"
:
"sha
512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"kind-of"
:
"^6.0.2"
"kind-of"
:
"^6.0.2"
...
@@ -2824,7 +2824,7 @@
...
@@ -2824,7 +2824,7 @@
},
},
"minimatch"
:
{
"minimatch"
:
{
"version"
:
"2.0.10"
,
"version"
:
"2.0.10"
,
"resolved"
:
"https://registry.npm
.taobao.org/minimatch/download
/minimatch-2.0.10.tgz"
,
"resolved"
:
"https://registry.npm
js.org/minimatch/-
/minimatch-2.0.10.tgz"
,
"integrity"
:
"sha1-jQh8OcazjAAbl/ynzm0OHoCvusc="
,
"integrity"
:
"sha1-jQh8OcazjAAbl/ynzm0OHoCvusc="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -2858,18 +2858,18 @@
...
@@ -2858,18 +2858,18 @@
}
}
},
},
"mkdirp"
:
{
"mkdirp"
:
{
"version"
:
"0.5.
1
"
,
"version"
:
"0.5.
4
"
,
"resolved"
:
"https://registry.npm
.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1
.tgz"
,
"resolved"
:
"https://registry.npm
js.org/mkdirp/-/mkdirp-0.5.4
.tgz"
,
"integrity"
:
"sha
1-MAV0OOrGz3+MR2fzhkjWaX11yQM
="
,
"integrity"
:
"sha
512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"minimist"
:
"
0.0.8
"
"minimist"
:
"
^1.2.5
"
},
},
"dependencies"
:
{
"dependencies"
:
{
"minimist"
:
{
"minimist"
:
{
"version"
:
"
0.0.8
"
,
"version"
:
"
1.2.5
"
,
"resolved"
:
"https://registry.npm
.taobao.org/minimist/download/minimist-0.0.8
.tgz"
,
"resolved"
:
"https://registry.npm
js.org/minimist/-/minimist-1.2.5
.tgz"
,
"integrity"
:
"sha
1-hX/Kv8M5fSYluCKCYuhqp6ARsF0
="
,
"integrity"
:
"sha
512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=
="
,
"dev"
:
true
"dev"
:
true
}
}
}
}
...
@@ -2915,8 +2915,8 @@
...
@@ -2915,8 +2915,8 @@
},
},
"natives"
:
{
"natives"
:
{
"version"
:
"1.1.6"
,
"version"
:
"1.1.6"
,
"resolved"
:
"https://registry.npm
.taobao.org/natives/download
/natives-1.1.6.tgz"
,
"resolved"
:
"https://registry.npm
js.org/natives/-
/natives-1.1.6.tgz"
,
"integrity"
:
"sha
1-pgO0pJirdxc2ErnqGs3sTZgPALs
="
,
"integrity"
:
"sha
512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA=
="
,
"dev"
:
true
"dev"
:
true
},
},
"negotiator"
:
{
"negotiator"
:
{
...
@@ -3007,7 +3007,7 @@
...
@@ -3007,7 +3007,7 @@
},
},
"object.defaults"
:
{
"object.defaults"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/object.defaults/download
/object.defaults-1.1.0.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/object.defaults/-
/object.defaults-1.1.0.tgz"
,
"integrity"
:
"sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8="
,
"integrity"
:
"sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3019,7 +3019,7 @@
...
@@ -3019,7 +3019,7 @@
},
},
"object.map"
:
{
"object.map"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/object.map/download
/object.map-1.0.1.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/object.map/-
/object.map-1.0.1.tgz"
,
"integrity"
:
"sha1-z4Plncj8wK1fQlDh94s7gb2AHTc="
,
"integrity"
:
"sha1-z4Plncj8wK1fQlDh94s7gb2AHTc="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3079,7 +3079,7 @@
...
@@ -3079,7 +3079,7 @@
},
},
"orchestrator"
:
{
"orchestrator"
:
{
"version"
:
"0.3.8"
,
"version"
:
"0.3.8"
,
"resolved"
:
"https://registry.npm
.taobao.org/orchestrator/download
/orchestrator-0.3.8.tgz"
,
"resolved"
:
"https://registry.npm
js.org/orchestrator/-
/orchestrator-0.3.8.tgz"
,
"integrity"
:
"sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4="
,
"integrity"
:
"sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3090,19 +3090,19 @@
...
@@ -3090,19 +3090,19 @@
},
},
"ordered-read-streams"
:
{
"ordered-read-streams"
:
{
"version"
:
"0.1.0"
,
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/ordered-read-streams/download
/ordered-read-streams-0.1.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/ordered-read-streams/-
/ordered-read-streams-0.1.0.tgz"
,
"integrity"
:
"sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
,
"integrity"
:
"sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
,
"dev"
:
true
"dev"
:
true
},
},
"os-homedir"
:
{
"os-homedir"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/os-homedir/download
/os-homedir-1.0.2.tgz"
,
"resolved"
:
"https://registry.npm
js.org/os-homedir/-
/os-homedir-1.0.2.tgz"
,
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
,
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
,
"dev"
:
true
"dev"
:
true
},
},
"parse-filepath"
:
{
"parse-filepath"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/parse-filepath/download
/parse-filepath-1.0.2.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/parse-filepath/-
/parse-filepath-1.0.2.tgz"
,
"integrity"
:
"sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE="
,
"integrity"
:
"sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3161,7 +3161,7 @@
...
@@ -3161,7 +3161,7 @@
},
},
"path-root"
:
{
"path-root"
:
{
"version"
:
"0.1.1"
,
"version"
:
"0.1.1"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/path-root/download
/path-root-0.1.1.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/path-root/-
/path-root-0.1.1.tgz"
,
"integrity"
:
"sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc="
,
"integrity"
:
"sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3170,7 +3170,7 @@
...
@@ -3170,7 +3170,7 @@
},
},
"path-root-regex"
:
{
"path-root-regex"
:
{
"version"
:
"0.1.2"
,
"version"
:
"0.1.2"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/path-root-regex/download
/path-root-regex-0.1.2.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/path-root-regex/-
/path-root-regex-0.1.2.tgz"
,
"integrity"
:
"sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
,
"integrity"
:
"sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -3274,7 +3274,7 @@
...
@@ -3274,7 +3274,7 @@
},
},
"pretty-hrtime"
:
{
"pretty-hrtime"
:
{
"version"
:
"1.0.3"
,
"version"
:
"1.0.3"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/pretty-hrtime/download
/pretty-hrtime-1.0.3.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/pretty-hrtime/-
/pretty-hrtime-1.0.3.tgz"
,
"integrity"
:
"sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
,
"integrity"
:
"sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -3370,7 +3370,7 @@
...
@@ -3370,7 +3370,7 @@
},
},
"rechoir"
:
{
"rechoir"
:
{
"version"
:
"0.6.2"
,
"version"
:
"0.6.2"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/rechoir/download
/rechoir-0.6.2.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/rechoir/-
/rechoir-0.6.2.tgz"
,
"integrity"
:
"sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q="
,
"integrity"
:
"sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -3570,7 +3570,7 @@
...
@@ -3570,7 +3570,7 @@
},
},
"sequencify"
:
{
"sequencify"
:
{
"version"
:
"0.0.7"
,
"version"
:
"0.0.7"
,
"resolved"
:
"https://registry.npm
.taobao.org/sequencify/download
/sequencify-0.0.7.tgz"
,
"resolved"
:
"https://registry.npm
js.org/sequencify/-
/sequencify-0.0.7.tgz"
,
"integrity"
:
"sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
,
"integrity"
:
"sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -3939,8 +3939,8 @@
...
@@ -3939,8 +3939,8 @@
},
},
"stream-consume"
:
{
"stream-consume"
:
{
"version"
:
"0.1.1"
,
"version"
:
"0.1.1"
,
"resolved"
:
"http
://registry.npm.taobao.org/stream-consume/download
/stream-consume-0.1.1.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/stream-consume/-
/stream-consume-0.1.1.tgz"
,
"integrity"
:
"sha
1-0721mMK9CugrjKx6xQsRB6eZbEg
="
,
"integrity"
:
"sha
512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=
="
,
"dev"
:
true
"dev"
:
true
},
},
"string-template"
:
{
"string-template"
:
{
...
@@ -3966,7 +3966,7 @@
...
@@ -3966,7 +3966,7 @@
},
},
"strip-bom"
:
{
"strip-bom"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/strip-bom/download
/strip-bom-1.0.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/strip-bom/-
/strip-bom-1.0.0.tgz"
,
"integrity"
:
"sha1-hbiGLzhEtabV7IRnqTWYFzo295Q="
,
"integrity"
:
"sha1-hbiGLzhEtabV7IRnqTWYFzo295Q="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4066,7 +4066,7 @@
...
@@ -4066,7 +4066,7 @@
},
},
"tildify"
:
{
"tildify"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/tildify/download
/tildify-1.2.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/tildify/-
/tildify-1.2.0.tgz"
,
"integrity"
:
"sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo="
,
"integrity"
:
"sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4190,7 +4190,7 @@
...
@@ -4190,7 +4190,7 @@
},
},
"unc-path-regex"
:
{
"unc-path-regex"
:
{
"version"
:
"0.1.2"
,
"version"
:
"0.1.2"
,
"resolved"
:
"http
://registry.npm.alibaba-inc.com/unc-path-regex/download
/unc-path-regex-0.1.2.tgz"
,
"resolved"
:
"http
s://registry.npmjs.org/unc-path-regex/-
/unc-path-regex-0.1.2.tgz"
,
"integrity"
:
"sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
,
"integrity"
:
"sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -4208,7 +4208,7 @@
...
@@ -4208,7 +4208,7 @@
},
},
"unique-stream"
:
{
"unique-stream"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/unique-stream/download
/unique-stream-1.0.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/unique-stream/-
/unique-stream-1.0.0.tgz"
,
"integrity"
:
"sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
,
"integrity"
:
"sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -4278,7 +4278,7 @@
...
@@ -4278,7 +4278,7 @@
},
},
"user-home"
:
{
"user-home"
:
{
"version"
:
"1.1.1"
,
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/user-home/download
/user-home-1.1.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/user-home/-
/user-home-1.1.1.tgz"
,
"integrity"
:
"sha1-K1viOjK2Onyd640PKNSFcko98ZA="
,
"integrity"
:
"sha1-K1viOjK2Onyd640PKNSFcko98ZA="
,
"dev"
:
true
"dev"
:
true
},
},
...
@@ -4302,7 +4302,7 @@
...
@@ -4302,7 +4302,7 @@
},
},
"v8flags"
:
{
"v8flags"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npm
.taobao.org/v8flags/download
/v8flags-2.1.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org/v8flags/-
/v8flags-2.1.1.tgz"
,
"integrity"
:
"sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ="
,
"integrity"
:
"sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4332,7 +4332,7 @@
...
@@ -4332,7 +4332,7 @@
},
},
"vinyl-fs"
:
{
"vinyl-fs"
:
{
"version"
:
"0.3.14"
,
"version"
:
"0.3.14"
,
"resolved"
:
"https://registry.npm
.taobao.org/vinyl-fs/download
/vinyl-fs-0.3.14.tgz"
,
"resolved"
:
"https://registry.npm
js.org/vinyl-fs/-
/vinyl-fs-0.3.14.tgz"
,
"integrity"
:
"sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY="
,
"integrity"
:
"sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4348,13 +4348,13 @@
...
@@ -4348,13 +4348,13 @@
"dependencies"
:
{
"dependencies"
:
{
"clone"
:
{
"clone"
:
{
"version"
:
"0.2.0"
,
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/clone/download
/clone-0.2.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org/clone/-
/clone-0.2.0.tgz"
,
"integrity"
:
"sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
,
"integrity"
:
"sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
,
"dev"
:
true
"dev"
:
true
},
},
"readable-stream"
:
{
"readable-stream"
:
{
"version"
:
"1.0.34"
,
"version"
:
"1.0.34"
,
"resolved"
:
"https://registry.npm
.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2F
readable-stream-1.0.34.tgz"
,
"resolved"
:
"https://registry.npm
js.org/readable-stream/-/
readable-stream-1.0.34.tgz"
,
"integrity"
:
"sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
,
"integrity"
:
"sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4366,7 +4366,7 @@
...
@@ -4366,7 +4366,7 @@
},
},
"through2"
:
{
"through2"
:
{
"version"
:
"0.6.5"
,
"version"
:
"0.6.5"
,
"resolved"
:
"https://registry.npm
.taobao.org/through2/download
/through2-0.6.5.tgz"
,
"resolved"
:
"https://registry.npm
js.org/through2/-
/through2-0.6.5.tgz"
,
"integrity"
:
"sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
,
"integrity"
:
"sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
@@ -4376,7 +4376,7 @@
...
@@ -4376,7 +4376,7 @@
},
},
"vinyl"
:
{
"vinyl"
:
{
"version"
:
"0.4.6"
,
"version"
:
"0.4.6"
,
"resolved"
:
"https://registry.npm
.taobao.org/vinyl/download/vinyl-0.4.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvinyl%2Fdownload%2F
vinyl-0.4.6.tgz"
,
"resolved"
:
"https://registry.npm
js.org/vinyl/-/
vinyl-0.4.6.tgz"
,
"integrity"
:
"sha1-LzVsh6VQolVGHza76ypbqL94SEc="
,
"integrity"
:
"sha1-LzVsh6VQolVGHza76ypbqL94SEc="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
...
...
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