<div class="gn-alert" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
<div class="alert-controls">
<button type="button" class="gn-button">확인</button>
<button type="button" class="gn-button is-cancel">취소</button>
</div>
</div>
<div class="gn-alert is-primary" style="width: 500px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
<div class="alert-controls has-text-right">
<button type="button" class="gn-button is-outline is-trans">확인</button>
<button type="button" class="gn-button is-cancel">취소</button>
</div>
</div>
<div class="gn-alert">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-small">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-normal">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-medium">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-large">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-success" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-warning" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-danger" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-alert is-info" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<span class="gn-icon is-close">
<i class="fas fa-times"></i>
</span>
</div>
<button class="gn-button new-alert">Alert 예제보기</button>
Gn.create('alert', {
textSets : { alertText: 'alert이 생성됩니다.' },
hasClose: false,
hasConfirm: true,
hasCancel: true,
onConfirm: function(){
console.log('확인 되었습니다.')
},
onClose: function(){
console.log('취소 되었습니다.')
}
});
| name | type | default | description | |
|---|---|---|---|---|
| textSets | alertText | string | alert에 표기할 문구 | |
| confirm | string | 확인 | 확인버튼에 표기할 문구 | |
| cancel | string | 취소 | 취소버튼에 표기할 문구 | |
| width | number|string | 400 | 가로 사이즈 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| size | string | 'small','normal','medium','large' | ||
| hasClose | boolean | true | 우측상단 닫기버튼 출력여부 | |
| hasConfirm | boolean | false | 확인버튼 출력 여부 | |
| hasCancel | boolean | false | 취소버튼 출력 여부 | |
| onConfirm | function | alert 확인버튼 클릭 시 수행될 이벤트 | ||
| onClose | function | alert 창을 닫을때 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| close() | void | 얼럿창을 닫는다. |
<div class="gn-bignumber">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">Notifications</span>
</div>
<div class="gn-bignumber is-small">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">small</span>
</div>
<div class="gn-bignumber is-normal">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">normal</span>
</div>
<div class="gn-bignumber is-medium">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">medium</span>
</div>
<div class="gn-bignumber is-large">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">large</span>
</div>
<div class="gn-bignumber is-primary">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">primary</span>
</div>
<div class="gn-bignumber is-secondary">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">secondary</span>
</div>
<div class="gn-bignumber is-info">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">info</span>
</div>
<div class="gn-bignumber is-success">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">success</span>
</div>
<div class="gn-bignumber is-warning">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">warning</span>
</div>
<div class="gn-bignumber is-danger">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">danger</span>
</div>
<div class="gn-bignumber is-cancel">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">cancel</span>
</div>
<div class="gn-bignumber is-mono">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">mono</span>
</div>
<div class="gn-bignumber is-trans">
<div class="gn-bignumber-value">33.23</div>
<span class="gn-bignumber-label">trans</span>
</div>
<nav class="gn-breadcrumb">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb is-normal">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb is-medium">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb is-large">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb has-separator-dash">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb has-separator-disc">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb has-separator-bar">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb has-separator-arrow">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
-center 정렬은 사용하지 않는다.
<nav class="gn-breadcrumb">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<nav class="gn-breadcrumb is-right">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</nav>
<div class="new-calendar is-float-left"></div>
<div class="new-calendar1 is-float-left"></div>
Gn.create('calendar', {
target: '.new-calendar',
value: '2021-04-01',
onSelect: function (v) {
console.log('선택한 날짜: '+ v)
},
max: '2021-04-30',
min: '2021-03-01'
});
Gn.create('calendar', {
target: '.new-calendar1',
onSelect: function (v) {
console.log('선택한 날짜: '+ v)
},
dateType: 'datetime',
max: '1M',
min: '-1M'
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | calendar 생성 타겟 | ||
| value | string | Date | now | 초기 날짜 | |
| dateType | string | date | date, datetime | |
| locale | 'ko'|'en' | ko | 표기문구 언어 | |
| onSelect | function(value) | 날짜 선택 시 발생 이벤트 | ||
| name | return | description |
|---|---|---|
| setDate(date) | void | 날짜 값을 변경한다. |
<div class="gn-card" style="width: 300px">
<div class="card-header">
Content Title
</div>
<div class="card-body">
Non consequat sit commodo qui aute. Occaecat pariatur deserunt ea aliqua commodo aliquip. Commodo aliquip irure esse excepteur tempor deserunt do sunt reprehenderit culpa reprehenderit. Eiusmod incididunt nisi aliquip veniam adipisicing esse quis irure aliqua enim nostrud aliqua adipisicing Lorem. Occaecat nulla culpa velit duis quis minim sunt. Ipsum cillum pariatur laboris Lorem ea ut veniam laborum. Non velit dolor reprehenderit quis veniam cillum ut excepteur duis tempor.
</div>
<div class="card-items">
<a href="#" class="card-item">상세정보</a>
<a href="#" class="card-item">
<span class="gn-icon">
<i class="fas fa-clone"></i>
</span>
복사
</a>
<a href="#" class="card-item has-text-danger">
<span class="gn-icon is-danger">
<i class="fas fa-power-off"></i>
</span>
전원차단
</a>
</div>
</div>
<div class="lineChart"></div>
<div class="splineChart"></div>
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | line | 라인차트 | |
| series | Array | name, data 로 구성된 object array | ||
| xaxis | type | string | 'datetime' | 가로축 분류 데이터 타입 |
| categories | array | 가로축 분류 데이터 | ||
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | line | 라인차트 | |
| series | Array | name, data 로 구성된 object array | ||
| xaxis | type | string | 'datetime' | 데이터 분류 타입 |
| categories | array | 데이터 분류 | ||
Gn.create('chart', {
target: '.lineChart',
type: 'line',
series: [{
name: 'data1',
data: [30, 200, 100, 400, 150, 250],
},{
name: 'data2',
data: [50, 20, 10, 40, 15, 25]
}],
xaxis: {
type: 'datetime',
categories: ['2018-09-19T00:00:00.000Z', '2018-09-19T01:30:00.000Z', '2018-09-19T02:30:00.000Z', '2018-09-19T03:30:00.000Z', '2018-09-19T04:30:00.000Z', '2018-09-19T05:30:00.000Z']
}
});
Gn.create('chart', {
target: '.splineChart',
type: 'spline',
series: [{
name: 'data1',
data: [30, 200, 100, 400, 150, 250],
}],
xaxis: {
type: 'datetime',
categories: ['2018-09-19T00:00:00.000Z', '2018-09-19T01:30:00.000Z', '2018-09-19T02:30:00.000Z', '2018-09-19T03:30:00.000Z', '2018-09-19T04:30:00.000Z', '2018-09-19T05:30:00.000Z']
}
});
<div class="columnChart"></div>
<div class="barChart"></div>
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | column | 컬럼차트 | |
| series | Array | name, data 로 구성된 object array | ||
| chart | stacked | boolean | false | 그래프 누적 여부 |
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | bar | 바 차트 | |
| series | Array | name, data 로 구성된 object array | ||
| xaxis | categories | array | 데이터 분류 | |
Gn.create('chart', {
target: '.columnChart',
type: 'column',
chart: {
stacked: true
},
series: [{
name: 'data1',
data: [30, 200, 100, 400, 150, 250],
},{
name: 'data2',
data: [50, 20, 10, 40, 15, 25]
}]
});
Gn.create('chart', {
target: '.barChart',
type: 'bar',
series: [{
data: [30, 200, 100, 400, 150, 250],
}],
xaxis: {
categories: ['data1','data2','data3','data4','data5','data6']
}
});
<div class="pieChart"></div>
<div class="donutChart"></div>
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | pie | 파이차트 | |
| series | Array | number array | ||
| labels | Array | string array | ||
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | donut | 도넛차트 | |
| series | Array | number array | ||
| labels | Array | string array | ||
Gn.create('chart', {
target: '.pieChart',
type: 'pie',
series: [30, 200, 100, 400],
labels: ['data1','data2','data3','data4']
});
Gn.create('chart', {
target: '.donutChart',
type: 'donut',
series: [30, 200, 100, 400, 150, 250],
labels: ['data1','data2','data3','data4','data5','data6']
});
<div class="radialChart"></div>
<div class="gaugeChart"></div>
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | gauge | 게이지차트 | |
| series | Array | number array | ||
| labels | Array | string array | ||
| name | type | value | description | |
|---|---|---|---|---|
| target | string | 차트를 생성할 대상의 선택자(selector) | ||
| type | string | radial | 래디얼차트 | |
| series | Array | number array | ||
| labels | Array | string array | ||
Gn.create('chart', {
target: '.gaugeChart',
type: 'gauge',
series: [30],
labels: ['data1']
});
Gn.create('chart', {
target: '.radialChart',
type: 'radial',
series: [30],
labels: ['data1']
});
<div class="new-grid"></div>
<div style="width: 100%; height: 100px; overflow-x: auto; margin-top: 20px;">
<div class="new-grid2"></div>
</div>
<div style="width: 100%; overflow-x: auto; margin-top: 20px;">
<div class="new-grid3"></div>
</div>
<div style="width: 100%; margin-top: 20px;">
<div class="new-grid4"></div>
</div>
Gn.create('datagrid', {
target: '.new-grid',
headers: [
{
label: 'no',
key: 'number',
onSelect: function() {
console.log(arguments)
},
template: function(k, d) {
return '<span>' + d[k] + '</span>'
},
draggable: true,
sortable: true,
sort: 'asc'
},
{
label: '제목',
key: 'title',
style: {
width: '250px'
},
className: 'has-text-right',
draggable: true,
bodyClass: 'has-text-left',
sortable: true
},
{
label: '날짜',
key: 'date',
style: {
width: '150px'
},
className: 'has-text-center',
bodyClass: 'has-text-left'
}
],
data: [
{
number: '1',
title: '하나',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-1',
title: '1-하나',
date: '2020-09-19'
},
{
number: '1-2',
title: '1-둘',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-2-1',
title: '1-둘-1',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-2-1-1',
title: '1-둘-1-1',
desc: 'hello, world',
date: '2020-09-19'
}
]
}
]
}
]
},
{
number: '2',
title: '둘',
date: '2020-09-19',
desc: 'hello, world'
}
],
onSort: function(column) {
console.log('column', column)
},
onDragEnd: function(column, columns) {
console.log(column, columns)
},
onToggle: function(type, row, n) {
console.log(type, row, n)
// 이렇게 하면 펼쳐질때마다 해당 로우에 2개의 자식을 바인딩한다.
// type === 'expanded' && this.addChild(n, [{
// number: '000',
// title: '추가된 자식1',
// date: '2020-02-02'
// },{
// number: '001',
// title: '추가된 자식2',
// date: '2020-02-02'
// }])
},
onCheckAll: function(ggg) {
console.log('ggg', ggg)
},
onDoubleClick: function(e) {
console.log('dbclick', e)
},
hasCheck: true,
hasDelete: true
})
Gn.create('datagrid', {
target: '.new-grid2',
headers: [
{
label: 'no',
key: 'number',
onSelect: function () {
// eslint-disable-next-line prefer-rest-params
console.log(arguments);
},
template: function (k, d) {
return '<span>' + d[k] + '</span>';
},
draggable: true,
sortable: true,
sort: 'asc'
},
{
label: '제목',
key: 'title',
style: {
width: '250px'
},
className: 'has-text-right',
draggable: true,
bodyClass: 'has-text-left',
sortable: true
},
{
label: '날짜',
key: 'date',
style: {
width: '150px'
},
className: 'has-text-center',
bodyClass: 'has-text-left'
}
],
data: [
{
number: '1',
title: '하나',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-1',
title: '1-하나',
date: '2020-09-19'
},
{
number: '1-2',
title: '1-둘',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-2-1',
title: '1-둘-1',
date: '2020-09-19',
desc: 'hello, world',
child: [
{
number: '1-2-1-1',
title: '1-둘-1-1',
desc: 'hello, world',
date: '2020-09-19'
}
]
}
]
}
],
color: 'is-danger-light'
},
{
number: '2',
title: '둘',
date: '2020-09-19',
desc: 'hello, world'
}
],
hasHeader: false,
hasCheck: true,
hasDelete: true,
textSets: {
deleteConfirmMessage: '파일을 삭제하시겠습니까?'
},
// onDelete 에서 false 를 반환하면 해당 행 삭제를 취소할 수 있다.
onDelete: (data, index) => {
console.log(data, index);
// 예) 특정 조건에 따라 삭제 취소
// if (index === 0) {
// return false;
// }
}
})
Gn.create('datagrid', {
target: '.new-grid3',
headers: [
{
label: 'row data numbers',
key: 'number',
style: { width: '50px' },
sortable: true,
draggable: true,
template: function (k, d) {
return '<span>' + d[k] + '</span>';
}
},
{
label: '제목',
key: 'title',
sortable: true,
draggable: true,
template: function (k, d) {
return '<span>' + d[k] + '</span>';
}
},
{
label: '날짜를 표시하는 컬럼입니다',
key: 'date',
style: {
width: '100px'
},
tipField: 'desc'
},
{
label: '헤더명도길어집니다',
key: 'desc',
style: { width: '50px' }
}
],
data: (callback, ui) => {
return callback([
{
number: '1',
title: '하나',
date: '2020-09-19'
},
{
number: '232342333',
title: 'Lorem labore culpa voluptate proident ad et id nostrud excepteur incididunt ut officia et ullamco.',
date: '2020-09-19',
desc: 'Voluptate enim culpa anim dolor magna excepteur ullamco id aliquip consequat ullamco voluptate consectetur.',
ordered: false,
limited: 0,
one: 'one',
two: 2,
three: {
hello: 'p',
ordered: false,
limited: 0,
one: 'one',
two: 2,
desc: 'hhhhhhh'
},
checked: true
}
]);
},
sort: function(column) {
console.log('column', column)
},
onSelect: function(row, index) {
console.log('row', row, index);
this.showDetail(index, null, ['number', 'title', 'date', 'desc', 'ordered', 'limited', 'one', 'two', 'three', 'checked']);
},
onDoubleClick: function(e) {
console.log('dbclick', e)
},
isEllipsis: true,
hasCheck: true,
hasOrder: true,
textSets: {
orderLabel: '이동'
},
paginator: {
rows: 30
},
onChange: updatedData => {
console.log(updatedData)
}
})
Gn.create('datagrid', {
target: '.new-grid4',
orientation: 'horizontal',
orientationOptions: {
columns: 'auto-fit',
minWidth: '240px'
},
hasHeader: true,
hasCheck: true,
hasDelete: true,
headers: [
{
label: '이름',
key: 'name'
},
{
label: '부서',
key: 'team'
},
{
label: '상태',
key: 'status',
template: function (k, d) {
return '<span class="tag is-info">' + d[k] + '</span>';
}
}
],
data: [
{
name: '홍길동',
team: '플랫폼개발',
status: 'ACTIVE'
},
{
name: '김철수',
team: '디자인시스템',
status: 'PENDING'
},
{
name: '이영희',
team: 'QA',
status: 'DONE'
},
{
name: '박민수',
team: '프론트엔드',
status: 'ACTIVE'
},
{
name: '최지우',
team: '서비스기획',
status: 'REVIEW'
}
],
textSets: {
deleteConfirmMessage: '카드를 삭제하시겠습니까?'
}
})
orientation: 'horizontal'은 최상위 row만 카드형으로 렌더링한다.childField 기반 하위 데이터는 가로 모드에서 렌더링하지 않는다.orientationOptions.columns: 'auto-fit'이고 gap이 0, '0', '0px', '' 또는 미지정이면 내부적으로 5px gap을 적용한다.gap: 0일 때만 적용되며, gap > 0이면 각 카드가 독립 border를 가진다.| name | type | default | description | |
|---|---|---|---|---|
| target | string | 그리드 생성 타겟 | ||
| headers | label | string | 컬럼 헤더 텍스트 | |
| key | string | data의 항목에 매치되는 키값 | ||
| className | string | 클래스 명 | ||
| bodyClass | string | [headers.className] | 헤더와 바디에 별개의 스타일을 적용할 경우 클래스 명을 추가한다 | |
| style | string | inline style | ||
| sortable | boolean | false | 정렬 가능여부 | |
| draggable | boolean | false | 넓이 조정 드래그 가능여부 | |
| sort | asc | desc | 초기 정렬표시 값 | ||
| isHidden | boolean | 컬럼 노출여부 | ||
| template | function(key, row) | 데이터를 표시할 템플릿 | ||
| detailTemplate | function(key, row) | 상세 데이터를 표시할 템플릿 | ||
| onSelect | function(row) | 데이터 셀 클릭 이벤트 | ||
| tipField | string | 데이터 셀의 title로 표기할 필드 키값 | ||
| data | array | Function(callback, options) | [] | key: value로 이루어진 그리드 데이터 isOpened:true => 열린상태로 표시 isSelectedRow: true => 활성화 된 상태로 표시 noCheck: true => 체크박스 표시안함 isChecked: true => 체크박스 체크된 상태로 표시 disabled: true => 체크박스 disable 상태로 표시 color:is-warning-light => 행의 색 변경 |
|
| textSets | noData | string | No records available. | 데이터가 없을 경우 출력 메시지 |
| orderLabel | string | 이동버튼 헤더표시문구 | ||
| deleteLabel | string | 삭제버튼 헤더표시문구 | ||
| deleteConfirmMessage | string | 삭제 확인 창 표시문구 - 삭제 버튼 클릭시 확인 창 출력 | ||
| childField | string | child | 자식 데이터를 가지고 있는 항목 키값. 세로 모드에서만 트리형 하위 row 렌더링에 사용된다. | |
| hasCheck | boolean | false | 1열 체크박스 출력 여부 | |
| hasOrder | boolean | false | 이동버튼 생성 여부 | |
| hasDelete | boolean | false | 삭제버튼 생성 여부 | |
| hasHeader | boolean | true | 헤더 생성 여부 | |
| orientation | 'vertical' | 'horizontal' | 'vertical' | 그리드 출력 방향. horizontal이면 최상위 row만 카드형으로 출력하며 childField 기반 하위 데이터는 렌더링하지 않는다. |
|
| orientationOptions | columns | number | 'auto-fit' | 1 | 가로 모드 카드 열 수 또는 자동 배치 방식. orientation: 'horizontal'일 때 적용된다. auto-fit은 실제 줄 배치를 브라우저가 결정한다. |
| gap | number | string | 0 | 가로 모드 카드 간격. CSS grid gap 값으로 적용된다. columns: 'auto-fit'일 때는 0 계열 값 또는 미지정이면 내부적으로 5px를 적용한다. gap: 0일 때만 카드 경계 연결 규칙을 사용한다. |
|
| minWidth | number | string | 240 | columns: 'auto-fit'일 때 사용할 최소 카드 폭. |
|
| readonly | boolean | false | 읽기전용 여부 - 이동(hasOrder), 삭제(hasDelete) 버튼 미생성 | |
| checkCapturing | boolean | true | 상위항목 체크 시 하위항목 함께 선택여부 | |
| isEllipsis | boolean | false | 줄바꿈 불가 설정여부 (headers의 column 데이터에 width가 설정된 경우에만 적용된다) | |
| bodyHeight | string | 'auto' | 데이터 출력영역 높이 설정, 높이가 설정값을 넘게되면 스크롤이 생긴다. | |
| fixHeader | Boolean | false | 그리드 영역에서 헤더를 고정시킨다. 데이터를 감싸는 객체에 높이가 고정되어야 한다. |
|
| fixFooter | Boolean | false | 화면영역에서 푸터를 고정시킨다. | |
| paginator | rows | number | 30 | 한 페이지에 처리될 데이터 갯수 현재는 데이터 연동이 callback으로 된 경우에만 동작 |
| siblingPages | number | 10 | 페이지 숫자표시 카운트 | |
| onSort | function | 데이터 정렬 수행 시 발생이벤트 | ||
| onSelect | function | row 클릭 시 수행 이벤트 | ||
| onDoubleClick | function | row 더블 클릭 시 수행 이벤트 | ||
| onToggle | function | 자식 행이 있는 항목을 열고닫을때 수행 이벤트 | ||
| onCheckAll | function(flag) | CheckAll 이벤트 | ||
| onCheck | function(row, event) | Check 이벤트 | ||
| onDragEnd | function(column, columns) | 넓이조정 완료 시 발생이벤트 | ||
| onChange | function(updatedData) | 이동, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러 | ||
| onDelete | function(deletedData, index) | deletedData, index 를 인자로 받으며, false 를 반환하면 해당 행 삭제를 취소한다. | 삭제 버튼 클릭 시 삭제 대상 데이터와 인덱스를 받을 수 있는 이벤트핸들러 onChange 보다 먼저 동작하며, onDelete 에서 false 를 반환하면 실제 삭제 및 onChange 호출이 수행되지 않는다. |
|
| name | return | description |
|---|---|---|
| reRender({headers: Array |
void | 변경된 값으로 그리드를 다시 렌더링 한다. 컬럼 헤더까지 바뀌는 경우 사용한다. |
| resetData(data: Array |
void | 데이터를 변경한다. |
| addChild(index: number, data: Array |
void | index번째 row의 child로 data를 추가한다. 세로 모드에서만 지원한다. |
| addRow(data: Array |
void | 마지막 데이터 하단에 data를 추가한다. 세로 모드에서만 지원한다. |
| expand(index: number) | void | index번째 row의 child를 확장한다. 세로 모드에서만 지원한다. |
| collapse(index: number) | void | index번째 row의 child 데이터를 축소한다. 세로 모드에서만 지원한다. |
| getChecked() | array | 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다 |
| hideCols(keys: Array |
void | 파라메터 배열에 전달된 key에 해당하지 않는 컬럼만 보여준다 |
| showCols(keys: Array |
void | 파라메터 배열에 전달된 key에 해당하는 컬럼만 보여준다 |
| showDetail(index: number, headerKeys?: string[], rawDataKeys?: string[]) | void | headerKeys로 넘겨진 항목들의 상세정보를 하단에 표시한다. rawDataKeys를 넘기면 원본 데이터도 함께 표시한다. 세로 모드에서만 지원한다. |
| showAll() | void | hideCols, showCols 수행 시 숨김처리된 컬럼을 모두 보여준다 |
| selectRow(index: number, rowData?: any) | void | index기반 row가 선택되도록 한다. |
<div class="new-list is-border"></div>
<div style="width: 100%; height: 200px; overflow-x: auto">
<div class="new-list2 is-border"></div>
</div>
Gn.create('datalist', {
target: '.new-list',
headers: [
{
label: 'no',
key: 'number',
bodyClass: 'has-text-left',
style: {
width: '50px',
'text-align': 'center'
}
},
{
label: '제목',
key: 'title',
className: 'main-title'
},
{
label: '날짜',
key: 'date'
},
{
label: '설명',
key: 'desc'
},
{
label: '기타',
key: 'etc'
}
],
data: [
{
number: '1',
title: '오늘',
date: '2023-07-28',
desc: 'hellojj'
},
{
number: '2',
title: '내일',
date: '2023-07-29',
desc: 'chaaaaaa'
}
],
onChange: updatedData => {
console.log('updatedData', updatedData);
}
});
Gn.create('datalist', {
target: '.new-list2',
headers: [
{
label: 'row-number',
key: 'number'
},
{
label: '제목',
key: 'title'
},
{
label: '날짜',
key: 'date'
},
{
label: '상세설명',
key: 'desc'
},
{
label: '숨김',
key: 'ishidden',
isHidden: true
}
],
data: [
{ number: 1, title: '첫 번째', date: '2023-07-28', desc: '이것은 첫 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 2, title: '두 번째', date: '2023-07-29', desc: '이것은 두 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 3, title: '세 번째', date: '2023-07-30', desc: '', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 4, title: '', date: '2023-07-31', desc: '이것은 네 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 5, title: '다섯 번째', date: '2023-08-01', desc: '이것은 다섯 번째 요소입니다.' },
{ number: 6, title: '여섯 번째', date: '2023-08-02 ~ 2023-11-02', desc: '이것은 여섯 번째 요소입니다.' },
{ number: 7, title: '일곱 번째 일곱 번째 일곱 번째', date: '2023-08-03', desc: '이것은 일곱 번째 요소입니다.' },
{
number: 8,
title: '여덟 번째',
date: '2023-08-08',
desc: '이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.'
}
],
hasUpdate: true,
hasDelete: true,
onUpdate: function (row, index) {
console.log('row', row);
console.log('index', index);
},
onChange: updatedData => {
console.log('updatedData', updatedData);
},
isHiddenEmpty: true
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 컴포넌트 생성 타겟 | ||
| headers | label | string | 화면에 출력될 헤더 텍스트 | |
| key | string | data의 항목에 매치되는 키값 | ||
| isHidden | boolean | 컬럼 노출여부 (data에는 있지만 화면에 출력되지 않음) | ||
| className | string | 클래스 명 | ||
| bodyClass | string | 바디에 별개의 스타일을 적용할 경우 클래스 명을 추가한다 | ||
| style | string | inline style | ||
| template | function(key, row) | 데이터를 표시할 템플릿 | ||
| onSelect | function(row) | 데이터 셀 클릭 이벤트 | ||
| onDoubleClick | function | row 더블 클릭 시 수행 이벤트 | ||
| data | array | [] | key: value로 이루어진 그리드 데이터 | |
| textSets | noData | string | No records available. | 데이터가 없을 경우 출력 메시지 |
| isHiddenEmpty | boolean | false | 데이터가 없는 경우 헤더 미출력 여부 | |
| hasUpdate | boolean | false | 수정버튼 생성 여부 | |
| hasDelete | boolean | false | 삭제버튼 생성 여부 | |
| readonly | boolean | false | 읽기전용 여부 - 삭제(hasDelete) 버튼 미생성 | |
| disabled | boolean | false | Disable 여부 | |
| onUpdate | function(row, index) | 데이터 수정 버튼을 클릭한 경우, 수정할 데이터를 가져오기 위한 이벤트핸들러 | ||
| onChange | function(updatedData) | 수정, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러 | ||
| name | return | description |
|---|---|---|
| reRender({headers: Array |
void | 변경된 값으로 다시 렌더링 한다. 컬럼 헤더까지 바뀌는 경우 사용한다. |
| resetData(data: Array |
void | 데이터를 변경한다. |
| addChild(index: number, data: Array |
void | index번째 row의 child로 data를 추가한다. |
| addRow(data: Array |
void | 마지막 데이터 하단에 data를 추가한다. |
| expand(index: number) | void | index번째 row의 child를 확장한다. |
| collapse(index: number) | void | index번째 row의 child 데이터를 축소한다. |
| getChecked() | array | 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다 |
| hideCols(keys: Array |
void | 파라메터 배열에 전달된 key에 해당하지 않는 컬럼만 보여준다 |
| showCols(keys: Array |
void | 파라메터 배열에 전달된 key에 해당하는 컬럼만 보여준다 |
| showAll() | void | hideCols, showCols 수행 시 숨김처리된 컬럼을 모두 보여준다 |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<div class="gn-growl" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-primary" style="width: 500px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-small">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-normal">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-medium">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-large">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-success" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-warning" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-danger" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-info" style="width: 400px">
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-growl has-arrange is-success" style="width: 400px">
<span class="gn-icon is-normal">
<i class="fas fa-check"></i>
</span>
<p>
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</p>
</div>
<div class="gn-growl has-arrange is-warning" style="width: 400px">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-triangle"></i>
</span>
<p>
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</p>
</div>
<div class="gn-growl has-arrange is-danger" style="width: 400px">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-triangle"></i>
</span>
<p>
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</p>
</div>
<div class="gn-growl has-arrange is-info" style="width: 400px">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p>
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</p>
</div>
<button class="gn-button new-growl1">Growl 예제보기</button>
<button class="gn-button new-growl2">Growl 예제보기</button>
Gn.create('growl', {
textSets : {message: '메세지가 생성됩니다!'},
duration: 3000,
positionX: 'right',
positionY: 'top',
color: 'danger'
});
Gn.create('growl', {
textSets : {message: '메세지가 생성됩니다!'},
duration: 3000
});
| name | type | default | description | |
|---|---|---|---|---|
| textSets | message | string | 표기할 문구 | |
| width | number|string | 400 | 가로 사이즈 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| type | string | 메시지 출력 스타일(아이콘이 함께 출력되고, color보다 우선순위가 높다). 'error', 'warning', 'success', 'info', 'guide' |
||
| size | string | 'small','normal','medium','large' | ||
| positionX | string | center | 메시지 표시 가로 위치 center, left, right, |
|
| positionY | string | center | 메시지 표시 세로 위치 center, top, bottom, |
|
| duration | number | 메시지 출력 유지시간 | ||
<div class="new-jsonview"></div>
Gn.create('jsonview', {
target: '.new-jsonview',
schema: {
Type: 'array',
Disp: 'aws sample 정보',
Description: 'aws sample 정보 설명',
Items: {
Type: 'object',
Properties: {
index: {
Type: 'checkbox',
Disp: ''
},
_id: {
Type: 'string',
Disp: '인스턴스ID',
Description: '인스턴스ID입니다.'
},
_type: {
Type: 'string',
Disp: '수집기타입'
},
test1: {
Type: 'number',
Disp: 'Test1 Value'
},
test2: {
Type: 'number',
Disp: 'Test2 Value'
},
updated: {
Type: 'datetime',
Disp: '마지막 업데이트',
$ref: '#/$defs/Datas'
},
nodes: {
Type: 'object',
Disp: '노드정보',
Properties: {
obj1: {
Type: 'string',
Disp: 'obj1'
},
obj2: {
Type: 'integer',
Disp: 'obj2'
}
}
}
},
Required: ['_type'],
Hidden: ['test1', 'test2'],
SortItems: ['_id']
},
$defs: {
Datas: {
Type: 'array',
Disp: '추가 데이터 정보',
Items: {
Type: 'object',
Properties: {
field1: {
Type: 'string',
Disp: '필드 1'
},
field2: {
Type: 'number'
},
datas: {
Type: ['array', 'string'],
Items: {
Type: 'object',
Properties: {
id: {
Type: 'number',
Disp: null
},
text: {
Type: 'string',
Disp: null
}
}
}
}
}
}
}
}
},
data: [
{
index: 0,
_id: 'd3185f78-7221-103a-8002-0272452c0706',
_type: 'aws',
test1: 1234,
test2: 1231.23,
updated: 1603427314109,
nodes: {
obj1: 'value',
obj2: 123
},
Datas: [
{
field1: 'test1',
field2: 123,
datas: [
{
id: 1,
text: 'data1'
},
{
id: 2,
text: 'data2'
}
]
},
{
field1: 'test2',
field2: 321,
datas: [
{
id: 1,
text: 'data3'
},
{
id: 2,
text: 'data4'
}
]
},
{
field1: 'test2',
field2: 321,
datas: 'just text'
}
]
},{
index: 1,
_id: 'd3185f78-7221-103a-8002-0125213c0706',
_type: 'aws',
test1: 1234,
test2: 1231.23,
updated: 1603427314109,
nodes: {
obj1: 'value',
obj2: 123
},
Datas: [
{
field1: 'test1',
field2: 123,
datas: [
{
id: 1,
text: 'data1'
},
{
id: 2,
text: 'data2'
}
]
},
{
field1: 'test2',
field2: 321,
datas: [
{
id: 1,
text: 'data3'
},
{
id: 2,
text: 'data4'
}
]
},
{
field1: 'test2',
field2: 321,
datas: 'just text'
}
]
}
]
});
<div class="new-rawview"></div>
Gn.create('jsonview', {
target: '.new-rawgrid',
data: '{"_id": "d3185f78-7221-103a-8002-0272452c0706","_type": "aws","test1": 1234,"test2": 1231.23,"nodes" : {"obj1":"value","obj2":123},"datas": [{"field1":"test1","field2":123,"datas":["data1","data2"]},{"field1":"test2","field2":321,"datas":["data3","data4"]}]}'
})
<div class="add-jsonview"></div>
Gn.create('jsonview', {
target: '.add-jsonview',
schema: {
Type: "array",
Items: {
Type: 'object',
Properties: {
bignum: {
Type: "bignumber"
}
}
}
},
data: [{
bignum: {
CPU: 23.34,
RAM: {
value: 26,
data: [0, 23, 33, 0]
}
}
}]
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | jsonview를 생성할 대상의 선택자(selector) | ||
| schema | Object | json |
||
| data | Array | Object | |||
| defWidth | string | 'auto' | Object key 값 출력 넓이. 'auto'로 설정 시 컨텐츠에 맞춤 | |
| onSort | Function(key, sort, schema) | schema의 SortItems에 설정된 항목 정렬 시 수행 이벤트 | ||
| onSelect | Function(value, key, obj, e) | 그리드 형식으로 출력된 항목을 클릭 시 수행 이벤트 | ||
| convert | Function(convertername, type, value): string | 데이터를 컨버팅하는 함수. 스키마에 설정된 Converter가 존재할 시 해당 함수를 실행하여 리턴된 결과를 렌더링한다. text 또는 html 사용 가능. value를 {{parent}}로 정의 시 해당 열에 대한 정보를 가져올 수 있다. |
||
| textSets | noData | string | No records available. | 데이터가 없을 경우 출력 메시지 |
| name | return | description |
|---|---|---|
| reRender(param:{data, schema?)) | void | 전달된 데이트로 그리드를 다시 렌더링한다 |
| getChecked() | Array |
checkbox 타입이 존재하는 경우, 체크된 항목의 데이터를 배열로 리턴한다. |
| attribute | description | |
|---|---|---|
| Type | 데이터 타입 | 아래 단일타입, 복합타입 참조 |
| Disp | 항목명 | |
| Description | 항목설명 | |
| RefURL | 링크 | 아래 RefURL 사용법 참조 |
| Target | 링크(RefURL) 타겟 | |
| Items | Array의 항목 기술 | |
| Properties | Object의 항목 기술 | |
| Hidden | 화면에 출력하지 않을 항목의 배열 | |
| SortItems | 정렬아이콘 출력 필드(Object Array 타입에서만 동작)의 배열 | |
| Required | 필수 항목 필드의 배열 | |
| Disabled | 클릭 이벤트 비활성화 필드의 배열 | |
| Style | inline 스타일 | ex. 'font-size: 12px; display: block; width: 200px' |
| StyleClass | 스타일 클래스명 | |
| Converter | 데이터를 컨버팅할 컨버터 convertername, type, value를 배열로 넣음 value에 {{mustache}} 구문 사용가능(RefURL 참조) 생략 시 해당 항목의 데이터 바인딩 |
jsonview 컴포넌트 생성 시 convert 메서드를 정의해주어야 사용가능 |
| $ref - $defs | 참조 데이터 | 아래 $ref-$defs 항목 참조 |
| type | schema | data | output |
|---|---|---|---|
| string |
{
"Type": "string",
"RefURL": "http://www.genians.com",
"Target": "_blank"
}
|
"다람쥐 헌 쳇바퀴"
|
|
| number |
{
"Type": "number"
}
|
10001
|
|
| byte |
{
"Type": "byte"
}
|
100000000
|
|
| datetime |
{
"Type": "datetime"
}
|
1603427314109
|
|
| html |
{
"Type": "html"
}
|
'<img
src="/styleguide/assets/image.png"
alt="asset"
/>'
|
|
| checkbox |
{
"Type": "checkbox"
}
|
{
value: '100',
checked: true,
// hidden: true
// 화면에 표시하지 않으려면 true
// {{mustache}} 구문을 사용하여 조건문을 설정할 수 있다.
}
100
|
|
| array |
{
Type: 'array',
Items: {
Type: ['string','number'],
RefURL: 'https://search.naver.com/search.naver?query={{data}}'
}
}
|
["빨강","주황","노랑","초록","파랑"]
|
|
| percent |
{
"Type": "percent"
}
|
52
|
|
| bignumber |
{
"Type": "bignumber"
}
|
{
온도: 24,
습도: {
value: 60,
data: [0,10,21,5,18]
}
}
|
|
| chart |
{
"Type": "chart"
}
|
{
type: 'donut',
series: [30, 200, 100],
labels: ['data1','data2','data3']
}
|
| type | schema | data | output |
|---|---|---|---|
| object |
{
"Type": "object",
"Disp": "",
"Description": "",
"Properties": {
"data-string": {
"Type": "string",
"Disp": "물품명",
"Description": "product name"
},
"data-number": {
"Type": "number",
"Disp": "재고"
},
'data-reorder': {
Type: 'string',
Disp: '재주문가능'
}
},
Hidden: ['data-reorder'] // 화면에 나타내지 않을 프로퍼티명 배열
}
|
{
'data-string': '부뚜막',
'data-number': 1489,
'data-reorder': 'false'
}
|
|
| array |
{
"Type": "array",
"Items": {
"Type": "object",
"Properties": {
"data-string": {
"Type": 'string',
"Disp": '물품명',
"Description": "product name"
},
"data-number": {
"Type": 'number',
"Disp": '재고'
}
}
}
}
|
[{
'data-string': '부뚜막',
'data-number': 1489
},{
'data-string': '솥뚜껑',
'data-number': 34
}]
|
| name | description |
|---|---|
| data | 해당 항목에 대한 데이터를 반환한다. |
| schema | 해당 항목에 대한 스키마를 반환한다. |
| $ | 전체 데이터 루트를 나타낸다. 루트로부터 jsonpath 문법을 사용할 수 있다. *property key에 특수문자가 포함되는 경우 $['property-key'] 와 같이 사용한다. |
| parent | 해당 항목의 상위 데이터를 반환한다. |
| name | description |
|---|---|
| data | 해당 항목에 대한 데이터를 반환한다. |
| parent | 해당 항목의 상위 데이터를 반환한다. |
| $ | 전체 데이터를 반환한다. |
| schema | data |
|---|---|
{
Type: 'array',
Items: {
Type: 'object',
Properties: {
'$.COLLECTOR._id': {
Type: 'string',
Disp: '인스턴스ID'
},
'$.COLLECTOR._type': {
Type: 'string',
Disp: '타입',
$ref: '#/$defs/Datas'
},
'$.COLLECTOR.nodes.obj2': {
Type: 'number',
Disp: 'No'
}
}
},
$defs: {
Datas: {
Type: 'array',
Disp: 'Datas',
Items: {
Type: 'object',
Properties: {
field1: {
Type: 'string',
Disp: '필드1'
},
field2: {
Type: 'number',
Disp: '필드2'
},
field3: {
Type: 'string',
Disp: '필드3'
}
}
}
}
}
}
|
[
{
COLLECTOR: {
_id: 'data-1-id',
_type: 'collector',
test1: 0,
test2: 0,
nodes: {
obj1: '',
obj2: 0
},
datas: {
field1: 'data-1',
field2: 0,
datas: [
{
field1: 'data-1',
field2: 0,
field3: 'data-1'
},
{
field1: 'data-1',
field2: 0,
field3: 'data-1'
}
]
}
}
},
{
COLLECTOR: {
_id: 'data-2-id',
_type: 'collector',
test1: 1,
test2: 1,
nodes: {
obj1: '',
obj2: 1
},
datas: {
field1: 'data-2',
field2: 1,
datas: [
{
field1: 'data-2',
field2: 1,
field3: 'data-2'
},
{
field1: 'data-2',
field2: 1,
field3: 'data-2'
}
]
}
}
}
]
|
| schema | data | Converter |
|---|---|---|
{
Type: 'array',
Items: {
Type: 'object',
Properties: {
name: {
Type: 'string',
Disp: '스위치명'
},
status: {
Type: 'number',
Disp: '동작상태',
Converter: ['CodeImageConverter', 'OperStatus']
}
}
}
}
|
[
{
name: '부뚜막',
status: 1
},
{
name: '솥뚜껑',
status: 0
}
]
|
(name, type, value) => {
// name : 'CodeImageConverter'
// type : 'OperStatus'
// value : {data.status 값}
if (value === '1') {
return '미동작';
} else {
return '동작';
}
}
|
<div class="gn-loader"></div>
<div class="gn-loader is-small"></div>
<div class="gn-loader is-normal"></div>
<div class="gn-loader is-medium"></div>
<div class="gn-loader is-large"></div>
<div class="gn-loader is-success"></div>
<div class="gn-loader is-warning"></div>
<div class="gn-loader is-danger"></div>
<div class="gn-loader is-info"></div>
<div class="gn-loader is-inline"></div>
<div class="gn-loader is-inline is-success"></div>
<div class="gn-loader is-inline is-warning"></div>
<div class="gn-loader is-inline is-danger"></div>
<div class="gn-loader is-inline is-info"></div>
<div class="gn-loader is-inline is-primary"></div>
<div class="gn-loader is-bounce"></div><br>
<div class="gn-loader is-move"></div>
<div class="gn-loader is-inline"></div><br>
<button class="gn-button new-loader1">loader 예제보기</button>
<button class="gn-button new-loader2">loader 예제보기</button>
Gn.create('button', {
target: '.new-loader1',
onClick: function () {
Gn.create('loader', {
duration: 3000,
size: 'large',
positionX: 'right',
positionY: 'center',
color: 'secondary'
});
}
});
Gn.create('button', {
target: '.new-loader2',
onClick: function () {
Gn.create('loader', {
duration: 3000
});
}
});
| name | type | default | description | |
|---|---|---|---|---|
| width | number|string | 25 | 로더 사이즈 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| size | string | 'small','normal','medium','large' | ||
| type | string | 'inline','bounce','move',' | ||
| positionX | string | center | 메시지 표시 가로 위치 center, left, right |
|
| positionY | string | center | 메시지 표시 세로 위치 center, top, bottom |
|
| duration | number | 메시지 출력 유지시간, 해당 옵션 설정 시 create 시점에 로더가 보인다. | ||
| name | return | description |
|---|---|---|
| show(duration) | void | 로더를 보여준다. (duration 미입력 시 계속 보여준다.) |
| hide() | void | 로더를 숨김처리한다. |
<div class="gn-menuButton">
<button type="button">
<span class="gn-icon is-small menuButton-icon">
<i class="fas fa-caret-down"></i>
</span>
<span class="menuButton-text">메뉴버튼</span>
</button>
<div class="menuButton-menus">
<ul>
<li class="menuButton-menu">
<span class="menuButton-menu-content">
<span class="menuButton-menu-text">menu1</span>
</span>
</li>
<li class="menuButton-menu">
<span class="menuButton-menu-content">
<span class="menuButton-menu-text">menu2</span>
</span>
</li>
</ul>
</div>
</div>
<button class="new-button"></button>
<button class="new-menubutton-cols"></button>
<button class="new-button2"></button>
<button class="new-button-submenu">편집 메뉴</button>
Gn.create('menubutton', {
target: '.new-button',
size: 'normal',
textSets:{
buttonText: '메뉴버튼'
},
onSelect: function(menu){
console.log('선택된 메뉴는 ' + menu );
},
data: [[{
text: 'menu1',
value: 'menu1'
},{
text: 'menu2',
value: 'menu2'
}],[{
text: '환경설정',
html: '<span class="gn-icon is-small"><i class="fas fa-cogs"></i>설정</span>',
value: 'menu1'
},{
text: 'Exit',
value: 'exit'
}]]
});
// 다중 컬럼 모드 생성 옵션
Gn.create('menubutton', {
target: '.new-menubutton-cols',
size: 'normal',
textSets: {
buttonText: '다중 컬럼 메뉴'
},
onSelect: function (menu) {
console.log('선택된 메뉴는 ' + menu);
},
data: [
{
value: 'menu1',
cols: ['item1', '1', '상세정보1']
},
{
value: 'menu2',
cols: ['item2', '2', '상세정보2']
},
{
value: 'menu3',
cols: ['item3', '3', '상세정보3']
}
]
});
Gn.create('menubutton', {
target: '.new-button2',
style: 'simple',
icon: 'list',
data: [{
text: 'menu1',
value: 'menu1'
},{
text: 'menu2',
value: 'menu2'
}]
});
// 서브메뉴 예시
Gn.create('menubutton', {
target: '.new-button-submenu',
size: 'normal',
textSets: {
buttonText: '편집 메뉴'
},
onSelect: function (value, text, menu, e) {
console.log('선택된 메뉴:', { value: value, text: text, menu: menu });
},
data: [
{
text: '파일',
value: 'file',
child: [
{ text: '새 파일', value: 'file-new' },
{ text: '열기', value: 'file-open' },
{
text: '최근 파일',
value: 'file-recent',
child: [
{ text: 'document.txt', value: 'file-recent-1' },
{ text: 'image.png', value: 'file-recent-2' },
{ text: 'project.json', value: 'file-recent-3' }
]
},
{ text: '저장', value: 'file-save' },
{ text: '다른 이름으로 저장', value: 'file-saveas' }
]
},
{
text: '편집',
value: 'edit',
child: [
{ text: '실행 취소', value: 'edit-undo' },
{ text: '다시 실행', value: 'edit-redo', actived: true },
{ text: '복사', value: 'edit-copy' },
{ text: '붙여넣기', value: 'edit-paste' }
]
},
{
text: '보기',
value: 'view',
child: [
{
text: '확대/축소',
value: 'view-zoom',
disabled: true,
child: [
{ text: '확대', value: 'view-zoom-in' },
{ text: '축소', value: 'view-zoom-out' },
{ text: '원본 크기', value: 'view-zoom-reset' }
]
},
{ text: '전체 화면', value: 'view-fullscreen' }
]
},
{
text: '도움말',
value: 'help'
}
]
});
| 필드 | type | 필수 | description |
|---|---|---|---|
| value | string | Y | 메뉴 값 (고유 값) |
| text | string | N | 단일 컬럼 표시 텍스트 |
| cols | string[] | N | 다중 컬럼 표시 값 배열 |
| html | string | N | HTML로 렌더링할 내용 (html이 있는 경우 text/cols 대신 사용, text가 있는 항목만 선택 가능) |
| child | MenuButtonItem[] | N | 하위 메뉴 배열 (최대 2단계) |
| disabled | boolean | N | 비활성화 여부 |
| actived | boolean | N | 활성화 상태 표시 여부 |
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 버튼을 생성할 대상의 선택자(selector) | ||
| textSets | buttonText | string | 버튼에 표기할 문구 | |
| size | string | 'small','normal','medium','large' | ||
| style | string | 'simple','borderless' | ||
| align | string | 'left' | 'center','left','right' | |
| width | string | auto | '200px' | |
| icon | string | font awesome solid icon name | ||
| data | MenuButtonItem[] | 메뉴 목록에 출력할 데이터 배열 - MenuButtonItem 참조 참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다. html이 있으면 하위 메뉴는 렌더링되지 않습니다. |
||
| disabled | boolean | false | 버튼 비활성화 여부 | |
| onSelect | function(value, text, menu, e) | 메뉴 선택 시 수행될 이벤트 - value: 선택된 메뉴의 값 - text: 선택된 메뉴의 텍스트 - menu: 선택된 메뉴 객체 - e: MouseEvent 객체 |
||
| name | return | description |
|---|---|---|
| buttonText(text: string) | void | 버튼명을 변경한다. |
| reRender(data: Array) | void | 메뉴 데이터를 전달받아 DOM을 다시 생성한다. |
| disabled() | void | 버튼을 비활성화한다. |
| enabled() | void | 버튼을 활성화한다. |
-Text with icon / Text only 선택 사용 할 수 있다.
<div class="gn-message is-success has-arrange">
<span class="gn-icon is-normal">
<i class="fas fa-check"></i>
</span>
<p>Success! Your message has been sent successfully. <br/> Success! Your message has been sent successfully. </p>
</div>
<div class="gn-message is-warning has-arrange">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-circle"></i>
</span>
<p>Warning! There was a problem with your network connection.</p>
<span class="gn-icon is-close is-dark">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-message is-danger has-arrange">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-triangle"></i>
</span>
<p>Error! A problem has been occurred while submitting your data.</p>
</div>
<div class="gn-message is-info has-arrange">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p>Info! Please read the comments carefully.</p>
<span class="gn-icon is-close is-dark">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-message is-guide has-arrange">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p> 가이드 메시지 한글 폰드 테스트 Guide!</p>
</div>
<div class="gn-message">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<p class="gn-message">
Velit laboris elit cillum quis velit. Ipsum veniam aute est ea aliquip aute eu mollit. Tempor tempor incididunt occaecat ullamco velit esse. Ex Lorem cupidatat non quis irure velit ut fugiat consequat. Velit deserunt irure proident irure id non mollit irure et esse magna. Sint incididunt consequat reprehenderit veniam ea mollit eu laborum ipsum sit magna voluptate.
</p>
<div class="gn-message is-success">
Success
</div>
<div class="gn-message is-warning">
Warning
</div>
<div class="gn-message is-danger">
Danger
</div>
<div class="gn-message is-info">
Info
</div>
<div class="gn-message is-cancel">
Cancel
</div>
<div class="gn-message is-dark">
Dark
</div>
<div class="gn-message is-link">
Link
</div>
<div class="gn-message is-secondary">
Secondary
</div>
<div class="gn-message is-mono">
Mono
</div>
<div class="gn-message is-small">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-normal">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-medium">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-large">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-success has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-check"></i>
</span>
<p>Success! Your message has been sent successfully. </p>
</div>
<div class="gn-message is-warning has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-circle"></i>
</span>
<p>Warning! There was a problem with your network connection.</p>
<span class="gn-icon is-close is-dark">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-message is-danger has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-exclamation-triangle"></i>
</span>
<p>Error! A problem has been occurred while submitting your data.</p>
</div>
<div class="gn-message is-info has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p>Info! Please read the comments carefully.</p>
<span class="gn-icon is-close is-dark">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-message is-help has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p> Help Info! (icon+닫기)</p>
<span class="gn-icon is-close is-dark">
<i class="fas fa-times"></i>
</span>
</div>
<div class="gn-message is-help has-arrange is-border">
<span class="gn-icon is-normal">
<i class="fas fa-info-circle"></i>
</span>
<p> Help Info! (icon)</p>
</div>
<div class="gn-message is-cancel is-border">
Cancel
</div>
<div class="gn-message is-dark is-border">
Dark
</div>
<div class="gn-message is-link is-border">
Link
</div>
<div class="gn-message is-secondary is-border">
Secondary
</div>
<div class="gn-message is-mono is-border">
Mono
</div>
<div class="gn-container page-message"></div>
<button class="gn-button new-message">Message 예제보기</button>
Gn.create('message', {
target: '.page-message',
textSets: { message: '메세지가 생성됩니다!<br>잠시만 기다려주세요.' }
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 메시지를 표시할 대상의 선택자(selector) | ||
| textSets | message | string | 메시지에 표기할 문구 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| size | string | 'small','normal','medium','large' | ||
| icon | string | font awesome solid icon name | ||
| animation | string | slideup | 'slideup','fadeout' | |
| duration | number | 300 | 메시지 닫기 이벤트 애니메이션 시간 | |
| hasClose | boolean | true | 닫기버튼 출력 여부 | |
| onClose | function | 닫기버튼 클릭 시 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| close() | void | 메세지를 닫는다. |
<button class="gn-button">open modal</button>
<button class="gn-button is-secondary">open modal</button>
<button class="gn-button is-mono">open modal</button>
<div class="gn-modal is-static">
<div class="modal-content" style="width: 550px">
<div class="modal-header">
<h3>Modal Title</h3>
<div class="modal-control">
<span class="gn-icon is-close btnCloseModal">
<i class="fas fa-times"></i>
</span>
</div>
</div>
<div class="modal-body">
<div class="modal-body-content">
<p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
<p>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</p>
<p>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</p>
</div>
</div>
<div class="modal-footer has-text-center">
<button type="button" class="gn-button">확인</button>
<button type="button" class="gn-button btnCloseModal is-cancel">취소</button>
</div>
</div>
</div>
<button class="gn-button new-modal">Modal 예제보기</button>
<button class="gn-button new-popup">Popup 예제보기</button>
<button class="gn-button new-modal-extra">Modal(Extra) 예제보기</button>
Gn.create('button', {
target: '.new-modal',
onClick: function(){
Gn.create('modal', {
textSets : { title: '새로운 모달' },
hasConfirm: true,
hasCancel: true,
height: 600,
onConfirm: function () {
console.log('확인하였습니다.');
},
contents: `
<ul class="gn-list is-medium">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Centered Text</li>
</ul>`
});
}
});
Gn.create('button', {
target: '.new-popup',
onClick: function(){
Gn.create('modal', {
textSets : { title: '새로운 팝업' },
contents: `
<table class="gn-table is-full">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr class="is-primary-light">
<td>5</td>
<td>6</td>
<td class="is-primary">7</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
<tr>
<td>13</td>
<td>14</td>
<td>15</td>
<td>16</td>
</tr>
</table>`,
isModal: false,
draggable: true,
minimized: true,
resizable: true
});
}
});
Gn.create('button', {
target: '.new-modal-extra',
onClick: function () {
Gn.create('modal', {
textSets: { title: 'Extra Buttons Demo' },
hasCancel: true,
height: 400,
extraButtons: [
{ key: 'edit-template', label: '수정(템플릿만적용)', className: 'is-small is-primary' },
{ key: 'edit-bulk', label: '수정(용도일괄적용)', className: 'is-small is-mono' }
],
onExtra: function (actionKey) {
console.log('extra clicked:', actionKey);
}
});
}
});
| name | type | default | description | |
|---|---|---|---|---|
| textSets | title | string | 타이틀 | |
| confirm | string | 확인 | 확인버튼에 표기할 문구 | |
| cancel | string | 취소 | 취소버튼에 표기할 문구 | |
| width | number | 400 | 가로 사이즈, auto | %, px, vw 단위 사용가능 | |
| height | number | 세로 사이즈(타이틀영역 제외), auto | %, px, vw 단위 사용가능 | ||
| padding | string | 20px | 컨텐츠 영역(타이틀영역 제외) 여백 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| icon | string | font awesome solid icon name | ||
| isModal | boolean | true | modal창 적용여부 | |
| draggable | boolean | false | 드래그 가능여부 | |
| hasClose | boolean | true | 우측상단 닫기버튼 출력여부 | |
| hasConfirm | boolean | false | 확인버튼 출력 여부 | |
| hasCancel | boolean | false | 취소버튼 출력 여부 | |
| extraButtons | array | [] | 푸터에 커스텀 버튼을 추가한다. 예) [{ key:'apply', label:'적용', className:'is-small is-primary' }] | |
| contents | string|HTMLElement | 팝업 컨텐츠 | ||
| onClose | function | 팝업 닫을 때 발생 이벤트 | ||
| onConfirm | function | 확인버튼 클릭 시 수행될 이벤트 | ||
| autoShow | boolean | true | 컴포넌트 생성 시 자동 표시 | |
| autoDestroy | boolean | true | modal 창 닫을 때 컴포넌트 제거 여부 | |
| resizable | boolean | false | 컨텐츠 영역 리사이징 가능여부 | |
| minimized | boolean | false | 팝업창 최소화 기능 사용여부 | |
| name | return | description |
|---|---|---|
| close() | void | modal 창을 닫는다. |
| show() | void | modal 창을 표시한다. |
| focus() | void | modal 창을 포커스한다. |
| onExtra() | void | 커스텀 버튼 클릭 시 수행될 이벤트. 매개변수로 actionKey를 전달한다. |
<div class="gn-pagination">
<a class="is-disabled" href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
<div class="gn-pagination is-small">
<a href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
<div class="gn-pagination is-normal">
<a href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
<div class="gn-pagination is-medium">
<a href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
-center 정렬을 기본으로 사용한다.
<div class="gn-pagination is-center">
<a href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
<div class="gn-pagination is-right">
<a href="#"><i class="fa fa-angle-double-left"></i></a>
<a href="#"><i class="fa fa-angle-left"></i></a>
<ul>
<li><a href="#">1</a></li>
<li class="is-active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
</ul>
<a href="#"><i class="fa fa-angle-right"></i></a>
<a href="#"><i class="fa fa-angle-double-right"></i></a>
</div>
<div class="new-pagination"></div>
Gn.create('pagination', {
target: '.new-pagination',
total: 12000,
onChange: p => {
console.log(p);
}
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 페이지네이션 생성 타겟 | ||
| size | string | 'small','normal','medium','large' | ||
| align | string | 'center' | 'center','left','right' | |
| rows | number | 30 | 한 페이지에 출력될 데이터 갯수 | |
| total | number | 전체 데이터 갯수 | ||
| siblingPages | number | 10 | 페이징 숫자가 표시되는 카운트 | |
<div class="gn-panel" style="width: 400px; height: 300px">
<div class="panel-header">
Panel Header
</div>
<div class="panel-body">
<ul class="gn-list">
<li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
<li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
<li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
</ul>
</div>
<div class="panel-footer">
Panel footer
</div>
</div>
Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
<div class="gn-panel-2" >
<div class="panel-2-header">
Panel Header
</div>
<div class="panel-2-body">
<p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
<p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
</div>
<div class="panel-2-footer">
Panel footer
</div>
</div>
<div class="gn-panel-3" >
<div class="panel-3-header">
Panel Header
</div>
<div class="panel-3-body">
<p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
<p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
</div>
<div class="panel-3-footer">
Panel footer
</div>
</div>
<div class="gn-panel is-fixed" style="width: 400px; height: 350px">
<div class="panel-header has-color-primary">
Panel Header
</div>
<div class="panel-body">
<ul class="gn-list">
<li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
<li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
<li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
</ul>
</div>
<div class="panel-footer">
Panel footer
</div>
</div>
<div class="gn-panel" style="width:400px;">
<div class="panel-header has-color-primary">
Panel Header
</div>
<div class="panel-body">
<ul class="gn-list">
<li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.</li>
<li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.</li>
<li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.</li>
</ul>
</div>
<div class="panel-footer">
Panel footer
</div>
</div>
<div class="gn-panel" style="width:400px;">
<div class="panel-header has-color-info">
Panel Header
</div>
<div class="panel-body">
<div class="gn-tab is-center">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<ul class="gn-list">
<li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.</li>
<li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.</li>
<li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.</li>
</ul>
</div>
<div class="panel-footer has-text-center">
<button type="button" class="gn-button is-info">확인</button>
<button type="button" class="gn-button is-cancel">취소</button>
</div>
</div>
<div class="gn-tab">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-small">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-normal">
<ul>
<li><a href="#genians">Genians</a></li>
<li class="is-active"><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-medium">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li class="is-active"><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-large">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li class="is-active"><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-border-half">
<ul>
<li><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li class="is-active"><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-border">
<ul>
<li><a href="#genians">Genians</a></li>
<li class="is-active"><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-full">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-center">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-right">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div class="gn-tab is-vertical is-medium">
<ul>
<li class="is-active"><a href="#genians">Genians</a></li>
<li><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div id="newTab">
<ul>
<li><a href="#genians"><span class="gn-icon is-small"><i class="fas fa-home"></i></span> Genians</a></li>
<li class="is-active"><a href="#rndcenter">R&D Center</a></li>
<li><a href="#fd">Front-end</a></li>
<li><a href="#gnui">GNUI</a></li>
</ul>
</div>
<div id="newContents">
<div id="genians">Genians</div>
<div id="rndcenter">R&D Center</div>
<div id="fd">Front-end</div>
<div id="gnui">GNUI</div>
</div>
Gn.create('tab', {
target: '#newTab',
align: 'center',
contents: '#newContents',
onChange: function(idx){
console.log(idx + '번 탭이 활성화 되었습니다.')
}
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 탭을 생성할 대상의 선택자(selector) | ||
| tabIndex | number | 0 | 초기 활성화 탭 인덱스 | |
| contents | string | 탭 컨텐츠로 사용될 element selector | ||
| size | string | 'small','normal','medium','large' | ||
| align | string | full | 'full', 'left','right', 'vertical' | |
| style | string | 'border','border-half' | ||
| onChange(idx) | function | 탭 전환 시 발생 이벤트 (idx: 활성화 탭 인덱스) | ||
| disabled | boolean | false | 비활성화 여부 | |
| name | return | description |
|---|---|---|
| change(index: number) | void | index에 해당하는 탭을 활성화한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<div class="gn-tagcloud" style="width: 300px">
<ul>
<li><a data-size="4">HTTP</a></li>
<li><a data-size="1">Sass</a></li>
<li><a data-size="8">HTML</a></li>
<li><a data-size="6">FlexBox</a></li>
<li><a data-size="4">API</a></li>
<li><a data-size="6">Grid</a></li>
<li><a data-size="2">Rest</a></li>
<li><a data-size="9">JavaScript</a></li>
<li><a data-size="8">CSS</a></li>
<li><a data-size="3">Less</a></li>
</ul>
</div>
<div class="new-tagcloud"></div>
Gn.create('tagcloud', {
target: '.new-tagcloud',
width: '250px',
data: [{
text: 'Genians',
value: 50
},{
text: 'NAC',
value: 33
},{
text: 'Typescript',
value: 12
},{
text: 'Insights',
value: 26
},{
text: 'Network',
value: 3
},{
text: 'sass',
value: 1,
},{
text: 'EDR',
value: 19
},{
text: 'Front-end',
value: 6
},{
text: 'GNUI',
value: 42
},{
text: 'Framework',
value: 1
}]
})
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 컴포넌트 생성대상 선택자(selector) | ||
| width | string | 컴포넌트 넓이 | ||
| data | Array[{text, value}] | 출력할 태그 목록 value 값에 따라 1~9 단계로 text를 표시한다. |
||
| onClick | function(data) | 태그 클릭 시 수행될 이벤트 | ||
<div class="gn-tooltip is-left is-relative">
<span>Popper!!!</span>
</div>
<div class="gn-tooltip is-top is-relative">
<span>Popper again</span>
</div>
<div class="gn-tooltip is-bottom is-relative">
<span>Long Text Popper!!!</span>
</div>
<div class="gn-tooltip is-right is-relative">
Where is my <span class="gn-icon is-small"><i class="fas fa-home"></i></span> HOME
</div>
<div class="new-contents">
<div class="gn-panel" style="width: 250px; height: 600px">
<div class="panel-header">
Panel Header
</div>
<div class="panel-body">
<ul class="gn-list">
<li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
<li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
<li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
</ul>
</div>
<div class="panel-footer">
Panel footer
</div>
</div>
</div>
<div class="gn-tooltip is-success is-left is-relative">
<span>Success</span>
</div>
<div class="gn-tooltip is-warning is-bottom is-relative">
<span>Warning</span>
</div>
<div class="gn-tooltip is-danger is-top is-relative">
<span>Danger</span>
</div>
<div class="gn-tooltip is-info is-right is-relative">
<span>Info</span>
</div>
<div class="gn-tooltip is-cancel is-left-bottom is-relative">
<span>Cancel</span>
</div>
<div class="gn-tooltip is-dark is-right-top is-relative">
<span>Dark</span>
</div>
<div class="gn-tooltip is-link is-top is-relative">
<span>Link</span>
</div>
<div class="gn-tooltip is-secondary is-bottom is-relative">
<span>Secondary</span>
</div>
<div class="gn-tooltip is-mono is-right is-relative">
<span>Mono</span>
</div>
<span class="gn-tag is-large is-info has-tooltip1">tooltip left</span>
<span class="gn-tag is-large is-info-light has-tooltip2">tooltip bottom</span>
<span class="gn-tag is-large is-info-light is-outline has-tooltip3">tooltip top</span>
<span class="gn-tag is-large is-info is-outline has-tooltip4">tooltip right</span>
<br>
<span class="gn-tag is-large is-info has-tooltip5">tooltip left top</span>
<span class="gn-tag is-large is-info-light has-tooltip6">tooltip left bottom</span>
<span class="gn-tag is-large is-info-light is-outline has-tooltip7">tooltip right top</span>
<span class="gn-tag is-large is-info is-outline has-tooltip8">tooltip right bottom</span>
Gn.create('tooltip', {
target: '.has-tooltip1',
contents: '.new-contents',
direction: 'left',
type: 'click'
});
Gn.create('tooltip', {
target: '.has-tooltip2',
contents: '기본값 bottom 툴팁'
});
Gn.create('tooltip', {
target: '.has-tooltip3',
contents: 'top 툴팁',
direction: 'top'
});
Gn.create('tooltip', {
target: '.has-tooltip4',
contents: 'right 툴팁',
direction: 'right'
});
Gn.create('tooltip', {
target: '.has-tooltip5',
contents: 'left top 툴팁',
direction: 'left-top',
width: '200px'
});
Gn.create('tooltip', {
target: '.has-tooltip6',
contents: 'left bottom 툴팁',
direction: 'left-bottom'
});
Gn.create('tooltip', {
target: '.has-tooltip7',
contents:
'</b>자주 사용되는 정규식 특수문자</b><br/><br/>. 임의의 한 문자 예) .* 모든문자열<br/>^ 문자열 시작 예) ^Genians Genians으로 시작하는 문자열<br/>$ 문자열 끝 예) Genians$ Genians로 끝나는 문자열<br/>[ 문자집합 시작 표시 예) [ab] a 또는 b문자가 포함되는 문자열<br/>] 문자집합 끝 표시<br/>( 문자열 집합 시작 예) a(b)|(c)d abd 또는 acd를 의미<br/> 문자열 집합 끝<br/>| 또는(OR)<br/> 특수한 기능을 하는 다음 문자표시 예) . Period 문자표시<br/>n* 0개 이상의 n문자<br/>n+ 1개 이상의 n문자<br/>{n} 앞문자가 n개 예) ab{2}c abbc를 의미<br/>{n,} 앞문자가 n개 이상<br/>{,m} 앞문자가 m개 이하<br/>{n,m} 앞문자가 n개 이상 m개 이하<br/>',
direction: 'right-top'
});
Gn.create('tooltip', {
target: '.has-tooltip8',
contents: '<br/>right bottom 툴팁<br/>',
direction: 'right-bottom'
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 툴팁을 표시할 대상의 선택자(selector) | ||
| type | string | hover | 툴팁 표시 트리거타입('hover','click') | |
| delay | number | 0 | 툴팁 제거 지연시간(ms) | |
| direction | string | bottom | 툴팁 표시 방향(top,bottom,right,left,left-top,left-bottom,right-top,right-bottom) | |
| position | object | 툴팁 표시 위치 {top: '0px', left: '0px'}로 설정 | ||
| contents | string | 툴팁에 표시할 문구 또는 html 텍스트 | ||
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| name | return | description |
|---|---|---|
| show() | void | 툴팁을 표시한다. |
| hide() | void | 툴팁을 숨김처리한다. |
| setContents(newContents: string) | void | 툴팁 컨텐츠를 변경한다. |
<div style="display: flex">
<div class="new-tree1"></div>
<div class="new-tree2"></div>
<div class="new-tree3"></div>
<div class="new-tree4"></div>
</div>
Gn.create('tree', {
target: '.new-tree1',
data: [{
text: 'Genians',
child: [{
text: 'GNUI'
},{
text: 'GNUI core'
},{
text: 'GNConfEngine'
}]
},{
text: 'R&D Center',
child: [{
text: 'GNUI'
},{
text: 'GNUI core'
},{
text: 'GNConfEngine'
}]
},{
text: 'Front-end'
}],
type: 'borderless'
});
Gn.create('tree', {
target: '.new-tree2',
data: [{
text: 'Genians',
child: [{
text: 'GNUI'
},{
text: 'GNUI core'
},{
text: 'GNConfEngine'
}]
},{
text: 'R&D Center',
child: [{
text: 'GNUI'
},{
text: 'GNUI core'
},{
text: 'GNConfEngine'
}]
},{
text: 'Front-end'
}],
color: 'success',
hasCheck: false
})
Gn.create('tree', {
target: '.new-tree3',
data: [{
text: 'Genians',
value: 'genians',
actived: true,
opened: true,
child: [{
text: 'GNUI',
value: 'gnui'
},{
text: 'GNUI core',
value: 'gnui-core',
opened: true,
child: [{
text: 'GNUI',
value: 'gnui-nested'
},{
text: 'GNUI core',
value: 'gnui-core-nested'
},{
text: 'GNConfEngine',
value: 'gnconfengine-nested',
selected: true
}]
},{
text: 'GNConfEngine',
value: 'gnconfengine'
}]
},{
text: 'R&D Center',
value: 'rnd-center',
child: [{
text: 'GNUI',
value: 'rnd-gnui'
},{
text: 'GNUI core',
value: 'rnd-gnui-core'
},{
text: 'GNConfEngine',
value: 'rnd-gnconfengine'
}]
},{
text: 'Front-end',
value: 'frontend'
}],
hasCheck: true
})
Gn.create('tree', {
target: '.new-tree4',
data: [{
text: 'Disabled Root',
value: 'disabled-root',
opened: true,
child: [{
text: 'Locked Node',
value: 'locked-node',
selected: true
},{
text: 'Review Only',
value: 'review-only'
}]
},{
text: 'Disabled Leaf',
value: 'disabled-leaf'
}],
hasCheck: true,
disabled: true
})
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 트리 생성 타겟 | ||
| data | array | {key: value}로 이루어진 데이터
text: 메뉴명 value: 노드 식별 값 selected: true 인 경우 체크박스 체크된 상태로 표시 opened: true 인 경우 하위항목이 열린상태로 표시 actived: true 인 경우 선택된 상태로 표시 disabled: true 인 경우 해당 노드 선택·체크 불가 icon: 기본 트리 아이콘이 있는 경우(showIcon: true) HTMLElement String 을 통해 사용자 정의 아이콘으로 변경 hideIcon: 기본 트리 아이콘이 있는 경우(showIcon: true) 아이콘 숨김 처리 |
||
| childField | string | child | 자식 데이터를 가지고 있는 항목 키값 | |
| size | string | 'small','normal','medium','large' | ||
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| type | string | 'borderless' | ||
| hasCheck | boolean | false | 체크박스 출력 여부 | |
| checkPath | boolean | false | 하위 항목 선택 시 상위항목 자동선택 여부 | |
| checkChild | boolean | true | 부모 항목 선택 시 하위항목 자동선택 여부 | |
| showIcon | boolean | false | 메뉴명 앞 아이콘 표시 여부 | |
| disabled | boolean | false | true 인 경우 초기 렌더 시 전체 트리가 비활성화되며(is-disabled), 선택/체크 상호작용은 불가하지만 토글러를 통한 확장/축소는 가능 | |
| onSelect | function | 클릭 시 수행 이벤트 | ||
| onDoubleClick | function | 더블 클릭 시 수행 이벤트 | ||
| onToggle | function | child 항목을 열고닫을때 수행 이벤트 | ||
| onCheck | function | 체크박스 항목을 선택/해제 할때 수행 이벤트 | ||
| name | return | description |
|---|---|---|
| addChild(index: number, data: Array |
void | index번째(0~n) child로 data를 추가한다. |
| expand(index: number) | void | index번째(0~n) child를 확장한다. |
| collapse(index: number) | void | index번째(0~n) child 데이터를 축소한다. |
| collapseAll() | void | 열려있는 child 데이터를 축소한다. |
| expandAll() | void | 모든 노드를 확장한다. |
| checkAll() | void | 모든 노드를 체크한다. hasCheck: true일 때만 유효하며, 그 외에는 no-op이다. |
| uncheckAll() | void | 모든 노드의 체크를 해제한다. hasCheck: true일 때만 유효하며, 그 외에는 no-op이다. |
| setChecked(targets: string | string[], checked: boolean) | void | 전달한 단일 또는 복수 노드를 체크/해제한다. 노드 식별은 value로만 수행하며, 대상 노드에는 고유한 value가 필요하다. hasCheck: true일 때만 유효하다. |
| getChecked(withStatus: Boolean = false) | array | 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다
withStatus 옵션을 true로 사용하는 경우 리턴 item.__status 에 그 아이템에 대한 상태값을 포함한다 |
| getItemIndex(item: HTMLElement) | number | 아이템 index 값을 리턴한다 |
| findData(index: number) | any | index에 해당하는 아이템을 리턴한다 |
| filter(keyword: string) | any | keyword를 포함한 아이템만 표시한다 |
| disable() | void | 트리 컴포넌트 전체를 비활성화한다. |
| enable() | void | 트리 컴포넌트 전체를 활성화한다. |
a, button, input[submit], input[reset]<button type="button" class="gn-button">확인</button>
<button type="button" class="gn-button is-dark">확인</button>
<button type="button" class="gn-button">수정</button>
<button type="button" class="gn-button is-dark">수정</button>
<button type="button" class="gn-button">목록</button>
<button type="button" class="gn-button is-cancel is-outline">취소</button>
<button type="button" class="gn-button"><i class="fa fa-cog"></i> Settings</button>
<button type="submit" class="gn-button"><i class="fa fa-shopping-cart fa-lg"></i> Checkout</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-cog"></i> Settings</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-shopping-cart fa-lg"></i> Checkout</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-download" aria-hidden="true"></i></button>
<p>
<button type="button" class="gn-button is-small">Small</button>
<button type="button" class="gn-button is-normal">Normal</button>
<button type="button" class="gn-button is-medium">Medium</button>
<button type="button" class="gn-button is-large">Large</button>
</p><p>
<button type="button" class="gn-button is-full">Full</button>
</p><p>
<button type="button" class="gn-button is-full is-large">Large Full</button>
</p>
<button type="button" class="gn-button is-success">Success</button>
<button type="button" class="gn-button is-warning">Warning</button>
<button type="button" class="gn-button is-danger">Danger</button>
<button type="button" class="gn-button is-info">Info</button>
<button type="button" class="gn-button is-cancel">Cancel</button>
<button type="button" class="gn-button is-dark">Dark</button>
<button type="button" class="gn-button is-link">Link</button>
<button type="button" class="gn-button is-trans">Trans</button>
<button type="button" class="gn-button is-secondary">Secondary</button>
<button type="button" class="gn-button is-mono">Mono</button>
<button type="button" class="gn-button is-outline is-success">Success</button>
<button type="button" class="gn-button is-outline is-warning">Warning</button>
<button type="button" class="gn-button is-outline is-danger">Danger</button>
<button type="button" class="gn-button is-outline is-info">Info</button>
<button type="button" class="gn-button is-invert is-success">Success</button>
<button type="button" class="gn-button is-invert is-warning">Warning</button>
<button type="button" class="gn-button is-invert is-danger">Danger</button>
<button type="button" class="gn-button is-invert is-info">Info</button>
<button type="button" class="gn-button is-hover">Hover</button>
<button type="button" class="gn-button is-focus">Focus</button>
<button type="button" class="gn-button is-active">Active</button>
<button type="button" class="gn-button is-disabled">Disabled</button>
<button type="button" class="gn-button is-invalid">Invalid</button>
<button type="button" class="gn-button is-loading">Loading</button>
<button type="button" class="gn-button">
<span class="gn-icon is-small">
<i class="fas fa-bold"></i>
</span>
</button>
<button type="button" class="gn-button is-info">
<span class="gn-icon is-small">
<i class="fas fa-home"></i>
</span>
HOME
</button>
<div class="gn-control has-arrange">
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-left"></i>
</span>
Left
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-center"></i>
</span>
Center
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-right"></i>
</span>
Right
</button>
</div>
<button class="gn-button" name="new-button">new button</button>
Gn.create('button', {
target: 'button[name=new-button]',
size: 'medium',
icon: 'home',
onClick: function(){
console.log('버튼을 클릭했습니다.');
}
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 버튼을 생성할 대상의 선택자(selector) | ||
| textSets | buttonText | string | 버튼에 표기할 문구 | |
| disabled | boolean | false | 버튼 비활성화 여부 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| size | string | 'small','normal','medium','large' | ||
| style | string | 'outline','invert' | ||
| status | string | 'hover','focus', 'active', 'disabled', 'invalid', 'loading' | ||
| icon | string | font awesome solid icon name | ||
| onClick | function | 버튼 클릭 시 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| click() | void | 버튼을 클릭을 동작한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
input[checkbox]<label class="gn-checkbox"><input type="checkbox">항목 1</label>
<label class="gn-checkbox"><input type="checkbox">item 2</label>
<div class="gn-checks is-disabled">
<input type="checkbox" disabled id="ex_chk" alue="" checked=""><label for="ex_chk">체크박스</label>
</div>
<div class="gn-checks is-small">
<input type="checkbox" id="ex_chk2"><label for="ex_chk2"></label>
</div>
<label class="gn-checkbox is-small"><input type="checkbox">Small</label>
<label class="gn-checkbox is-normal"><input type="checkbox">Normal</label>
<label class="gn-checkbox is-medium"><input type="checkbox">Medium</label>
<label class="gn-checkbox is-large"><input type="checkbox">Large</label>
<label class="gn-checkbox is-disabled"><input type="checkbox" disabled>항목 1</label>
<label class="gn-checkbox is-disabled"><input type="checkbox" disabled>item 2</label>
<label class="gn-checkbox is-invalid"><input type="checkbox">item 2</label>
<input type="text" class="colorPicker" />
<input type="text" class="colorPicker2" />
<input type="text" class="colorPicker3" />
<input type="text" class="colorPicker4" />
Gn.create('colorpicker', {
target: '.colorPicker',
size: 'large',
editable: true,
onChange: color => {
console.log('color', color);
}
});
Gn.create('colorpicker', {
target: '.colorPicker2',
value: '#27005d',
size: 'medium'
});
Gn.create('colorpicker', {
target: '.colorPicker3',
readonly: true,
value: '#aed2ff',
onChange: color => {
console.log('color', color);
}
});
Gn.create('colorpicker', {
target: '.colorPicker4',
value: '#e4f1ff',
disabled: true,
size: 'small'
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | colorpicker 객체 선택자(selector) | ||
| textSets | placeholder | string | ||
| size | string | 'small','normal','medium','large' | ||
| value | string | 초기 색상 값 | ||
| editable | boolean | false | 색상 입력 가능여부 (true 설정 후 팔레트를 보여줄 때 입력받은 색상이 올바르지 않은 헥사코드인 경우 기본색상으로 변경) | |
| readonly | boolean | false | 읽기전용 여부 | |
| disabled | boolean | false | 비활성화 여부 | |
| onChange | function | 색상 값 변경 시 수행 이벤트 | ||
| name | return | description |
|---|---|---|
| change(color) | void | 컬러값을 변경한다. |
| getValue() | string | 설정된 컬러값을 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<input type="text" class="new-datepicker" />
<input type="text" class="new-datetimepicker-without-icon" />
<input type="text" class="new-datetimepicker" />
Gn.create('datepicker', {
target: '.new-datepicker',
value: '',
dateFormat: 'yyyy-MM-DD',
min: '-1M',
max: '1M',
type: 'date'
});
Gn.create('datepicker', {
target: '.new-datetimepicker-without-icon',
type: 'datetime',
value: '2021-10-10 10:01:11',
hasIcon: false,
onClose: function () {
console.log('창이 닫힙니다.');
}
});
Gn.create('datepicker', {
target: '.new-datetimepicker',
type: 'datetime',
writable: false,
textSets: {
placeholder: 'pick a date'
}
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | datepicker 생성 타겟 | ||
| textSets | placeholder | string | ||
| locale | 'ko'|'en' | ko | 표기문구 언어 | |
| type | string | date | picker type : date | datetime | |
| timeFormat | string | hh:mm:ss | 시간 형식 (hh:mm:ss, hh:mm) | |
| size | string | 'small','normal','medium','large' | ||
| value | string | Date | now | 초기 날짜, 시간 값 | |
| width | string | 165px | 입력 input 크기 | |
| hasIcon | boolean | true | 달력 아이콘 표시여부 | |
| disabled | boolean | false | Disable 여부 | |
| readonly | boolean | false | 읽기전용 여부 | |
| writable | boolean | true | 입력가능 여부 | |
| min | string | 선택 할 수 있는 범위의 시작일 ('2021-04-02', '-5d', '-1W', '-1M'...) | ||
| max | string | 선택 할 수 있는 범위의 종료일 ('2021-10-02', '3d', '2W', '1M'...) | ||
| onClose | function | 창을 닫을때 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| change(date) | void | 날짜 값을 변경한다. |
| getDate() | String | 날짜 값을 문자열로 반환한다. |
| getTime() | Date | 날짜 값을 타임스탬프 형식으로 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<div class="gn-dropdown">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
<ul>
<li class="dropdown-item">아이템 4</li>
<li class="dropdown-item is-active">아이템 4-1</li>
<li class="dropdown-item">아이템 4-2</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-mono">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
<ul>
<li class="dropdown-item">아이템 4</li>
<li class="dropdown-item is-active">아이템 4-1</li>
<li class="dropdown-item">아이템 4-2</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-primary">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
<ul>
<li class="dropdown-item">아이템 4</li>
<li class="dropdown-item is-active">아이템 제목이 길어집니다.4-1</li>
<li class="dropdown-item">아이템 4-2</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-header">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
<ul>
<li class="dropdown-item">아이템 4</li>
<li class="dropdown-item is-active">아이템 제목이 길어집니다.4-1</li>
<li class="dropdown-item">아이템 4-2</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-small">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-normal">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-medium">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-large">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-full">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-success">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-warning">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-danger">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-info">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-open">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item is-disabled">아이템</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-disabled">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-invalid">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-loading">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
</ul>
</div>
</div>
줄바꿈 텍스트는 p 태그를 사용해서 넣으면 됩니다.
강조도 할 수 있습니다.
<div class="gn-dropdown is-opened">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">
<span class="gn-icon is-light">
<i class="fas fa-check"></i>
</span>
항목 1
</li>
<li class="dropdown-item">
<span class="gn-icon is-light">
<i class="fas fa-check"></i>
</span>
항목 2
</li>
<li class="dropdown-item">
<span class="gn-icon is-success">
<i class="fas fa-check"></i>
</span>
항목 3
</li>
<li class="dropdown-item">
<span class="gn-icon is-success">
<i class="fas fa-check"></i>
</span>
항목 4
</li>
<li class="dropdown-item">
<span class="gn-icon is-light">
<i class="fas fa-check"></i>
</span>
항목 5
</li>
<li class="dropdown-item">
<span class="gn-icon is-light">
<i class="fas fa-check"></i>
</span>
항목 6
</li>
<li class="dropdown-item">
<span class="gn-icon is-success">
<i class="fas fa-check"></i>
</span>
항목 7
</li>
</ul>
</div>
</div>
<div class="gn-dropdown is-open">
<div class="dropdown-label">
선택하세요
<span class="gn-icon is-small dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<div class="dropdown-search">
<div class="gn-control has-icon-right is-full">
<span class="gn-icon is-right">
<i class="fas fa-search"></i>
</span>
<input type="text" class="gn-input is-full" placeholder="search item">
</div>
</div>
<ul>
<li class="dropdown-item">
<label class="gn-checkbox"><input type="checkbox">항목 1</label>
</li>
<li class="dropdown-item">
<label class="gn-checkbox"><input type="checkbox">항목 2</label>
</li>
<li class="dropdown-item">
<label class="gn-checkbox"><input type="checkbox">항목 3</label>
</li>
<li class="dropdown-item">
<label class="gn-checkbox"><input type="checkbox">항목 4</label>
</li>
</ul>
<ul>
<li class="dropdown-item is-unselectable">
그냥 텍스트를 넣을 수도 있습니다.
</li>
<li class="dropdown-item is-unselectable">
<p>줄바꿈 텍스트는 <code>p</code> 태그를 사용해서 넣으면 됩니다. </p>
</li>
<li class="dropdown-item is-unselectable">
<p><strong>강조</strong>도 할 수 있습니다. </p>
</li>
</ul>
</div>
</div>
<select class="new-dropdown0" name="dropdown0">
</select>
<select class="new-dropdown1" name="dropdown1">
</select>
<select class="new-dropdown2" name="dropdown2">
</select>
<select class="new-dropdown3" name="dropdown3">
</select>
<select class="new-dropdown4" name="dropdown4">
<option value="item1" data-desc="항목1 설명">항목1</option>
<option value="item2" data-desc="항목2 설명">항목2</option>
<option value="item3" data-desc="항목3 설명">항목3은 텍스트가 길어집니다.</option>
<option value="item4" data-desc="항목4 설명">항목4</option>
<option value="item5" data-desc="항목5 설명">항목5</option>
</select>
<select class="new-dropdown5" name="dropdown5">
</select>
<select class="new-dropdown6" name="dropdown6">
</select>
<select class="new-dropdown7" name="dropdown7">
</select>
Gn.create('dropdown', {
target: '.new-dropdown0',
onChange: function (val, txt, values) {
console.log('선택된 값은 [ ' + val + ' ]입니다.');
},
width: '150px',
data: [
{ value: '1', text: '옵션 1' },
{ value: '2', text: '옵션 2' },
{ value: '3', text: '옵션 3' },
{ value: '4', text: '옵션 4' },
{ value: '5', text: '옵션 5' }
]
});
Gn.create('dropdown', {
target: '.new-dropdown1',
onChange: function(val, txt, values){
console.log('선택된 값은 [ ' + val + ' ]입니다.')
},
width: '150px',
value: 'item2,item5',
multiple: true,
data: [
{ value: 'item1', text: '항목1' },
{ value: 'item2', text: '항목2' },
{ value: 'item3', text: '항목3' },
{ value: 'item4', text: '항목4' },
{ value: 'item5', text: '항목5' },
{ value: 'item6', text: '항목6' },
{ value: 'item7', text: '항목7' }
]
});
Gn.create('dropdown', {
target: '.new-dropdown2',
data: [
[
{ value: 'item1', text: 'Group1-항목1' },
{ value: 'item2', text: 'Group1-항목2' },
{ value: 'item3', text: 'Group1-항목3' }
],[
{ value: 'item4', text: 'Group2-항목4' },
{ value: 'item5', text: 'Group2-항목5' }
]
]
});
Gn.create('dropdown', {
target: '.new-dropdown3',
data: [
{ value: '', text: '<선택안함>' },
{ value: 'item1', icon: 'home', text: '항목1' },
{ value: 'item2', icon: 'star', text: '항목2' },
{ value: 'item3', icon: 'heart', text: '항목3' },
{ value: 'item4', text: '항목4' },
{ value: 'item5', text: '<항목5>', html: '<p><strong>text</strong>가 있는 항목은 선택 시 <u>text</u>로 대체됩니다.</p>' },
{ value: 'item6', html: '<p><strong>text</strong>가 없는 항목은 <u>선택</u>할 수 없습니다.</p>' }
],
width: 150,
scrollHeight: 100
});
Gn.create('dropdown', {
target: '.new-dropdown4',
onChange: function(val, txt){
console.log('선택된 항목은 [ ' + txt + ' ]입니다.')
},
textSets: {
selectText: '골라라'
},
value: 'item2',
hasSearch: true,
color: 'danger'
});
Gn.create('dropdown', {
target: '.new-dropdown5',
onChange: function (val, txt, values) {
console.log('선택된 값은 [ ' + val + ' ]입니다.');
},
width: '300px',
data: [
{ value: '1', cols: ['항목1', '카테고리A', '1000'] },
{ value: '2', cols: ['항목2', '카테고리B', '2000'] },
{ value: '3', cols: ['항목3', '카테고리C', '3000'] },
{ value: '4', cols: ['항목4', '카테고리A', '4000'] },
{ value: '5', cols: ['항목5', '카테고리B', '5000'] }
]
});
// optionTooltip — 정적 콘텐츠
Gn.create('dropdown', {
target: '.new-dropdown6',
width: '200px',
data: [
{ value: 'win', text: 'Windows' },
{ value: 'mac', text: 'macOS' },
{ value: 'linux', text: 'Linux' },
{ value: 'android', text: 'Android' },
{ value: 'ios', text: 'iOS' }
],
optionTooltip: {
direction: 'right',
content: function (option) {
var descriptions = {
win: '마이크로소프트의 데스크톱 운영체제',
mac: '애플의 데스크톱 운영체제',
linux: '오픈소스 기반 운영체제',
android: '구글의 모바일 운영체제',
ios: '애플의 모바일 운영체제'
};
var desc = descriptions[option.value] || '';
return '<div style="min-width:160px"><strong>' + option.text + '</strong><p style="margin:4px 0 0">' + desc + '</p></div>';
}
}
});
// optionTooltip — 비동기 fetch
Gn.create('dropdown', {
target: '.new-dropdown7',
width: '200px',
data: [
{ value: 'host1', text: '192.168.0.1' },
{ value: 'host2', text: '192.168.0.2' },
{ value: 'host3', text: '10.0.0.1' },
{ value: 'host4', text: '10.0.0.2' }
],
optionTooltip: {
direction: 'right',
fetch: function (option) {
return new Promise(function (resolve) {
setTimeout(function () {
var mockData = {
host1: { name: 'Server-A', os: 'Windows Server 2022', status: 'online' },
host2: { name: 'Server-B', os: 'Ubuntu 22.04', status: 'online' },
host3: { name: 'Router-1', os: 'Cisco IOS', status: 'online' },
host4: { name: 'Switch-1', os: 'Cisco NX-OS', status: 'offline' }
};
var d = mockData[option.value];
var statusColor = d.status === 'online' ? 'success' : 'danger';
resolve(
'<div style="min-width:180px">' +
'<strong>' + d.name + '</strong>' +
'<ul style="margin:6px 0 0;padding:0;list-style:none">' +
'<li>IP: ' + option.text + '</li>' +
'<li>OS: ' + d.os + '</li>' +
'<li>상태: <span class="gn-tag is-' + statusColor + ' is-small">' + d.status + '</span></li>' +
'</ul>' +
'</div>'
);
}, 500);
});
}
}
});
| 필드 | type | 필수 | description |
|---|---|---|---|
| value | string | Y | 항목 값 |
| text | string | N | 옵션 텍스트 |
| cols | string[] | N | 다중 컬럼 표시 값 배열 |
| html | string | N | 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.) |
| icon | string | N | font awesome solid icon name |
| name | type | default | description | |
|---|---|---|---|---|
| target | string | dropdown을 생성할 대상의 선택자(selector) | ||
| textSets | selectText | string | '선택하세요' | |
| searchText | string | 'search item' | ||
| noData | string | No records available. | 'opened' 상태에서 데이터가 없을 경우 출력 메시지 | |
| data | DropdownItem[] | dropdown에 표시할 데이터 배열 - DropdownItem 참조 참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다. |
||
| value | string | 초기 선택값 | ||
| size | string | 'small','normal','medium','large' | ||
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| type | string | 'open','opened' | ||
| width | string, number | 넓이를 고정하는 경우 넓이값 입력 | ||
| scrollHeight | string, number | 옵션영역의 최대 높이(스크롤 생성) | ||
| maxHeight | string, number | 'opened' 상태에서 해당옵션만 지정 시 옵션영역의 최대 높이(스크롤 생성) | ||
| optionTooltip | object | 옵션 툴팁 설정 direction: 'top','right','bottom','left' content: function(option){ return htmlString } fetch: function(option){ return Promise that resolves htmlString } |
||
| hasSearch | boolean | false | 항목 검색기능 사용여부 | |
| multiple | boolean | false | 다중선택 가능 여부 | |
| disabled | boolean | false | Disable 여부 | |
| onChange(value, text, values) | function | 선택값 변경 시 발생 이벤트 | ||
| name | return | description |
|---|---|---|
| setValue(value: string) | void | 값을 변경한다. |
| getValue() | string | 선택된 값을 반환한다. |
| setData(array[{value: string|array, text: string, html: string}]) | void | 선택 항목을 변경한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<div class="gn-field">
<div class="gn-label is-require">이름</div>
<div class="gn-control">
<input class="gn-input" placeholder="input name">
<label class="gn-checkbox"><input type="checkbox">Unknown</label>
</div>
</div>
<div class="gn-field">
<div class="gn-label">성별</div>
<div class="gn-control">
<label class="gn-radio"><input type="radio" name="gender">없음</label>
<label class="gn-radio"><input type="radio" name="gender">남자</label>
<label class="gn-radio"><input type="radio" name="gender">여자</label>
</div>
</div>
<div class="gn-field">
<div class="gn-label">파일첨부</div>
<div class="gn-control has-arrange">
<label class="gn-file is-info">
<input type="file"> Select File </label>
<span class="gn-plain">gnui-guide.png</span>
</div>
</div>
<div class="gn-field is-vertical is-large">
<div class="gn-label is-require">이름</div>
<div class="gn-control">
<input class="gn-input is-full" placeholder="input name">
</div>
</div>
<div class="gn-field is-vertical is-large">
<div class="gn-label">성별</div>
<div class="gn-control">
<div class="gn-select is-full">
<select>
<option>없음</option>
<option>남자</option>
<option>여자</option>
</select>
</div>
</div>
</div>
<div class="gn-field is-vertical is-large">
<div class="gn-label">파일첨부</div>
<div class="gn-control has-arrange">
<label class="gn-file is-info">
<input type="file"> Select File </label>
<span class="gn-plain is-full">gnui-guide.png</span>
</div>
</div>
has-text-left, has-text-right, has-text-center)를 적용하여 정렬 변경 가능is-1 ~ is-12)를 적용하여 너비 조절 가능<!-- Label 왼쪽 정렬 -->
<div class="gn-field">
<div class="gn-label has-text-left">이름</div>
<div class="gn-control">
<input class="gn-input" placeholder="input name">
</div>
</div>
<!-- Label 너비 조절 (Grid 사이즈 클래스 사용) -->
<div class="gn-field">
<div class="gn-label is-3">다국어용 긴 레이블 텍스트</div>
<div class="gn-control">
<input class="gn-input" placeholder="input name">
</div>
</div>
<!-- Label 왼쪽 정렬 + 너비 조절 조합 -->
<div class="gn-field">
<div class="gn-label has-text-left is-4">다국어용 매우 긴 레이블 텍스트</div>
<div class="gn-control">
<input class="gn-input" placeholder="input name">
</div>
</div>
label > input[file]<!-- 기본 -->
<label class="gn-file is-normal">
<input type="file">
Select file
</label>
<!-- 크기 -->
<label class="gn-file is-medium">
<input type="file">
Select file
</label>
<label class="gn-file is-large">
<input type="file">
Select file
</label>
<!-- 아이콘만 사용할 경우 -->
<label class="gn-file">
<input type="file">
<span class="gn-icon is-small">
<i class="fas fa-upload"></i>
</span>
</label>
<!-- 텍스트와 동일한 색깔의 아이콘 사용할 경우 -->
<label class="gn-file is-info is-outline">
<input type="file">
Select File
<span class="gn-icon is-small">
<i class="fas fa-angle-right"></i>
</span>
</label>
<!-- 텍스트와 다른 색깔의 아이콘 사용할 경우 -->
<div class="gn-control has-icon-right">
<span class="gn-icon is-small is-black is-right">
<i class="fas fa-angle-right"></i>
</span>
<label class="gn-file is-info">
<input type="file">
Select File
</label>
</div>
<!-- 아이콘과 텍스트 함께 사용할 경우 -->
<div class="gn-control has-icon-right">
<span class="gn-icon is-normal is-white is-right">
<i class="far fa-file-image"></i>
</span>
<label class="gn-file is-info">
<input type="file">
Select File
</label>
</div>
<!-- 레이블을 함께 사용할 경우 -->
<div class="gn-control has-arrange">
<label class="gn-file is-info">
<input type="file">
Select File
</label>
<span class="gn-plain">gnui-guide.png</span>
</div>
<label class="gn-file is-success">
<input type="file">
Select file
</label>
<label class="gn-file is-warning">
<input type="file">
Select file
</label>
<label class="gn-file is-danger">
<input type="file">
Select file
</label>
<label class="gn-file is-info">
<input type="file">
Select file
</label>
<label class="gn-file is-hover">
<input type="file">
Is hover
</label>
<label class="gn-file is-disabled">
<input type="file" disabled>
Disabled
</label>
<label class="gn-file is-invalid">
<input type="file">
Invalid
</label>
<div class="gn-control has-icon-left has-icon-right">
<span class="gn-icon is-left">
<i class="fas fa-wifi"></i>
</span>
<span class="gn-icon is-right">
<i class="fas fa-search"></i>
</span>
<input type="text" class="gn-input" placeholder="input text">
</div>
<div class="gn-control is-large has-arrange is-center">
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-left"></i>
</span>
Left
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-center"></i>
</span>
Center
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-align-right"></i>
</span>
Right
</button>
</div>
input[text], input[password], input[search], input[email], input[tel] <input type="text" class="gn-input" placeholder="text input">
<input type="password" class="gn-input" placeholder="password input">
<input type="search" class="gn-input" placeholder="search input">
<input type="tel" class="gn-input" placeholder="tel input">
<input type="text" class="gn-input" placeholder="primary text : border 1px">
<input type="text" class="gn-input is-border-width2" placeholder="primary text : border 2px">
<input type="text" class="gn-input is-border-width3" placeholder="primary text : border 3px">
<div class="gn-control has-arrange">
<div class="gn-plain">
<span class="gn-icon">
<i class="fas fa-weight-hanging"></i>
</span>
</div>
<input type="text" class="gn-input" placeholder="input weight">
<div class="gn-plain">
Kg
</div>
</div>
<div class="gn-control has-arrange is-medium">
<div class="gn-select">
<select>
<option>₩</option>
<option>$</option>
<option>£</option>
<option>€</option>
</select>
</div>
<input type="text" class="gn-input" placeholder="cost">
<a class="gn-plain" role="button">
<span class="gn-icon is-small">
<i class="fas fa-calculator"></i>
</span>
</a>
</div>
<div class="gn-control has-arrange is-medium">
<input type="text" class="gn-input is-medium is-full" placeholder="keyword">
<a class="gn-plain2 is-primary" role="button">
<span class="gn-icon">
<i class="fas fa-search"></i>
</span>
</a>
</div>
<div class="gn-control has-arrange is-medium">
<input type="text" class="gn-input is-medium is-full is-border-width3" placeholder="keyword">
<a class="gn-plain2 is-primary" role="button">
<span class="gn-icon">
<i class="fas fa-search"></i>
</span>
</a>
</div>
<div class="gn-control has-icon-left has-icon-right">
<span class="gn-icon is-left">
<i class="fas fa-wifi"></i>
</span>
<span class="gn-icon is-right">
<i class="fas fa-search"></i>
</span>
<input type="text" class="gn-input" placeholder="input text">
</div>
<div class="gn-control has-icon-right">
<span class="gn-icon is-right">
<i class="fas fa-calendar"></i>
</span>
<input type="text" class="gn-input" placeholder="pick a date">
</div>
<input type="text" class="gn-input is-normal" placeholder="normal text">
<input type="text" class="gn-input is-medium" placeholder="medium text">
<input type="text" class="gn-input is-large" placeholder="large text">
<input type="text" class="gn-input is-full" placeholder="full text">
<p><input type="text" class="gn-input" readonly placeholder="readonly text"></p>
<p><input type="text" class="gn-input" disabled placeholder="disabled text"></p>
<p><input type="text" class="gn-input is-focus" placeholder="focus text"></p>
<p><input type="text" class="gn-input is-hover" placeholder="hover text"></p>
<p><input type="text" class="gn-input is-invalid" placeholder="invalid text"></p>
<p>
<div class="gn-control is-full is-large is-loading">
<input type="text" class="gn-input is-full is-large" placeholder="loading text">
</div>
</p>
<div class="default-multitext">
</div>
<div class="new-multitext">
</div>
<div class="message-multitext">
</div>
Gn.create('multitext', {
target: '.default-multitext'
})
Gn.create('multitext', {
target: '.new-multitext',
lang: ['en','ko','cn'],
value: {
en: 'hello',
ko: '안녕하세요',
cn: 'HELLO'
},
maxlength: 300
})
Gn.create('multitext', {
target: '.message-multitext',
lang: ['ko', 'en'],
value: {
ko: '옵션 문구 예시',
en: 'message example'
},
maxlength: 120,
useMaxLengthMessage: true,
textSets: {
maxLengthMessage: '{{maxlength}}자 입력 가능합니다.'
}
})
| name | type | default | description | |
|---|---|---|---|---|
| target | string | multitext 생성 타겟 | ||
| lang | Array |
['en','ko'] | 사용할 언어 배열 | |
| value | Object | 언어별 초기 값 | ||
| size | string | 'normal' | 사이즈 | |
| width | string | 100% | 넓이 | |
| rows | number | 2 | textarea 라인 수 | |
| maxlength | number | 524288 | 최대 입력 글자길이 | |
| textSets | maxLengthMessage | string | '{{maxlength}}자 입력 가능합니다.' | maxlength 및 useMaxLengthMessage=true일 때 적용되는 남은 입력 가능 글자 안내 문구 |
| useMaxLengthMessage | boolean | false | true인 경우에만 textSets.maxLengthMessage 안내 문구 모드 활성화 (기본 카운터는 유지) |
|
| onChange(value) | function | 값 변경 시 발생 이벤트 | ||
| disabled | boolean | false | 비활성화 여부 | |
| name | return | description |
|---|---|---|
| getValue() | String | 값을 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<div class="gn-picklist">
<div class="picklist-source">
<div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
<div class="gn-dropdown is-opened">
<div class="dropdown-items">
<ul>
<li class="dropdown-item">항목 1</li>
<li class="dropdown-item">항목 2</li>
<li class="dropdown-item">항목 3</li>
<li class="dropdown-item">항목 4</li>
<li class="dropdown-item">항목 5</li>
<li class="dropdown-item">항목 6</li>
<li class="dropdown-item">항목 7</li>
<li class="dropdown-item">항목 8</li>
<li class="dropdown-item">항목 9</li>
<li class="dropdown-item">항목 10</li>
<li class="dropdown-item">항목 11</li>
</ul>
</div>
</div>
</div>
<div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-right"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-right"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-left"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-left"></i>
</span>
</button>
</div>
<div class="picklist-target">
<div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
<div class="gn-dropdown is-opened">
<div class="dropdown-items">
<ul>
</ul>
</div>
</div>
</div>
</div>
<div class="gn-picklist is-vertical" style="height: 400px; width: 550px">
<div class="picklist-source">
<div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
<div class="gn-dropdown is-opened">
<div class="dropdown-items">
<ul>
<li class="dropdown-item">항목 1</li>
<li class="dropdown-item">항목 2</li>
<li class="dropdown-item">항목 3</li>
<li class="dropdown-item">항목 4</li>
<li class="dropdown-item">항목 5</li>
<li class="dropdown-item">항목 6</li>
<li class="dropdown-item">항목 7</li>
</ul>
</div>
</div>
</div>
<div class="picklist-controls gn-control is-small has-arrange is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
</div>
<div class="picklist-target">
<div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
<div class="gn-dropdown is-opened">
<div class="dropdown-items">
<ul>
</ul>
</div>
</div>
</div>
</div>
<div class="new-picklist"></div>
<div class="new-picklist-v"></div>
<div class="new-picklist-cols"></div>
<div class="new-picklist-tooltip"></div>
Gn.create('picklist', {
target: '.new-picklist',
data: {
source: [
{ value: '항목1', text: 'item1', html: '<span class="gn-tag is-primary">항목1</span> item1' },
{ value: '항목2', text: 'item2', html: '<span class="gn-tag is-danger">항목2</span> item2' },
{ value: '항목3', text: 'item3', html: '<span class="gn-tag is-warning">항목3</span> item3' }
],
target: [
{ value: '항목4', text: 'item4', html: '<span class="gn-tag is-help">항목4</span> item4' },
{ value: '항목5', text: 'item5', html: '<span class="gn-tag is-success">항목5</span> item5' }
]
},
hasSourceSearch: true,
hasTargetSearch: true,
width: '80%',
height: 180,
onChange: function (s, t) {
console.log(s, t);
},
orderable: 'target'
});
Gn.create('picklist', {
target: '.new-picklist-v',
data : {
source: [
{ value: '항목1', text: 'item1' },
{ value: '항목2', text: 'item2' },
{ value: '항목3', text: 'item3' },
{ value: '항목4', text: 'item4' },
{ value: '항목5', text: 'item5' }
],
target: []
},
direction: 'vertical',
width: '500px',
height: 150
});
Gn.create('picklist', {
target: '.new-picklist-cols',
data: {
source: [
{ value: '항목1', cols: ['item1', '1', '상세정보1'] },
{ value: '항목2', cols: ['item2', '2', '상세정보2'] },
{ value: '항목3', cols: ['item3', '3', '상세정보3'] },
{ value: '항목4', cols: ['item4', '4', '상세정보4'] },
{ value: '항목5', cols: ['item5', '5', '상세정보5'] }
],
target: []
},
direction: 'vertical',
width: '500px',
height: 150
});
Gn.create('picklist', {
target: '.new-picklist-tooltip',
data: {
source: [
{ value: '항목1', text: 'item1' },
{ value: '항목2', text: 'item2' },
{ value: '항목3', text: 'item3' }
],
target: []
},
optionTooltip: {
direction: 'right',
content: function(option) {
return '<div style="padding: 10px; max-width: 200px;">' + option.text + '에 대한 추가 정보입니다.</div>';
}
},
direction: 'horizontal',
width: '500px',
height: 150
});
| 필드 | type | 필수 | description |
|---|---|---|---|
| value | string | Y | 항목 값 |
| text | string | N | 단일 컬럼 표시 텍스트 |
| cols | string[] | N | 다중 컬럼 표시 값 배열 |
| html | string | N | 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.) |
| icon | string | N | font awesome solid icon name |
| name | type | default | description | |
|---|---|---|---|---|
| target | string | picklist를 표시할 대상의 선택자(selector) * data의 target과 혼동되지 않도록 주의 |
||
| data | source | PicklistItem[] | source 항목 배열 - PicklistItem 참조 참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다. |
|
| target | PicklistItem[] | target 항목 배열 - PicklistItem 참조 참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다. |
||
| textSets | sourceCaption | string | source 항목 캡션 | |
| targetCaption | string | target 항목 캡션 | ||
| searchText | string | 'search item' | ||
| orderable | string, boolean | true | 정렬 버튼 출력 여부 (true, false, 'source', 'target') | |
| width | string, number | 100% | 컴포넌트 넓이 | |
| height | string, number | 150 | 선택항목 영역의 높이 | |
| direction | string | 'horizontal' | 컴포넌트 방향 ('horizontal', 'vertical') | |
| optionTooltip | object | 옵션 툴팁 설정 direction: 'top','right','bottom','left' content: function(option){ return htmlString } fetch: function(option){ return Promise that resolves htmlString } |
||
| hasSourceSearch | boolean | false | source 항목 검색기능 활성화 여부 | |
| hasTargetSearch | boolean | false | target 항목 검색기능 활성화 여부 | |
| disabled | boolean | false | Disable 여부 | |
| onChange | function(source, target) | 컴포넌트 값 변경 시 발생 이벤트 | ||
| onChange | function(source, target) | 컴포넌트 값 변경 시 발생 이벤트 | ||
| onSort | function(source, target) | 항목 정렬 시 발생 이벤트 | ||
| onTransfre | function(source, target) | source, target 간 이동 시 발생 이벤트 | ||
| name | return | description |
|---|---|---|
| getSource() | array | source 항목의 배열을 반환한다. |
| getTarget() | array | target 항목의 배열을 반환한다. |
| getValue() | string | target 항목의 value를 콤마(,)로 구분하여 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
| setSource(array[{value: string|array, text: string}]) | void | source 항목을 변경한다. |
| setTarget(array[{value: string|array, text: string}]) | void | target 항목을 변경한다. |
| setData({source: array[{value: string|array, text: string}], target: array[{value: string|array, text: string}]) | void | source, target 항목을 변경한다. |
<div class="gn-plain">텍스트</div>
<div class="gn-plain is-small">Small</div>
<div class="gn-plain is-normal">Normal</div>
<div class="gn-plain is-medium">Medium</div>
<div class="gn-plain is-large">Large</div>
<div class="gn-plain">Normal</div>
<div class="gn-plain is-borderless">Borderless</div>
<div class="gn-plain is-transparent">transparent</div>
<div class="gn-plain is-primary is-outline">Outline</div>
<div class="gn-plain is-success is-borderless">Success</div>
<div class="gn-plain is-warning is-borderless">Warning</div>
<div class="gn-plain is-danger is-outline">Danger</div>
<div class="gn-plain is-info is-outline">Info</div>
input[radio]<label class="gn-radio"><input type="radio">항목 1</label>
<label class="gn-radio"><input type="radio">item 2</label>
input[radio]<div class="gn-rdscheck">
<input type="radio" id="ex_rd" name="ex_rds" checked=""><label for="ex_rd">라디오버튼</label>
</div>
<div class="gn-rdscheck is-small">
<input type="radio" id="ex_rd2" name="ex_rds"><label for="ex_rd2">라디오버튼</label>
</div>
<label class="gn-radio is-small"><input type="radio">Small</label>
<label class="gn-radio is-normal"><input type="radio">Normal</label>
<label class="gn-radio is-medium"><input type="radio">Medium</label>
<label class="gn-radio is-large"><input type="radio">Large</label>
<label class="gn-radio is-disabled"><input type="radio" disabled>항목 1</label>
<label class="gn-radio is-disabled"><input type="radio" disabled>item 2</label>
<label class="gn-radio is-invalid"><input type="radio">item 3</label>
select <div class="gn-select">
<select>
<option>Lorem</option>
<option>voluptate</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-header">
<select>
<option>Lorem</option>
<option>voluptate</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-small">
<select>
<option>Small</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-normal">
<select>
<option>Normal</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-medium">
<select>
<option>Medium</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-large">
<select>
<option>Large</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-full">
<select>
<option>Full</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-success">
<select>
<option>success</option>
</select>
</div>
<div class="gn-select is-warning">
<select>
<option>warning</option>
</select>
</div>
<div class="gn-select is-danger">
<select>
<option>danger</option>
</select>
</div>
<div class="gn-select is-info">
<select>
<option>info</option>
</select>
</div>
<div class="gn-select is-borderless">
<select>
<option>borderless</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-multiple">
<select multiple>
<option>multiple</option>
<option>proident</option>
<option>labore</option>
<option>consectetur</option>
</select>
</div>
<div class="gn-select is-focus">
<select>
<option>focus</option>
</select>
</div>
<div class="gn-select is-hover">
<select>
<option>hover</option>
</select>
</div>
<div class="gn-select">
<select disabled>
<option>disabled</option>
</select>
</div>
<div class="gn-select is-invalid">
<select>
<option>invalid</option>
</select>
</div>
<div class="gn-select is-loading">
<select>
<option>loading...</option>
</select>
</div>
<div class="gn-control has-arrange">
<div class="gn-plain">
<span class="gn-icon is-small">
<i class="fas fa-weight-hanging"></i>
</span>
</div>
<div class="gn-select">
<select>
<option>with label</option>
</select>
</div>
<div class="gn-plain">
Kg
</div>
</div>
<div class="gn-control has-icon-left">
<span class="gn-icon is-left">
<i class="fas fa-wifi"></i>
</span>
<div class="gn-select">
<select>
<option>with label</option>
</select>
</div>
</div>
<div class="new-selectButtons"></div>
<div class="new-selectButtons-v"></div>
Gn.create('selectbutton', {
target: '.new-selectButtons',
size: 'normal',
value: 'menu2',
onChange: function(option){
console.log('선택된 옵션은 ' + option );
},
data: [{
text: 'menu1',
value: 'menu1'
},{
text: 'menu2',
value: 'menu2'
},{
text: 'menu3',
value: 'menu3'
},{
text: 'menu4',
value: 'menu4'
}]
});
Gn.create('selectbutton', {
target: '.new-selectButtons-v',
size: 'normal',
value: 'menu1,menu2',
multiple: true,
align: 'vertical',
onChange: function(option){
console.log('선택된 옵션은 ' + option );
},
data: [{
text: 'menu1',
value: 'menu1'
},{
text: 'menu2',
value: 'menu2'
},{
text: 'menu3',
value: 'menu3'
},{
text: 'menu4',
value: 'menu4'
}]
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 컴포넌트 생성대상 선택자(selector) | ||
| size | string | 'small','normal','medium','large' | ||
| align | string | horizontal | 'horizontal', 'vertical' | |
| data | Array[{text, value, icon}] | 옵션 목록 | ||
| disabled | boolean | false | 버튼 비활성화 여부 | |
| multiple | boolean | false | 다중선택 가능 여부 | |
| onChange | function(value, text) | 옵션 변경 시 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| change(value) | void | 버튼 선택값을 변경한다. |
| getValue() | string | 선택된 값을 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
input[range] <input type="range" class="gn-slider" value="2" min="0" max="100" step="1">
<input type="range" class="gn-slider is-small" value="20" min="0" max="100" step="1">
<input type="range" class="gn-slider is-normal" value="40" min="0" max="100" step="1">
<input type="range" class="gn-slider is-medium" value="60" min="0" max="100" step="1">
<input type="range" class="gn-slider is-large" value="80" min="0" max="100" step="1">
<input type="range" class="gn-slider is-round" value="20" min="0" max="100" step="1">
<input type="range" class="gn-slider is-success" value="20" min="0" max="100" step="1">
<input type="range" class="gn-slider is-warning" value="40" min="0" max="100" step="1">
<input type="range" class="gn-slider is-danger" value="60" min="0" max="100" step="1">
<input type="range" class="gn-slider is-info" value="80" min="0" max="100" step="1">
<input type="range" class="gn-slider" disabled value="20" min="0" max="100" step="1">
<input type="range" class="gn-slider is-invalid" value="20" min="0" max="100" step="1">
<div class="gn-sortablelist">
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
<div class="gn-dropdown is-opened sortablelist-items">
<div class="dropdown-items">
<ul class="sortablelist-rows">
<li class="dropdown-item">항목 1</li>
<li class="dropdown-item">항목 2</li>
<li class="dropdown-item">항목 3</li>
<li class="dropdown-item">항목 4</li>
</ul>
</div>
</div>
</div>
<div class="gn-sortablelist">
<div class="gn-dropdown is-opened sortablelist-items">
<div class="dropdown-items">
<ul class="sortablelist-rows">
<li class="dropdown-item">항목 1</li>
<li class="dropdown-item">항목 2</li>
<li class="dropdown-item">항목 3</li>
</ul>
</div>
</div>
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center is-right">
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-up"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-down"></i>
</span>
</button>
<button type="button" class="gn-button is-outline">
<span class="gn-icon">
<i class="fas fa-angle-double-down"></i>
</span>
</button>
</div>
</div>
<div class="new-sortablelist"></div>
<div class="new-sortablelist-drag"></div>
<div class="new-sortablelist-cols"></div>
// 단일 컬럼
Gn.create('sortablelist', {
target: '.new-sortablelist',
data: [
{ value: '1', text: '항목 1' },
{ value: '2', text: '항목 2' },
{ value: '3', text: '항목 3' },
{ value: '4', text: '항목 4' },
{ value: '5', text: '항목 5' },
{ value: '6', text: '항목 6' },
{ value: '7', text: '항목 7' },
{ value: '8', text: '항목 8' },
{ value: '9', text: '항목 9' },
{ value: '10', text: '항목 10' }
]
});
// 드래그 앤 드롭
Gn.create('sortablelist', {
target: '.new-sortablelist-drag',
data: [
{ value: 'a', text: '항목 A' },
{ value: 'b', text: '항목 B' },
{ value: 'c', text: '항목 C' },
{ value: 'd', text: '항목 D' },
{ value: 'e', text: '항목 E' },
{ value: 'f', text: '항목 F' },
{ value: 'g', text: '항목 G' },
{ value: 'h', text: '항목 H' },
{ value: 'i', text: '항목 I' },
{ value: 'j', text: '항목 J' }
],
draggable: true
});
// 다중 컬럼
Gn.create('sortablelist', {
target: '.new-sortablelist-cols',
buttonPosition: 'right',
data: [
{ value: 'x1', cols: ['항목1', '카테고리A', '1000'] },
{ value: 'x2', cols: ['항목2', '카테고리B', '2000'] },
{ value: 'x3', cols: ['항목3', '카테고리C', '3000'] },
{ value: 'x4', cols: ['항목4', '카테고리D', '4000'] },
{ value: 'x5', cols: ['항목5', '카테고리E', '5000'] },
{ value: 'x6', cols: ['항목6', '카테고리F', '6000'] },
{ value: 'x7', cols: ['항목7', '카테고리G', '7000'] },
{ value: 'x8', cols: ['항목8', '카테고리H', '8000'] },
{ value: 'x9', cols: ['항목9', '카테고리I', '9000'] },
{ value: 'x10', cols: ['항목10', '카테고리J', '10000'] }
]
});
| 필드 | type | 필수 | description |
|---|---|---|---|
| value | string | Y | 고유 값 (빈 문자열 불가) |
| text | string | N | 단일 컬럼 표시 텍스트 |
| cols | string[] | N | 다중 컬럼 표시 값 배열 |
| name | type | default | description | |
|---|---|---|---|---|
| target | string | sortablelist를 표시할 대상의 선택자(selector) | ||
| data | SortableListItem[] | sortablelist에 표시할 데이터 배열 | ||
| buttonPosition | left | right | left | 순서 변경 버튼 위치 | |
| draggable | boolean | false | 드래그 앤 드롭 순서 변경 활성화 여부 | |
| textSets | noData | string | No records available. | 데이터가 없을 경우 출력 메시지 |
| disabled | boolean | false | 컴포넌트 비활성화 여부 | |
| width | number, string | 100% | 컴포넌트 너비 | |
| height | number, string | 150 | 리스트 높이 (미지정 시 150) | |
| onChange | function(data) | 데이터 변경 시 발생 이벤트 | ||
| name | return | description |
|---|---|---|
| getData() | SortableListItem[] | 현재 데이터 배열을 반환한다. |
| setData(data: SortableListItem[]}) | void | 데이터 배열을 설정하고 다시 렌더링한다. |
| disable() | void | 컴포넌트를 비활성화한다. |
| enable() | void | 컴포넌트를 활성화한다. |
label > input[checkbox] + .switch-toggle <label class="gn-switch">
<input type="checkbox" /><span class="switch-toggle">Toggle</span>
</label>
<label class="gn-switch is-small">
<input type="checkbox" /><span class="switch-toggle">Toggle</span>
Small
</label>
<label class="gn-switch is-normal">
<input type="checkbox" /><span class="switch-toggle">Toggle</span>
Normal
</label>
<label class="gn-switch is-medium">
<input type="checkbox" /><span class="switch-toggle">Toggle</span>
Medium
</label>
<label class="gn-switch is-large">
<input type="checkbox" /><span class="switch-toggle">Toggle</span>
Large
</label>
<label class="gn-switch is-success">
<input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
Success
</label>
<label class="gn-switch is-warning">
<input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
Warning
</label>
<label class="gn-switch is-danger">
<input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
Danger
</label>
<label class="gn-switch is-info">
<input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
Info
</label>
<label class="gn-switch">
<input type="checkbox" disabled /><span class="switch-toggle">Toggle</span>
</label>
<label class="gn-switch">
<input type="checkbox" checked disabled /><span class="switch-toggle">Toggle</span>
</label>
<label class="gn-switch is-invalid">
<input type="checkbox" /><span class="switch-toggle">Invalid</span>
</label>
<input type="checkbox" class="new-switch" />
Gn.create('switch', {
target: '.new-switch',
size: 'large',
color: 'info',
checked: true,
onToggle: function (e) { console.log('toggle 이벤트'); }
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 스위치를 생성할 대상의 선택자(selector) | ||
| textSets | toggleText | string | 토글에 표기할 문구 | |
| checked | boolean | false | 스위치 초기 체크상태 | |
| disabled | boolean | false | 스위치 비활성화 여부 | |
| color | string | 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono' | ||
| size | string | 'small','normal','medium','large' | ||
| onToggle | function | 토글 시 수행될 이벤트 | ||
| name | return | description |
|---|---|---|
| toggle() | void | 스위치 상태를 토글한다. |
| getValue() | boolean | 스위치 상태를 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
<p><input type="text" class="syntaxInput" /></p>
<p><input type="text" class="syntaxInput2" /></p>
<p><input type="text" class="syntaxInput3" /></p>
Gn.create('syntaxinput', {
target: '.syntaxInput'
});
Gn.create('syntaxinput', {
target: '.syntaxInput2',
multiple: true,
usetab: true
});
Gn.create('syntaxinput', {
target: '.syntaxInput3',
type: 'custom',
patterns: {
constant: {
pattern: /\w+:?(?=\/)/gm
},
keyword: {
pattern: /[^/]*$/gm
}
}
});
| name | type | default | description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| target | string | colorpicker 객체 선택자(selector) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| value | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| multiple | boolean | false | true 인 경우, input 대신 textarea 로 입력받는다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| usetab | boolean | false | 입력창 내 TAB 키 사용 여부. multiple: true 설정 시 사용가능 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| readonly | boolean | false | 입력 가능여부 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type | string | html | syntax 타입 (plain, plaintext, text, txt, markup, html, mathml, svg, xml, ssml, atom, rss, css, clike, javascript, js) 사용자 정의 시 'custom' |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onChange | function | input 값 변경 시 호출되는 이벤트 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| patterns | object |
type 을 'custom'으로 지정 후, 패턴 형식의 Object를 설정한다.
{
[token keyword: string] : {
pattern: 스타일을 적용 할 패턴 정규식
}
}
token keyword
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name | return | description |
|---|---|---|
| setValue(value: string) | void | 값을 변경한다. |
| getValue() | string | 값을 반환한다. |
| disable | void | Readonly 상태로 전환한다. |
| enable | void | Readonly 상태를 해제한다. |
textarea <textarea class="gn-textarea">Default Textarea</textarea>
<textarea class="gn-textarea is-info">Info color Textarea</textarea>
<textarea class="gn-textarea is-borderless">Borderless Textarea</textarea>
<p><textarea class="gn-textarea" readonly>Readonly</textarea></p>
<p><textarea class="gn-textarea" disabled>Disabled</textarea></p>
<p><textarea class="gn-textarea is-focus">Focus</textarea></p>
<p><textarea class="gn-textarea is-hover">Hover</textarea></p>
<p><textarea class="gn-textarea is-invalid">INVALID</textarea></p>
<p><div class="gn-control is-loading is-full">
<textarea class="gn-textarea is-hover">Loading...</textarea>
</div></p>
<div class="new-time"></div>
<div class="new-time2"></div>
Gn.create('time', {
target: '.new-time',
onChange: function(time){
console.log(time)
},
value: '22:33:44'
});
Gn.create('time', {
target: '.new-time2',
timeFormat: 'hh:mm',
onChange: function(time){
console.log(time)
},
value: '6:2'
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | time 생성 타겟 | ||
| value | string | now | 초기 시간 값 | |
| timeFormat | string | hh:mm:ss | 시간 형식 (hh:mm:ss, hh:mm) | |
| hasControls | boolean | true | 시간 셋팅 버튼(00:00, 23:59) 출력여부 | |
| onChange | function(value) | 시간 변경 시 발생 이벤트 | ||
| disabled | boolean | false | Disable 여부 | |
| readonly | boolean | false | 읽기전용 여부 | |
| name | return | description |
|---|---|---|
| setTime(time: string) | void | 시간 값을 변경한다. |
| getTime() | string | 설정된 시간 값을 반환한다. |
| disable() | void | Disabled 처리한다. |
| enable() | void | Enabled 처리한다. |
.is-clearfix
.is-float-left
.is-float-right
.is-clipped
.is-vertical-middle
.is-align-items-center
.is-align-self-center
<div class="gn-box is-clearfix">
<div class="is-float-left">
<div class="gn-control has-arrange">
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-subway"></i>
</span>
Subway
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-laptop-code"></i>
</span>
Code
</button>
<button type="button" class="gn-button">
<span class="gn-icon">
<i class="fas fa-images"></i>
</span>
Images
</button>
</div>
</div>
<div class="is-float-right">
<div class="gn-control has-icon-right">
<span class="gn-icon is-right">
<i class="fas fa-search"></i>
</span>
<input type="text" class="gn-input" placeholder="input text">
</div>
</div>
</div>
<div class="gn-box has-text-left">
<h4 class="gn-title is-size4">Left</h4>
Aliquip nisi sint cupidatat excepteur deserunt mollit deserunt ea reprehenderit cupidatat sunt. Irure excepteur irure consequat nisi proident qui dolore ex sunt. Fugiat excepteur dolor occaecat adipisicing aliqua reprehenderit excepteur nostrud anim aute in ipsum et. Culpa sint officia elit veniam laborum enim excepteur sint ullamco aliquip commodo voluptate. Magna est qui sunt adipisicing irure anim ipsum exercitation ipsum sint.
</div>
<div class="gn-box has-text-center">
<h4 class="gn-title is-size4">Center</h4>
Irure excepteur culpa laborum nulla ullamco velit consequat ut voluptate nisi Lorem. Pariatur sunt ipsum non sunt est fugiat do veniam duis sunt. Magna reprehenderit commodo eiusmod incididunt sunt minim eu nostrud. Ut dolor nostrud ullamco non commodo sit adipisicing dolore proident fugiat eu veniam. Nostrud consectetur do amet enim proident in nisi ullamco aliquip excepteur do. Officia ullamco voluptate tempor veniam proident ea duis laborum id incididunt.
</div>
<div class="gn-box has-text-right">
<h4 class="gn-title is-size4">Right</h4>
Veniam pariatur nulla eu eiusmod. Veniam anim dolor labore tempor proident ad cillum. Sint laboris officia aliqua proident aute. Consequat cupidatat officia ad veniam pariatur do. Ullamco duis pariatur aliqua sit cupidatat laborum laboris eu magna. Laboris non duis occaecat esse laboris ex do. Nisi cupidatat veniam voluptate fugiat elit labore aute et excepteur.
</div>
<div class="gn-box has-text-justify">
<h4 class="gn-title is-size4">Justify</h4>
Commodo reprehenderit cillum Lorem culpa do consectetur ullamco irure eu. Magna officia sit nisi in deserunt non duis eu duis enim quis. Eu proident pariatur aliquip anim est Lorem quis. Aliquip magna excepteur sint sint commodo nisi magna. Velit ea sint esse aliquip magna amet consequat eiusmod ex ad.
</div>
size1 : Fugiat cillum reprehenderit ullamco esse non cillum.
size2 : Minim eu minim ea anim.
size3 : Sit adipisicing eiusmod consectetur sit qui cupidatat.
size4 : Enim qui do ullamco enim et non consectetur labore consectetur ipsum quis magna proident.
size5 : Occaecat ex voluptate ea labore labore cillum veniam officia excepteur pariatur Lorem consectetur.
size6 : In quis sunt esse esse aute ullamco laborum.
size6 : 사용자 비밀번호 저장방식을 선택 합니다. RADIUS서버를 통한 MSCHAPv2 인증을 지원하기 위해서는 NT-Hash를 선택해야 합니다.
size7 : Nostrud consectetur excepteur ut duis qui pariatur irure eiusmod non Lorem aliquip id eiusmod.
<div class="gn-box is-capitalize">
<h4 class="gn-title is-size4">capitalize</h4>
Velit Lorem nisi aute enim exercitation.
</div>
<div class="gn-box is-lowercase">
<h4 class="gn-title is-size4">lowercase</h4>
Exercitation duis nulla id fugiat et laboris laborum aute.
</div>
<div class="gn-box is-uppercase">
<h4 class="gn-title is-size4">uppercase</h4>
Incididunt nulla anim ut ipsum.
</div>
<div class="gn-box is-italic">
<h4 class="gn-title is-size4">italic</h4>
Ad non deserunt veniam consectetur enim.
</div>
<div class="gn-box is-underline">
<h4 class="gn-title is-size4">underline</h4>
Ad non deserunt veniam consectetur enim.
</div>
<div class="gn-box is-strike">
<h4 class="gn-title is-size4">strike</h4>
Ad non deserunt veniam consectetur enim.
</div>
<div class="gn-box is-text-link">
<h4 class="gn-title is-size4">text link</h4>
Link style text (hover: underline + pointer)
</div>
<div class="gn-box">
<h4 class="gn-title is-size4">Text Sizes</h4>
<p class="has-text-size1">size1 : Fugiat cillum reprehenderit ullamco esse non cillum.</p>
<p class="has-text-size2">size2 : Minim eu minim ea anim.</p>
<p class="has-text-size3">size3 : Sit adipisicing eiusmod consectetur sit qui cupidatat.</p>
<p class="has-text-size4">size4 : Enim qui do ullamco enim et non consectetur labore consectetur ipsum quis magna proident.</p>
<p class="has-text-size5">size5 : Occaecat ex voluptate ea labore labore cillum veniam officia excepteur pariatur Lorem consectetur.</p>
<p class="has-text-size6">size6 : In quis sunt esse esse aute ullamco laborum.</p>
<!-- 한글 description 사용 시 size6 이하 사용하지 않는다. -->
<p class="has-text-size6">size6 : 사용자 비밀번호 저장방식을 선택 합니다. RADIUS서버를 통한 MSCHAPv2 인증을 지원하기 위해서는 NT-Hash를 선택해야 합니다.</p>
<p class="has-text-size7">size7 : Nostrud consectetur excepteur ut duis qui pariatur irure eiusmod non Lorem aliquip id eiusmod.</p>
</div>
Et irure non laborum dolor esse reprehenderit occaecat.
Lorem quis quis proident eiusmod nostrud minim velit minim.
Duis consectetur veniam deserunt amet commodo labore aute sunt amet qui minim nulla sunt labore.
Irure esse nulla qui nulla sint laboris qui labore.
Amet ullamco mollit mollit qui velit quis dolore minim fugiat tempor ea labore.
<p class="is-weight-light">Et irure non laborum dolor esse reprehenderit occaecat.</p>
<p class="is-weight-normal">Lorem quis quis proident eiusmod nostrud minim velit minim.</p>
<p class="is-weight-medium">Duis consectetur veniam deserunt amet commodo labore aute sunt amet qui minim nulla sunt labore.</p>
<p class="is-weight-semibold">Irure esse nulla qui nulla sint laboris qui labore.</p>
<p class="is-weight-bold">Amet ullamco mollit mollit qui velit quis dolore minim fugiat tempor ea labore.</p>
<span class="has-text-primary">has-text-primary</span>
<span class="has-color-primary">has-color-primary</span>
<span class="has-text-success">has-text-success</span>
<span class="has-color-success">has-color-success</span>
<span class="has-text-warning">has-text-warning</span>
<span class="has-color-warning">has-color-warning</span>
<span class="has-text-danger">has-text-danger</span>
<span class="has-color-danger">has-color-danger</span>
<span class="has-text-info">has-text-info</span>
<span class="has-color-info">has-color-info</span>
<span class="has-text-dark">has-text-dark</span>
<span class="has-color-dark">has-color-dark</span>
<span class="has-text-light">has-text-light</span>
<span class="has-color-light">has-color-light</span>
<div class="gn-box has-border-primary">has-border-primary</div>
<div class="gn-box has-border-success">has-border-success</div>
<div class="gn-box has-border-warning">has-border-warning</div>
<div class="gn-box has-border-danger">has-border-danger</div>
<div class="gn-box has-border-info">has-border-info</div>
<div class="gn-box has-border-dark">has-border-dark</div>
<div class="gn-box has-border-light">has-border-light</div>
<span class="gn-tag is-help">help</span>
<span class="gn-tag is-wait">wait</span>
<span class="gn-tag is-not-allowed">not-allowed</span>
<span class="gn-tag is-pointer">pointer</span>
<span class="gn-tag is-move">move</span>
<span class="gn-tag is-text">text</span>
Content goes here...
More content...
More content...
More content...
More content...
More content...
Even more content...
Even more content...
Even more content...
Even more content...
Even more content...
<div class="has-min-scroll" style="height: 200px; overflow: scroll;">
<p>Content goes here...</p>
<br />
<br />
<p>More content...</p>
<p>More content...</p>
<p>More content...</p>
<p>More content...</p>
<p>More content...</p>
<br />
<br />
<br />
<p>Even more content...</p>
<p>Even more content...</p>
<p>Even more content...</p>
<p>Even more content...</p>
<p>Even more content...</p>
</div>
divExcepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.
Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.
Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.
<div class="gn-box">
<p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>
<div class="gn-box is-borderless">
<p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>
<div class="gn-box-no-line">
<p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>
span<span class="gn-icon">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-small">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-medium">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-large">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-circle is-large">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-circle is-danger">
<i class="fas fa-copy"></i>
</span>
<span class="gn-icon is-circle is-warning">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect is-danger">
<i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect is-warning">
<i class="fas fa-box-open"></i>
</span>
<span class="gn-icon is-success">
<i class="fas fa-check-circle"></i>
</span>
<span class="gn-icon is-warning">
<i class="fas fa-exclamation-triangle"></i>
</span>
<span class="gn-icon is-danger">
<i class="fas fa-smoking-ban"></i>
</span>
<span class="gn-icon is-info">
<i class="fas fa-info-circle"></i>
</span>
<span class="gn-icon is-disabled">
<i class="fas fa-info-circle"></i>
</span>
<span class="gn-icon is-mono" role="button">
<i class="fas fa-trash"></i>
</span>
<span class="gn-icon is-warning" role="button">
<i class="fas fa-plus"></i>
</span>
<span class="gn-icon is-info" role="button">
<i class="fas fa-thumbtack"></i>
</span>
<span class="gn-icon is-info" role="button">
<i class="far fa-copy"></i>
</span>
<span class="gn-icon is-mono is-rect is-outline" role="button">
<i class="fas fa-trash"></i>
</span>
<span class="gn-icon is-warning is-rect is-outline" role="button">
<i class="fas fa-plus"></i>
</span>
<span class="gn-icon is-info is-rect is-outline" role="button">
<i class="fas fa-thumbtack"></i>
</span>
<span class="gn-icon is-link is-rect is-outline" role="button">
<i class="far fa-copy"></i>
</span>
<span class="gn-flag ac">
</span>
<span class="gn-flag ko">
</span>
<span class="gn-flag us">
</span>
<span class="gn-flag jp">
</span>
<span class="gn-flag cn">
</span>
<span class="gn-icon-ext"><span>TXT</span></span>
<span class="gn-icon-ext"><span>DOC</span></span>
<span class="gn-icon-ext"><span>GIF</span></span>
<span class="gn-icon-ext"><span>JPG</span></span>
<span class="gn-icon-ext is-large"><span>TXT</span></span>
<span class="gn-icon-ext is-large"><span>DOC</span></span>
<span class="gn-icon-ext is-large"><span>GIF</span></span>
<span class="gn-icon-ext is-large"><span>JPG</span></span>
레이아웃에 영향을 주지 않게하기 위해서 사전 사이즈 정의가 필요$imgSizes 에 추가하여 사용
<div class="gn-image is-12">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-24">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-36">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-48">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-60">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-96">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-60 is-round">
<img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-4x2">
<img src="../../../assets/image.png" alt="polar bear">
</div>
ul, ol<ul class="gn-list">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li class="is-center">Centered Text</li>
</ul>
<ul class="gn-list is-small">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Centered Text</li>
</ul>
<ul class="gn-list is-medium">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Centered Text</li>
</ul>
<ul class="gn-list is-large">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Centered Text</li>
</ul>
<ul class="gn-list is-border is-inline-block">
<li>is-border</li>
<li>is-border</li>
<li>is-border</li>
</ul>
<ul class="gn-list is-stripe is-inline-block">
<li>is-stripe</li>
<li>is-stripe</li>
<li>is-stripe</li>
</ul>
<ul class="gn-list is-borderless is-inline-block">
<li>is-borderless</li>
<li>is-borderless</li>
<li>is-borderless</li>
</ul>
<ul class="gn-list is-border is-stripe is-inline-block">
<li>is-border is-stripe</li>
<li>is-border is-stripe</li>
<li>is-border is-stripe</li>
</ul>
<ul class="gn-list is-borderless is-stripe is-inline-block">
<li>is-borderless is-stripe</li>
<li>is-borderless is-stripe</li>
<li>is-borderless is-stripe</li>
</ul>
<ul class="gn-list is-inline-block" style="width: 49%">
<li>첫번째 리스트</li>
<li>display inline-block으로 표기</li>
<li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
</ul>
<ul class="gn-list is-inline-block is-clickable" style="width: 49%">
<li>두번째 리스트</li>
<li>display inline-block으로 표기</li>
<li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
</ul>
<ul class="gn-list">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Nested item
<ul class="gn-list">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
</ul>
</li>
<li>Commodo duis anim excepteur qui.</li>
</ul>
<ol class="gn-list has-number">
<li>Ad nisi excepteur nostrud in.</li>
<li>Commodo duis anim excepteur qui.</li>
<li>Voluptate pariatur magna proiAliquip ea exercitation culpa exercitation elit nostrud eiusmod exercitation.Officia incididunt nulla ad sint ea id irure.dent nisi ex tempor enim mollit.</li>
</ol>
<dl class="gn-list is-border has-divid">
<dt>Genian NAC</dt>
<dd>BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'</dd>
<dt>Genian Insights E</dt>
<dd>내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션</dd>
<dt>Genian GPI</dt>
<dd>PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'</dd>
</dl>
<dl class="gn-list is-border is-stripe is-inline-block">
<dt>제목</dt>
<dd>기생충</dd>
<dt>개봉일</dt>
<dd>2019년 5월 30일 (대한민국)</dd>
<dt>감독</dt>
<dd>봉준호</dd>
<dt>수상</dt>
<dd>아카데미 작품상, 황금종려상, 아카데미 감독상...</dd>
</dl>
<div style="display: inline-block; width: 50%">
<dl class="gn-list is-arrange is-borderless">
<dt>제목</dt>
<dd>기생충</dd>
</dl>
<dl class="gn-list is-arrange is-borderless">
<dt>개봉일</dt>
<dd>2019년 5월 30일 (대한민국)</dd>
</dl>
<dl class="gn-list is-arrange is-borderless">
<dt>감독</dt>
<dd>봉준호</dd>
</dl>
<dl class="gn-list is-arrange is-borderless">
<dt>수상</dt>
<dd>아카데미 작품상, 황금종려상, 아카데미 감독상...Sunt pariatur proident id ipsum magna qui nulla esse sunt fugiat deserunt.</dd>
</dl>
</div>
| thead | thead | thead | thead |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 1 | 2 | 3 | 4 |
| 1 | 2 | 3 | 4 |
| 하나 | 둘 | 셋 | 넷 |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| thead | thead | thead | thead |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 1 | 2 | 3 | 4 |
<table class="gn-table is-full">
<thead>
<tr>
<th>thead</th>
<th>thead</th>
<th>thead</th>
<th>thead</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</tbody>
</table>
<table class="gn-table is-thead2 is-full">
<thead>
<tr>
<th>하나</th>
<th>둘</th>
<th>셋</th>
<th>넷</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</tbody>
</table>
<table class="gn-table is-thead3 is-full">
<thead>
<tr>
<th>thead</th>
<th>thead</th>
<th>thead</th>
<th>thead</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</tbody>
</table>
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
<table class="gn-table is-full">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr class="is-primary-light">
<td>5</td>
<td>6</td>
<td class="is-primary">7</td>
<td>8</td>
</tr>
<tr class="is-primary-light">
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
<table class="gn-table is-full">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr class="is-danger-light">
<td>5</td>
<td>6</td>
<td class="is-danger">7</td>
<td>8</td>
</tr>
<tr class="is-success-light">
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
<table class="gn-table is-full is-border is-stripe">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
<table class="gn-table is-full">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr class="is-hover">
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
span, label, a<span class="gn-tag">Tag</span>
<a class="gn-tag">Anchor</a>
<label class="gn-tag">Label</label>
<span class="gn-tag is-small">Small</span>
<span class="gn-tag is-normal">Normal</span>
<span class="gn-tag is-medium">Medium</span>
<span class="gn-tag is-large">Large</span>
<span class="gn-tag is-success">Success</span>
<span class="gn-tag is-success-light">Light Success</span>
<span class="gn-tag is-warning">Warning</span>
<span class="gn-tag is-warning-light">Light Warning</span>
<span class="gn-tag is-danger">Danger</span>
<span class="gn-tag is-danger-light">Light Danger</span>
<span class="gn-tag is-info">Info</span>
<span class="gn-tag is-info-light">Light Info</span>
<span class="gn-tag is-success is-round">Round</span>
<span class="gn-tag is-danger is-outline">Outline</span>
<span class="gn-tag is-success is-disabled">Disabled</span>
<span class="gn-tag">
<span class="gn-icon is-small">
<i class="fas fa-hashtag"></i>
</span>
보안
</span>
<span class="gn-tag">
<span class="gn-icon is-small">
<i class="fas fa-hashtag"></i>
</span>
네트워크
</span>
<span class="gn-tag is-danger">
랜썸웨어
<span class="gn-icon is-small">
<i class="fas fa-times"></i>
</span>
</span>
h1 ~ h6, p<h1 class="gn-title">Genian NAC</h1>
<h2 class="gn-sub-title">BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'</h2>
내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'
내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'
내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'
<h1 class="gn-title is-size1">Genian Insights E</h1>
<h2 class="gn-title is-size2">Genian Insights E</h2>
<h3 class="gn-title is-size3">Genian Insights E</h3>
<h4 class="gn-title is-size4">Genian Insights E</h4>
<h5 class="gn-title is-size5">Genian Insights E</h5>
<p class="gn-sub-title">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>
<p class="gn-sub-title is-size6">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>
<p class="gn-sub-title is-size7">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>
<h1 class="gn-title is-border">Genian GPI</h1>
<h2 class="gn-sub-title">PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'</h2>
div, main, navibar, section 등Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.
<div class="gn-container">
<p>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</p>
</div>
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
<div class="gn-container is-max">
<table class="gn-table is-stripe">
<tr>
<td class="is-nowrap">Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td class="is-nowrap">Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
<tr>
<td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
<tr>
<td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
</table>
</div>
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
| Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. | Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem. |
<div class="gn-container has-padding">
<table class="gn-table is-stripe">
<tr>
<td class="is-nowrap">Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td class="is-nowrap">Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
<tr>
<td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
<tr>
<td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
<td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
</tr>
</table>
</div>
<div class="gn-grid">
<div class="gn-column" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
<div class="gn-column" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
<div class="gn-column" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
<div class="gn-column" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>
<div class="gn-grid">
<div class="gn-column is-1" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
<div class="gn-column is-3" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
<div class="gn-column is-5" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
<div class="gn-column is-3" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>
<div class="gn-grid is-center">
<div class="gn-column is-2" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
<div class="gn-column is-2" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
<div class="gn-column is-2" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
<div class="gn-column is-2" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>
<div class="gn-grid is-vcenter">
<div class="gn-column is-1" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
<div class="gn-column is-3" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
<div class="gn-column is-5" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
<div class="gn-column is-3" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>
HOME
Reprehenderit fugiat et ex Lorem deserunt non. Nulla anim enim dolore nulla quis in dolore proident minim. Consequat sint reprehenderit cupidatat ipsum irure excepteur fugiat. Officia nulla duis cupidatat cupidatat velit laborum aliquip in eu eu nisi laboris veniam eiusmod.
Quis exercitation aliqua do voluptate duis duis nostrud qui eiusmod. Tempor nostrud eu ut anim labore. Occaecat aliqua sit voluptate esse. Eiusmod in ea minim labore quis aliquip excepteur anim excepteur consequat duis. Ut adipisicing incididunt mollit ullamco eu minim sint deserunt eiusmod magna sit nulla irure. Aliquip magna excepteur officia aute laboris magna mollit cillum eiusmod laborum ut duis.
Adipisicing voluptate non ullamco ex cupidatat ad cillum qui adipisicing ullamco consectetur magna cupidatat commodo. Anim ex culpa deserunt duis sit esse aliqua. Culpa sit cillum ipsum culpa pariatur anim sunt velit voluptate deserunt ut voluptate id excepteur. Eu laborum excepteur dolor cupidatat occaecat esse. Ullamco consequat labore consequat consectetur quis consequat sint nostrud adipisicing consequat proident veniam ut et. Sint non laboris veniam voluptate exercitation commodo laborum adipisicing sint.
Proident irure veniam ipsum dolore mollit culpa ut ex laboris id ad culpa ullamco proident. Aute reprehenderit et eu anim est et. Cillum est incididunt eu irure ut consectetur culpa commodo. Incididunt eiusmod excepteur in do magna dolor voluptate eiusmod veniam qui tempor. Lorem fugiat minim pariatur veniam ut adipisicing velit elit quis cillum.
Aliquip laborum id ut fugiat commodo fugiat minim. Aute ea ea laborum minim duis occaecat proident dolore non. Aliqua amet qui officia officia magna irure aliqua eiusmod duis. Proident sint fugiat incididunt labore anim. Magna in aliqua irure aute aute amet magna sunt labore exercitation qui. Labore sunt dolore tempor exercitation id.
<div class="gn-grid">
<div class="gn-column">
<div class="gn-box is-clearfix has-color-primary">
<div class="is-float-left">
<div class="gn-control has-arrange">
<button type="button" class="gn-button is-invert">
<span class="gn-icon">
<i class="fas fa-subway"></i>
</span>
Subway
</button>
<button type="button" class="gn-button is-invert">
<span class="gn-icon">
<i class="fas fa-laptop-code"></i>
</span>
Code
</button>
<button type="button" class="gn-button is-invert">
<span class="gn-icon">
<i class="fas fa-images"></i>
</span>
Images
</button>
<div class="gn-plain is-primary">
<span class="gn-icon">
<i class="fas fa-box"></i>
</span>
</div>
<div class="gn-dropdown">
<div class="dropdown-label">
선택하세요
<span class="gn-icon dropdown-icon">
<i class="fas fa-angle-down"></i>
</span>
</div>
<div class="dropdown-items">
<ul>
<li class="dropdown-item">아이템 1</li>
<li class="dropdown-item">아이템 2</li>
<li class="dropdown-item">아이템 3</li>
</ul>
</div>
</div>
</div>
</div>
<div class="is-float-right">
<div class="gn-control has-icon-right">
<span class="gn-icon is-right">
<i class="fas fa-search"></i>
</span>
<input type="text" class="gn-input" placeholder="input text">
</div>
</div>
</div>
</div>
</div>
<div class="gn-grid">
<div class="gn-column is-2 has-color-dark">
<div class="gn-container has-padding">
<div class="gn-tree">
<p class="tree-label">
<span class="gn-icon is-small">
<i class="fas fa-home"></i>
</span>
HOME
</p>
<ul>
<li>Genians</li>
<li>R&D Center</li>
<li>Front-end</li>
<li>GNUI
<ul>
<li>Genians</li>
<li>R&D Center</li>
<li>Front-end</li>
<li>GNUI</li>
</ul>
</li>
<li>GNUI core</li>
</ul>
</div>
</div>
</div>
<div class="gn-column">
<div class="gn-container has-padding">
<p>Reprehenderit fugiat et ex Lorem deserunt non. Nulla anim enim dolore nulla quis in dolore proident minim. Consequat sint reprehenderit cupidatat ipsum irure excepteur fugiat. Officia nulla duis cupidatat cupidatat velit laborum aliquip in eu eu nisi laboris veniam eiusmod.</p>
<p>Quis exercitation aliqua do voluptate duis duis nostrud qui eiusmod. Tempor nostrud eu ut anim labore. Occaecat aliqua sit voluptate esse. Eiusmod in ea minim labore quis aliquip excepteur anim excepteur consequat duis. Ut adipisicing incididunt mollit ullamco eu minim sint deserunt eiusmod magna sit nulla irure. Aliquip magna excepteur officia aute laboris magna mollit cillum eiusmod laborum ut duis.</p>
<p>Adipisicing voluptate non ullamco ex cupidatat ad cillum qui adipisicing ullamco consectetur magna cupidatat commodo. Anim ex culpa deserunt duis sit esse aliqua. Culpa sit cillum ipsum culpa pariatur anim sunt velit voluptate deserunt ut voluptate id excepteur. Eu laborum excepteur dolor cupidatat occaecat esse. Ullamco consequat labore consequat consectetur quis consequat sint nostrud adipisicing consequat proident veniam ut et. Sint non laboris veniam voluptate exercitation commodo laborum adipisicing sint.</p>
<p>Proident irure veniam ipsum dolore mollit culpa ut ex laboris id ad culpa ullamco proident. Aute reprehenderit et eu anim est et. Cillum est incididunt eu irure ut consectetur culpa commodo. Incididunt eiusmod excepteur in do magna dolor voluptate eiusmod veniam qui tempor. Lorem fugiat minim pariatur veniam ut adipisicing velit elit quis cillum.</p>
<p>Aliquip laborum id ut fugiat commodo fugiat minim. Aute ea ea laborum minim duis occaecat proident dolore non. Aliqua amet qui officia officia magna irure aliqua eiusmod duis. Proident sint fugiat incididunt labore anim. Magna in aliqua irure aute aute amet magna sunt labore exercitation qui. Labore sunt dolore tempor exercitation id.</p>
</div>
</div>
</div>
<div id="horizontal-splitter" style="height: 300px">
<div id="frame1">
HORIZONTAL TOP PANEL
</div>
<div id="frame2">
<div id="vertical-splitter" style="height: 100%">
<div id="frame3">
VERTICAL LEFT PANEL
</div>
<div id="frame4">
VERTICAL RIGHT PANEL
</div>
</div>
</div>
</div>
Gn.create('splitter', {
target: '#horizontal-splitter',
panel: ['#frame1','#frame2'],
position: '30%',
onDrag: function(e) {
console.log('dragging');
},
onDragStart: function(e) {
console.log('drag start');
},
onDragEnd: function(e) {
console.log('drag End');
}
});
Gn.create('splitter', {
target: '#vertical-splitter',
panel: ['#frame3','#frame4'],
space: 20,
orientation: 'vertical'
});
| name | type | default | description | |
|---|---|---|---|---|
| target | string | 화면 분할 객체 선택자(selector) | ||
| orientation | string | horizontal | 화면분할 방향 (vertical | horizontal) | |
| space | number | 0 | 패널영역 여백(padding) | |
| minPosition | number | 30 | 축소 시 최소 사이즈 (space가 존재하는 경우 합산하여 적용됨) | |
| position | number, string | 50% | 생성 시 분할 핸들의 위치 | |
| panel | array(2) [ 'selector','selector' ] | 분할된 컨텐츠 객체 선택자(selector) | ||
| onDrag | function | 핸들 드래그 이벤트 | ||
| onDragStart | function | 핸들 드래그 시작 이벤트 | ||
| onDragEnd | function | 핸들 드래그 종료 이벤트 | ||