gnui 1.2.16 → 1.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/js/gnui.esm.js +772 -111
- package/dist/js/gnui.js +772 -111
- package/dist/js/gnui.min.js +6 -6
- package/dist/styles/default.css +1018 -108
- package/dist/styles/gpi.css +1018 -108
- package/dist/styles/green24.css +1229 -289
- package/dist/styles/insights.css +1018 -108
- package/dist/styles/nac.css +1019 -109
- package/dist/styles/ztnac.css +1205 -265
- package/package.json +2 -2
- package/styleguide/assets/components.js +216 -9
- package/styleguide/assets/js/gnui.js +772 -111
- package/styleguide/assets/js/gnui.min.js +6 -6
- package/styleguide/assets/styles/default.css +1018 -108
- package/styleguide/assets/styles/gpi.css +1018 -108
- package/styleguide/assets/styles/green24.css +1229 -289
- package/styleguide/assets/styles/insights.css +1018 -108
- package/styleguide/assets/styles/nac.css +1019 -109
- package/styleguide/assets/styles/ztnac.css +1205 -265
- package/styleguide/category/COLOR/index.html +2 -2
- package/styleguide/category/COMPONENT/Alert(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Bignumber/index.html +2 -2
- package/styleguide/category/COMPONENT/Breadcrumb/index.html +2 -2
- package/styleguide/category/COMPONENT/Calendar(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Card/index.html +2 -2
- package/styleguide/category/COMPONENT/Chart(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Datagrid(js)/index.html +136 -9
- package/styleguide/category/COMPONENT/Datalist(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Growl(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/JsonView(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Loader(js)/index.html +21 -4
- package/styleguide/category/COMPONENT/MenuButton(js)/index.html +74 -6
- package/styleguide/category/COMPONENT/Message(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Modal(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Pagination(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Panel/index.html +2 -2
- package/styleguide/category/COMPONENT/Progressbar(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Tab(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Tagcloud(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Tooltip(js)/index.html +2 -2
- package/styleguide/category/COMPONENT/Tree(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Button(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Checkbox/index.html +2 -2
- package/styleguide/category/CONTROLS/Colorpicker(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Datepicker(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Dropdown(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/File/index.html +2 -2
- package/styleguide/category/CONTROLS/Form/Control/index.html +2 -2
- package/styleguide/category/CONTROLS/Form/Field/index.html +2 -2
- package/styleguide/category/CONTROLS/Form/Plain/index.html +2 -2
- package/styleguide/category/CONTROLS/Input/index.html +2 -2
- package/styleguide/category/CONTROLS/MultiText(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Picklist(js)/index.html +28 -18
- package/styleguide/category/CONTROLS/Radio/index.html +2 -2
- package/styleguide/category/CONTROLS/Select/index.html +2 -2
- package/styleguide/category/CONTROLS/SelectButton(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Slider/index.html +2 -2
- package/styleguide/category/CONTROLS/SortableList(js)/index.html +487 -0
- package/styleguide/category/CONTROLS/Switch(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/SyntaxInput(js)/index.html +2 -2
- package/styleguide/category/CONTROLS/Textarea/index.html +2 -2
- package/styleguide/category/CONTROLS/Time(js)/index.html +2 -2
- package/styleguide/category/ELEMENTS/Box/index.html +2 -2
- package/styleguide/category/ELEMENTS/Icon/index.html +2 -2
- package/styleguide/category/ELEMENTS/Image/index.html +2 -2
- package/styleguide/category/ELEMENTS/List/index.html +2 -2
- package/styleguide/category/ELEMENTS/Table/index.html +2 -2
- package/styleguide/category/ELEMENTS/Tag/index.html +2 -2
- package/styleguide/category/ELEMENTS/Title/index.html +2 -2
- package/styleguide/category/LAYOUT/Container/index.html +2 -2
- package/styleguide/category/LAYOUT/Grid/index.html +2 -2
- package/styleguide/category/LAYOUT/Splitter(js)/index.html +2 -2
- package/styleguide/category/UTILITY/index.html +2 -2
- package/styleguide/category/Utils/index.html +2 -2
- package/styleguide/color.html +2 -2
- package/styleguide/index.html +2 -2
- package/styleguide/tag/javascript/index.html +608 -31
- package/styleguide/tag/v.0.1.0/index.html +608 -31
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
transform: translateX(100%);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
.gn-container:not(:last-child), .gn-tagcloud:not(:last-child), .gn-tab:not(:last-child), .gn-progressbar:not(:last-child), .gn-picklist:not(:last-child), .gn-panel-3:not(:last-child), .gn-panel-2:not(:last-child), .gn-pagination:not(:last-child), .gn-message:not(:last-child), .gn-jsonview .jsonview-header:not(:last-child), .gn-growl:not(:last-child), .gn-gcolor:not(:last-child), .gn-card:not(:last-child), .gn-breadcrumb:not(:last-child), .gn-bignumber:not(:last-child), .gn-alert:not(:last-child), .gn-slider:not(:last-child), .gn-multitext:not(:last-child), .gn-field:not(:last-child), .gn-title:not(:last-child),
|
|
21
|
+
.gn-container:not(:last-child), .gn-tagcloud:not(:last-child), .gn-tab:not(:last-child), .gn-progressbar:not(:last-child), .gn-sortablelist:not(:last-child), .gn-picklist:not(:last-child), .gn-panel-3:not(:last-child), .gn-panel-2:not(:last-child), .gn-pagination:not(:last-child), .gn-message:not(:last-child), .gn-jsonview .jsonview-header:not(:last-child), .gn-growl:not(:last-child), .gn-gcolor:not(:last-child), .gn-card:not(:last-child), .gn-breadcrumb:not(:last-child), .gn-bignumber:not(:last-child), .gn-alert:not(:last-child), .gn-slider:not(:last-child), .gn-multitext:not(:last-child), .gn-field:not(:last-child), .gn-title:not(:last-child),
|
|
22
22
|
.gn-sub-title:not(:last-child), .gn-table:not(:last-child), .gn-list:not(:last-child), .gn-box-no-line:not(:last-child), .gn-box:not(:last-child) {
|
|
23
23
|
margin-bottom: 1rem;
|
|
24
24
|
}
|
|
@@ -2670,7 +2670,7 @@ tag:
|
|
|
2670
2670
|
}
|
|
2671
2671
|
.gn-icon-ext::before {
|
|
2672
2672
|
content: "\f15b";
|
|
2673
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free";
|
|
2673
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
2674
2674
|
font-weight: 300;
|
|
2675
2675
|
font-size: 1.6rem;
|
|
2676
2676
|
}
|
|
@@ -4179,10 +4179,6 @@ tag:
|
|
|
4179
4179
|
display: block;
|
|
4180
4180
|
word-break: break-word;
|
|
4181
4181
|
}
|
|
4182
|
-
.gn-title:not(:last-child),
|
|
4183
|
-
.gn-sub-title:not(:last-child) {
|
|
4184
|
-
margin-bottom: 1rem;
|
|
4185
|
-
}
|
|
4186
4182
|
|
|
4187
4183
|
.gn-title {
|
|
4188
4184
|
color: hsl(0, 0%, 21%);
|
|
@@ -5452,6 +5448,7 @@ compile: true
|
|
|
5452
5448
|
```ejs
|
|
5453
5449
|
<button name="new-button"></button>
|
|
5454
5450
|
<button name="new-button2"></button>
|
|
5451
|
+
<button name="new-button-submenu">편집 메뉴</button>
|
|
5455
5452
|
```
|
|
5456
5453
|
|
|
5457
5454
|
````
|
|
@@ -5491,6 +5488,51 @@ compile: true
|
|
|
5491
5488
|
value: 'menu2'
|
|
5492
5489
|
}]
|
|
5493
5490
|
});
|
|
5491
|
+
// 서브메뉴 예시
|
|
5492
|
+
Gn.create('menubutton', {
|
|
5493
|
+
target: 'button[name=new-button-submenu]',
|
|
5494
|
+
size: 'normal',
|
|
5495
|
+
textSets: {
|
|
5496
|
+
buttonText: '편집 메뉴'
|
|
5497
|
+
},
|
|
5498
|
+
onSelect: function (value, text, menu, e) {
|
|
5499
|
+
console.log('선택된 메뉴:', { value: value, text: text, menu: menu });
|
|
5500
|
+
},
|
|
5501
|
+
data: [
|
|
5502
|
+
{
|
|
5503
|
+
text: '파일',
|
|
5504
|
+
value: 'file',
|
|
5505
|
+
child: [
|
|
5506
|
+
{ text: '새 파일', value: 'file-new' },
|
|
5507
|
+
{ text: '열기', value: 'file-open' },
|
|
5508
|
+
{
|
|
5509
|
+
text: '최근 파일',
|
|
5510
|
+
value: 'file-recent',
|
|
5511
|
+
child: [
|
|
5512
|
+
{ text: 'document.txt', value: 'file-recent-1' },
|
|
5513
|
+
{ text: 'image.png', value: 'file-recent-2' }
|
|
5514
|
+
]
|
|
5515
|
+
},
|
|
5516
|
+
{ text: '저장', value: 'file-save', disabled: true },
|
|
5517
|
+
{ text: '다른 이름으로 저장', value: 'file-saveas' }
|
|
5518
|
+
]
|
|
5519
|
+
},
|
|
5520
|
+
{
|
|
5521
|
+
text: '편집',
|
|
5522
|
+
value: 'edit',
|
|
5523
|
+
actived: true,
|
|
5524
|
+
child: [
|
|
5525
|
+
{ text: '실행 취소', value: 'edit-undo' },
|
|
5526
|
+
{ text: '다시 실행', value: 'edit-redo' }
|
|
5527
|
+
]
|
|
5528
|
+
},
|
|
5529
|
+
{
|
|
5530
|
+
text: '도움말',
|
|
5531
|
+
value: 'help',
|
|
5532
|
+
disabled: true
|
|
5533
|
+
}
|
|
5534
|
+
]
|
|
5535
|
+
});
|
|
5494
5536
|
````
|
|
5495
5537
|
|
|
5496
5538
|
|
|
@@ -5547,15 +5589,21 @@ compile: true
|
|
|
5547
5589
|
</tr>
|
|
5548
5590
|
<tr>
|
|
5549
5591
|
<td colspan="2">data</td>
|
|
5550
|
-
<td>Array[{value, text,
|
|
5592
|
+
<td>Array[{value, text, html, child, disabled, actived}]</td>
|
|
5551
5593
|
<td></td>
|
|
5552
|
-
<td>메뉴 목록에 출력할
|
|
5594
|
+
<td>메뉴 목록에 출력할 목록<br/>- value: 메뉴 값<br/>- text: 메뉴 텍스트<br/>- html: HTML로 렌더링할 내용<br/>- child: 하위 메뉴 배열 (최대 2단계)<br/>- disabled: 비활성화 여부 (boolean)<br/>- actived: 활성화 상태 표시 여부</td>
|
|
5595
|
+
</tr>
|
|
5596
|
+
<tr>
|
|
5597
|
+
<td colspan="2">disabled</td>
|
|
5598
|
+
<td>boolean</td>
|
|
5599
|
+
<td>false</td>
|
|
5600
|
+
<td>버튼 비활성화 여부</td>
|
|
5553
5601
|
</tr>
|
|
5554
5602
|
<tr>
|
|
5555
5603
|
<td colspan="2">onSelect</td>
|
|
5556
|
-
<td>function(value, text)</td>
|
|
5604
|
+
<td>function(value, text, menu, e)</td>
|
|
5557
5605
|
<td></td>
|
|
5558
|
-
<td>메뉴 선택 시 수행될
|
|
5606
|
+
<td>메뉴 선택 시 수행될 이벤트<br/>- value: 선택된 메뉴의 값<br/>- text: 선택된 메뉴의 텍스트<br/>- menu: 선택된 메뉴 객체<br/>- e: MouseEvent 객체</td>
|
|
5559
5607
|
</tr>
|
|
5560
5608
|
</tbody>
|
|
5561
5609
|
</table>
|
|
@@ -5574,6 +5622,21 @@ compile: true
|
|
|
5574
5622
|
<td>void</td>
|
|
5575
5623
|
<td>버튼명을 변경한다.</td>
|
|
5576
5624
|
</tr>
|
|
5625
|
+
<tr>
|
|
5626
|
+
<td>reRender(data: Array)</td>
|
|
5627
|
+
<td>void</td>
|
|
5628
|
+
<td>메뉴 데이터를 전달받아 DOM을 다시 생성한다.</td>
|
|
5629
|
+
</tr>
|
|
5630
|
+
<tr>
|
|
5631
|
+
<td>disabled()</td>
|
|
5632
|
+
<td>void</td>
|
|
5633
|
+
<td>버튼을 비활성화한다.</td>
|
|
5634
|
+
</tr>
|
|
5635
|
+
<tr>
|
|
5636
|
+
<td>enabled()</td>
|
|
5637
|
+
<td>void</td>
|
|
5638
|
+
<td>버튼을 활성화한다.</td>
|
|
5639
|
+
</tr>
|
|
5577
5640
|
</tbody>
|
|
5578
5641
|
</table>
|
|
5579
5642
|
*/
|
|
@@ -5661,6 +5724,47 @@ compile: true
|
|
|
5661
5724
|
color: #fff;
|
|
5662
5725
|
background-color: #00b3af;
|
|
5663
5726
|
}
|
|
5727
|
+
.gn-menuButton .menuButton-menu.is-disabled {
|
|
5728
|
+
pointer-events: none;
|
|
5729
|
+
opacity: 0.5;
|
|
5730
|
+
}
|
|
5731
|
+
.gn-menuButton .menuButton-menu.is-actived {
|
|
5732
|
+
background-color: hsl(0, 0%, 100%);
|
|
5733
|
+
}
|
|
5734
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-content {
|
|
5735
|
+
display: flex;
|
|
5736
|
+
align-items: center;
|
|
5737
|
+
justify-content: space-between;
|
|
5738
|
+
width: 100%;
|
|
5739
|
+
}
|
|
5740
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-arrow {
|
|
5741
|
+
margin-left: 10px;
|
|
5742
|
+
display: inline-flex;
|
|
5743
|
+
align-items: center;
|
|
5744
|
+
}
|
|
5745
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu {
|
|
5746
|
+
display: none;
|
|
5747
|
+
position: absolute;
|
|
5748
|
+
left: 100%;
|
|
5749
|
+
top: 0;
|
|
5750
|
+
min-width: 150px;
|
|
5751
|
+
background-color: hsl(0, 0%, 100%);
|
|
5752
|
+
border: 1px solid hsl(0, 0%, 86%);
|
|
5753
|
+
border-radius: 2px;
|
|
5754
|
+
z-index: 21;
|
|
5755
|
+
padding: 0.35rem;
|
|
5756
|
+
}
|
|
5757
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu {
|
|
5758
|
+
color: hsl(0, 0%, 29%);
|
|
5759
|
+
cursor: pointer;
|
|
5760
|
+
}
|
|
5761
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu:hover {
|
|
5762
|
+
color: #fff;
|
|
5763
|
+
background-color: #00b3af;
|
|
5764
|
+
}
|
|
5765
|
+
.gn-menuButton .menuButton-menu:hover > .menuButton-submenu {
|
|
5766
|
+
display: block;
|
|
5767
|
+
}
|
|
5664
5768
|
.gn-menuButton.is-white button {
|
|
5665
5769
|
color: hsl(0, 0%, 100%);
|
|
5666
5770
|
border-color: hsl(0, 0%, 100%);
|
|
@@ -9446,7 +9550,7 @@ tag:
|
|
|
9446
9550
|
}
|
|
9447
9551
|
.gn-select::after {
|
|
9448
9552
|
content: "\f107";
|
|
9449
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9553
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9450
9554
|
font-weight: 900;
|
|
9451
9555
|
position: absolute;
|
|
9452
9556
|
right: 0.5rem;
|
|
@@ -12608,9 +12712,13 @@ tag:
|
|
|
12608
12712
|
```ejs
|
|
12609
12713
|
<div class="new-grid"></div>
|
|
12610
12714
|
|
|
12611
|
-
<div style="width: 100%; height:
|
|
12715
|
+
<div style="width: 100%; height: 100px; overflow-x: auto; margin-top: 20px;">
|
|
12612
12716
|
<div class="new-grid2"></div>
|
|
12613
12717
|
</div>
|
|
12718
|
+
|
|
12719
|
+
<div style="width: 100%; height: 350px; overflow-x: auto; margin-top: 20px;">
|
|
12720
|
+
<div class="new-grid3"></div>
|
|
12721
|
+
</div>
|
|
12614
12722
|
```
|
|
12615
12723
|
````
|
|
12616
12724
|
Gn.create('datagrid', {
|
|
@@ -12723,19 +12831,122 @@ Gn.create('datagrid', {
|
|
|
12723
12831
|
})
|
|
12724
12832
|
Gn.create('datagrid', {
|
|
12725
12833
|
target: '.new-grid2',
|
|
12834
|
+
headers: [
|
|
12835
|
+
{
|
|
12836
|
+
label: 'no',
|
|
12837
|
+
key: 'number',
|
|
12838
|
+
onSelect: function () {
|
|
12839
|
+
// eslint-disable-next-line prefer-rest-params
|
|
12840
|
+
console.log(arguments);
|
|
12841
|
+
},
|
|
12842
|
+
template: function (k, d) {
|
|
12843
|
+
return '<span>' + d[k] + '</span>';
|
|
12844
|
+
},
|
|
12845
|
+
draggable: true,
|
|
12846
|
+
sortable: true,
|
|
12847
|
+
sort: 'asc'
|
|
12848
|
+
},
|
|
12849
|
+
{
|
|
12850
|
+
label: '제목',
|
|
12851
|
+
key: 'title',
|
|
12852
|
+
style: {
|
|
12853
|
+
width: '250px'
|
|
12854
|
+
},
|
|
12855
|
+
className: 'has-text-right',
|
|
12856
|
+
draggable: true,
|
|
12857
|
+
bodyClass: 'has-text-left',
|
|
12858
|
+
sortable: true
|
|
12859
|
+
},
|
|
12860
|
+
{
|
|
12861
|
+
label: '날짜',
|
|
12862
|
+
key: 'date',
|
|
12863
|
+
style: {
|
|
12864
|
+
width: '150px'
|
|
12865
|
+
},
|
|
12866
|
+
className: 'has-text-center',
|
|
12867
|
+
bodyClass: 'has-text-left'
|
|
12868
|
+
}
|
|
12869
|
+
],
|
|
12870
|
+
data: [
|
|
12871
|
+
{
|
|
12872
|
+
number: '1',
|
|
12873
|
+
title: '하나',
|
|
12874
|
+
date: '2020-09-19',
|
|
12875
|
+
desc: 'hello, world',
|
|
12876
|
+
child: [
|
|
12877
|
+
{
|
|
12878
|
+
number: '1-1',
|
|
12879
|
+
title: '1-하나',
|
|
12880
|
+
date: '2020-09-19'
|
|
12881
|
+
},
|
|
12882
|
+
{
|
|
12883
|
+
number: '1-2',
|
|
12884
|
+
title: '1-둘',
|
|
12885
|
+
date: '2020-09-19',
|
|
12886
|
+
desc: 'hello, world',
|
|
12887
|
+
child: [
|
|
12888
|
+
{
|
|
12889
|
+
number: '1-2-1',
|
|
12890
|
+
title: '1-둘-1',
|
|
12891
|
+
date: '2020-09-19',
|
|
12892
|
+
desc: 'hello, world',
|
|
12893
|
+
child: [
|
|
12894
|
+
{
|
|
12895
|
+
number: '1-2-1-1',
|
|
12896
|
+
title: '1-둘-1-1',
|
|
12897
|
+
desc: 'hello, world',
|
|
12898
|
+
date: '2020-09-19'
|
|
12899
|
+
}
|
|
12900
|
+
]
|
|
12901
|
+
}
|
|
12902
|
+
]
|
|
12903
|
+
}
|
|
12904
|
+
],
|
|
12905
|
+
color: 'is-danger-light'
|
|
12906
|
+
},
|
|
12907
|
+
{
|
|
12908
|
+
number: '2',
|
|
12909
|
+
title: '둘',
|
|
12910
|
+
date: '2020-09-19',
|
|
12911
|
+
desc: 'hello, world'
|
|
12912
|
+
}
|
|
12913
|
+
],
|
|
12914
|
+
hasHeader: false,
|
|
12915
|
+
hasCheck: true,
|
|
12916
|
+
hasDelete: true,
|
|
12917
|
+
textSets: {
|
|
12918
|
+
deleteConfirmMessage: '파일을 삭제하시겠습니까?'
|
|
12919
|
+
},
|
|
12920
|
+
// onDelete 에서 false 를 반환하면 해당 행 삭제를 취소할 수 있다.
|
|
12921
|
+
onDelete: (data, index) => {
|
|
12922
|
+
console.log(data, index);
|
|
12923
|
+
// 예) 특정 조건에 따라 삭제 취소
|
|
12924
|
+
// if (index === 0) {
|
|
12925
|
+
// return false;
|
|
12926
|
+
// }
|
|
12927
|
+
}
|
|
12928
|
+
})
|
|
12929
|
+
Gn.create('datagrid', {
|
|
12930
|
+
target: '.new-grid3',
|
|
12726
12931
|
headers: [
|
|
12727
12932
|
{
|
|
12728
12933
|
label: 'row data numbers',
|
|
12729
12934
|
key: 'number',
|
|
12730
12935
|
style: { width: '50px' },
|
|
12731
12936
|
sortable: true,
|
|
12732
|
-
draggable: true
|
|
12937
|
+
draggable: true,
|
|
12938
|
+
template: function (k, d) {
|
|
12939
|
+
return '<span>' + d[k] + '</span>';
|
|
12940
|
+
}
|
|
12733
12941
|
},
|
|
12734
12942
|
{
|
|
12735
12943
|
label: '제목',
|
|
12736
12944
|
key: 'title',
|
|
12737
12945
|
sortable: true,
|
|
12738
|
-
draggable: true
|
|
12946
|
+
draggable: true,
|
|
12947
|
+
template: function (k, d) {
|
|
12948
|
+
return '<span>' + d[k] + '</span>';
|
|
12949
|
+
}
|
|
12739
12950
|
},
|
|
12740
12951
|
{
|
|
12741
12952
|
label: '날짜를 표시하는 컬럼입니다',
|
|
@@ -12798,8 +13009,6 @@ Gn.create('datagrid', {
|
|
|
12798
13009
|
paginator: {
|
|
12799
13010
|
rows: 30
|
|
12800
13011
|
},
|
|
12801
|
-
hasDelete: true,
|
|
12802
|
-
fixHeader: true,
|
|
12803
13012
|
onChange: updatedData => {
|
|
12804
13013
|
console.log(updatedData)
|
|
12805
13014
|
}
|
|
@@ -12914,7 +13123,7 @@ Gn.create('datagrid', {
|
|
|
12914
13123
|
<b>color:is-warning-light</b> => 행의 색 변경</td>
|
|
12915
13124
|
</tr>
|
|
12916
13125
|
<tr>
|
|
12917
|
-
<td rowspan="
|
|
13126
|
+
<td rowspan="4">textSets</td>
|
|
12918
13127
|
<td>noData</td>
|
|
12919
13128
|
<td>string</td>
|
|
12920
13129
|
<td>No records available.</td>
|
|
@@ -12932,6 +13141,12 @@ Gn.create('datagrid', {
|
|
|
12932
13141
|
<td></td>
|
|
12933
13142
|
<td>삭제버튼 헤더표시문구</td>
|
|
12934
13143
|
</tr>
|
|
13144
|
+
<tr>
|
|
13145
|
+
<td>deleteConfirmMessage</td>
|
|
13146
|
+
<td>string</td>
|
|
13147
|
+
<td></td>
|
|
13148
|
+
<td>삭제 확인 창 표시문구 - 삭제 버튼 클릭시 확인 창 출력</td>
|
|
13149
|
+
</tr>
|
|
12935
13150
|
<tr>
|
|
12936
13151
|
<td colspan="2">childField</td>
|
|
12937
13152
|
<td>string</td>
|
|
@@ -12956,6 +13171,12 @@ Gn.create('datagrid', {
|
|
|
12956
13171
|
<td>false</td>
|
|
12957
13172
|
<td>삭제버튼 생성 여부</td>
|
|
12958
13173
|
</tr>
|
|
13174
|
+
<tr>
|
|
13175
|
+
<td colspan="2">hasHeader</td>
|
|
13176
|
+
<td>boolean</td>
|
|
13177
|
+
<td>true</td>
|
|
13178
|
+
<td>헤더 생성 여부</td>
|
|
13179
|
+
</tr>
|
|
12959
13180
|
<tr>
|
|
12960
13181
|
<td colspan="2">readonly</td>
|
|
12961
13182
|
<td>boolean</td>
|
|
@@ -13053,6 +13274,12 @@ Gn.create('datagrid', {
|
|
|
13053
13274
|
<td></td>
|
|
13054
13275
|
<td>이동, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러</td>
|
|
13055
13276
|
</tr>
|
|
13277
|
+
<tr>
|
|
13278
|
+
<td colspan="2">onDelete</td>
|
|
13279
|
+
<td>function(deletedData, index)</td>
|
|
13280
|
+
<td>deletedData, index 를 인자로 받으며, false 를 반환하면 해당 행 삭제를 취소한다.</td>
|
|
13281
|
+
<td>삭제 버튼 클릭 시 삭제 대상 데이터와 인덱스를 받을 수 있는 이벤트핸들러<br>onChange 보다 먼저 동작하며, onDelete 에서 false 를 반환하면 실제 삭제 및 onChange 호출이 수행되지 않는다.</td>
|
|
13282
|
+
</tr>
|
|
13056
13283
|
</tbody>
|
|
13057
13284
|
</table>
|
|
13058
13285
|
|
|
@@ -13238,11 +13465,11 @@ Gn.create('datagrid', {
|
|
|
13238
13465
|
}
|
|
13239
13466
|
.gn-datagrid .gn-datagrid-body-row .is-toggler::before {
|
|
13240
13467
|
content: "\f0d7";
|
|
13241
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13468
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13242
13469
|
font-weight: 700;
|
|
13243
13470
|
}
|
|
13244
13471
|
.gn-datagrid .gn-datagrid-body-row.has-child[data-depth="0"] .is-toggler {
|
|
13245
|
-
margin-left: -
|
|
13472
|
+
margin-left: -6px;
|
|
13246
13473
|
}
|
|
13247
13474
|
.gn-datagrid .gn-datagrid-body-row.is-collapsed .is-toggler::before {
|
|
13248
13475
|
content: "\f0da";
|
|
@@ -13442,6 +13669,9 @@ Gn.create('datagrid', {
|
|
|
13442
13669
|
.gn-datagrid.has-left-padding .gn-datagrid-body-row:not(.has-child)[data-depth="0"] .gn-datagrid-body-cell:first-child {
|
|
13443
13670
|
padding-left: 15px;
|
|
13444
13671
|
}
|
|
13672
|
+
.gn-datagrid.is-headless .gn-datagrid-body-row:first-child {
|
|
13673
|
+
border-top: 1px solid hsl(0, 0%, 86%);
|
|
13674
|
+
}
|
|
13445
13675
|
.gn-datagrid .gn-datagrid-header-cell {
|
|
13446
13676
|
border-right: 1px solid hsl(0, 0%, 86%);
|
|
13447
13677
|
padding: 0.55rem;
|
|
@@ -14822,7 +15052,6 @@ tag:
|
|
|
14822
15052
|
}
|
|
14823
15053
|
.gn-dropdown.is-open .dropdown-items {
|
|
14824
15054
|
display: block;
|
|
14825
|
-
max-width: 100%;
|
|
14826
15055
|
}
|
|
14827
15056
|
.gn-dropdown.is-top .dropdown-items {
|
|
14828
15057
|
top: auto;
|
|
@@ -17157,11 +17386,21 @@ tag:
|
|
|
17157
17386
|
<div class="gn-loader is-info"></div>
|
|
17158
17387
|
```
|
|
17159
17388
|
|
|
17389
|
+
```html
|
|
17390
|
+
<div class="gn-loader is-inline"></div>
|
|
17391
|
+
<div class="gn-loader is-inline is-success"></div>
|
|
17392
|
+
<div class="gn-loader is-inline is-warning"></div>
|
|
17393
|
+
<div class="gn-loader is-inline is-danger"></div>
|
|
17394
|
+
<div class="gn-loader is-inline is-info"></div>
|
|
17395
|
+
<div class="gn-loader is-inline is-primary"></div>
|
|
17396
|
+
```
|
|
17397
|
+
|
|
17160
17398
|
### 타입
|
|
17161
17399
|
|
|
17162
17400
|
```html
|
|
17163
17401
|
<div class="gn-loader is-bounce"></div><br>
|
|
17164
17402
|
<div class="gn-loader is-move"></div>
|
|
17403
|
+
<div class="gn-loader is-inline"></div><br>
|
|
17165
17404
|
```
|
|
17166
17405
|
|
|
17167
17406
|
### 생성 옵션
|
|
@@ -17221,7 +17460,7 @@ Gn.create('button', {
|
|
|
17221
17460
|
<td colspan="2">type</td>
|
|
17222
17461
|
<td>string</td>
|
|
17223
17462
|
<td></td>
|
|
17224
|
-
<td>'bounce','move','
|
|
17463
|
+
<td>'inline','bounce','move','</td>
|
|
17225
17464
|
</tr>
|
|
17226
17465
|
<tr>
|
|
17227
17466
|
<td colspan="2">positionX</td>
|
|
@@ -17330,6 +17569,7 @@ Gn.create('button', {
|
|
|
17330
17569
|
.gn-loader.is-small {
|
|
17331
17570
|
width: 15px;
|
|
17332
17571
|
height: 15px;
|
|
17572
|
+
border-width: 5px;
|
|
17333
17573
|
}
|
|
17334
17574
|
.gn-loader.is-normal {
|
|
17335
17575
|
width: 25px;
|
|
@@ -17415,6 +17655,82 @@ Gn.create('button', {
|
|
|
17415
17655
|
border: 13px solid #00b3af;
|
|
17416
17656
|
animation: move 1.5s ease-in-out infinite alternate;
|
|
17417
17657
|
}
|
|
17658
|
+
.gn-loader.is-inline {
|
|
17659
|
+
border: 0;
|
|
17660
|
+
position: relative;
|
|
17661
|
+
margin-left: 10px;
|
|
17662
|
+
margin-right: 10px;
|
|
17663
|
+
animation-delay: -0.12s;
|
|
17664
|
+
background: hsl(0, 0%, 96%);
|
|
17665
|
+
}
|
|
17666
|
+
.gn-loader.is-inline, .gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17667
|
+
display: inline-block !important;
|
|
17668
|
+
width: 3px;
|
|
17669
|
+
height: 3px;
|
|
17670
|
+
animation: colorPulse 1.4s ease-in-out infinite;
|
|
17671
|
+
border-radius: 50%;
|
|
17672
|
+
}
|
|
17673
|
+
.gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17674
|
+
content: "";
|
|
17675
|
+
position: absolute;
|
|
17676
|
+
top: 0;
|
|
17677
|
+
}
|
|
17678
|
+
.gn-loader.is-inline::before {
|
|
17679
|
+
animation-delay: -0.24s;
|
|
17680
|
+
margin-left: -8px;
|
|
17681
|
+
}
|
|
17682
|
+
.gn-loader.is-inline::after {
|
|
17683
|
+
animation-delay: 0s;
|
|
17684
|
+
margin-left: 8px;
|
|
17685
|
+
}
|
|
17686
|
+
.gn-loader.is-inline.is-white, .gn-loader.is-inline.is-white::before, .gn-loader.is-inline.is-white::after {
|
|
17687
|
+
animation-name: colorPulse-white;
|
|
17688
|
+
}
|
|
17689
|
+
.gn-loader.is-inline.is-black, .gn-loader.is-inline.is-black::before, .gn-loader.is-inline.is-black::after {
|
|
17690
|
+
animation-name: colorPulse-black;
|
|
17691
|
+
}
|
|
17692
|
+
.gn-loader.is-inline.is-light, .gn-loader.is-inline.is-light::before, .gn-loader.is-inline.is-light::after {
|
|
17693
|
+
animation-name: colorPulse-light;
|
|
17694
|
+
}
|
|
17695
|
+
.gn-loader.is-inline.is-dark, .gn-loader.is-inline.is-dark::before, .gn-loader.is-inline.is-dark::after {
|
|
17696
|
+
animation-name: colorPulse-dark;
|
|
17697
|
+
}
|
|
17698
|
+
.gn-loader.is-inline.is-primary, .gn-loader.is-inline.is-primary::before, .gn-loader.is-inline.is-primary::after {
|
|
17699
|
+
animation-name: colorPulse-primary;
|
|
17700
|
+
}
|
|
17701
|
+
.gn-loader.is-inline.is-link, .gn-loader.is-inline.is-link::before, .gn-loader.is-inline.is-link::after {
|
|
17702
|
+
animation-name: colorPulse-link;
|
|
17703
|
+
}
|
|
17704
|
+
.gn-loader.is-inline.is-info, .gn-loader.is-inline.is-info::before, .gn-loader.is-inline.is-info::after {
|
|
17705
|
+
animation-name: colorPulse-info;
|
|
17706
|
+
}
|
|
17707
|
+
.gn-loader.is-inline.is-cancel, .gn-loader.is-inline.is-cancel::before, .gn-loader.is-inline.is-cancel::after {
|
|
17708
|
+
animation-name: colorPulse-cancel;
|
|
17709
|
+
}
|
|
17710
|
+
.gn-loader.is-inline.is-success, .gn-loader.is-inline.is-success::before, .gn-loader.is-inline.is-success::after {
|
|
17711
|
+
animation-name: colorPulse-success;
|
|
17712
|
+
}
|
|
17713
|
+
.gn-loader.is-inline.is-warning, .gn-loader.is-inline.is-warning::before, .gn-loader.is-inline.is-warning::after {
|
|
17714
|
+
animation-name: colorPulse-warning;
|
|
17715
|
+
}
|
|
17716
|
+
.gn-loader.is-inline.is-danger, .gn-loader.is-inline.is-danger::before, .gn-loader.is-inline.is-danger::after {
|
|
17717
|
+
animation-name: colorPulse-danger;
|
|
17718
|
+
}
|
|
17719
|
+
.gn-loader.is-inline.is-trans, .gn-loader.is-inline.is-trans::before, .gn-loader.is-inline.is-trans::after {
|
|
17720
|
+
animation-name: colorPulse-trans;
|
|
17721
|
+
}
|
|
17722
|
+
.gn-loader.is-inline.is-help, .gn-loader.is-inline.is-help::before, .gn-loader.is-inline.is-help::after {
|
|
17723
|
+
animation-name: colorPulse-help;
|
|
17724
|
+
}
|
|
17725
|
+
.gn-loader.is-inline.is-plain, .gn-loader.is-inline.is-plain::before, .gn-loader.is-inline.is-plain::after {
|
|
17726
|
+
animation-name: colorPulse-plain;
|
|
17727
|
+
}
|
|
17728
|
+
.gn-loader.is-inline.is-secondary, .gn-loader.is-inline.is-secondary::before, .gn-loader.is-inline.is-secondary::after {
|
|
17729
|
+
animation-name: colorPulse-secondary;
|
|
17730
|
+
}
|
|
17731
|
+
.gn-loader.is-inline.is-mono, .gn-loader.is-inline.is-mono::before, .gn-loader.is-inline.is-mono::after {
|
|
17732
|
+
animation-name: colorPulse-mono;
|
|
17733
|
+
}
|
|
17418
17734
|
|
|
17419
17735
|
@keyframes load-spin {
|
|
17420
17736
|
0% {
|
|
@@ -17443,55 +17759,259 @@ Gn.create('button', {
|
|
|
17443
17759
|
transform: translateX(15px);
|
|
17444
17760
|
}
|
|
17445
17761
|
}
|
|
17446
|
-
|
|
17447
|
-
|
|
17448
|
-
|
|
17449
|
-
|
|
17450
|
-
|
|
17451
|
-
|
|
17452
|
-
|
|
17453
|
-
|
|
17454
|
-
|
|
17455
|
-
|
|
17456
|
-
|
|
17457
|
-
|
|
17458
|
-
-
|
|
17459
|
-
|
|
17460
|
-
|
|
17461
|
-
|
|
17462
|
-
|
|
17463
|
-
|
|
17464
|
-
|
|
17465
|
-
|
|
17466
|
-
|
|
17467
|
-
|
|
17468
|
-
|
|
17469
|
-
|
|
17470
|
-
|
|
17471
|
-
|
|
17472
|
-
|
|
17473
|
-
|
|
17474
|
-
|
|
17475
|
-
|
|
17476
|
-
|
|
17477
|
-
|
|
17478
|
-
|
|
17479
|
-
|
|
17480
|
-
|
|
17481
|
-
|
|
17482
|
-
|
|
17483
|
-
|
|
17484
|
-
|
|
17485
|
-
|
|
17486
|
-
|
|
17487
|
-
|
|
17488
|
-
|
|
17489
|
-
|
|
17490
|
-
|
|
17491
|
-
|
|
17492
|
-
|
|
17493
|
-
|
|
17494
|
-
|
|
17762
|
+
@keyframes colorPulse {
|
|
17763
|
+
0%, 70%, 100% {
|
|
17764
|
+
background: hsl(0, 0%, 96%);
|
|
17765
|
+
/* 비활성 색상 */
|
|
17766
|
+
transform: scale(1);
|
|
17767
|
+
}
|
|
17768
|
+
35% {
|
|
17769
|
+
background: #00b3af;
|
|
17770
|
+
/* 활성 색상 */
|
|
17771
|
+
transform: scale(1.1);
|
|
17772
|
+
}
|
|
17773
|
+
}
|
|
17774
|
+
@keyframes colorPulse-white {
|
|
17775
|
+
0%, 70%, 100% {
|
|
17776
|
+
background: hsl(0, 0%, 71%);
|
|
17777
|
+
/* 비활성 색상 */
|
|
17778
|
+
transform: scale(1);
|
|
17779
|
+
}
|
|
17780
|
+
35% {
|
|
17781
|
+
background: hsl(0, 0%, 100%);
|
|
17782
|
+
/* 활성 색상 */
|
|
17783
|
+
transform: scale(1.1);
|
|
17784
|
+
}
|
|
17785
|
+
}
|
|
17786
|
+
@keyframes colorPulse-black {
|
|
17787
|
+
0%, 70%, 100% {
|
|
17788
|
+
background: hsl(0, 0%, 86%);
|
|
17789
|
+
/* 비활성 색상 */
|
|
17790
|
+
transform: scale(1);
|
|
17791
|
+
}
|
|
17792
|
+
35% {
|
|
17793
|
+
background: hsl(0, 0%, 4%);
|
|
17794
|
+
/* 활성 색상 */
|
|
17795
|
+
transform: scale(1.1);
|
|
17796
|
+
}
|
|
17797
|
+
}
|
|
17798
|
+
@keyframes colorPulse-light {
|
|
17799
|
+
0%, 70%, 100% {
|
|
17800
|
+
background: hsl(0, 0%, 93%);
|
|
17801
|
+
/* 비활성 색상 */
|
|
17802
|
+
transform: scale(1);
|
|
17803
|
+
}
|
|
17804
|
+
35% {
|
|
17805
|
+
background: hsl(0, 0%, 96%);
|
|
17806
|
+
/* 활성 색상 */
|
|
17807
|
+
transform: scale(1.1);
|
|
17808
|
+
}
|
|
17809
|
+
}
|
|
17810
|
+
@keyframes colorPulse-dark {
|
|
17811
|
+
0%, 70%, 100% {
|
|
17812
|
+
background: hsl(0, 0%, 86%);
|
|
17813
|
+
/* 비활성 색상 */
|
|
17814
|
+
transform: scale(1);
|
|
17815
|
+
}
|
|
17816
|
+
35% {
|
|
17817
|
+
background: hsl(0, 0%, 20%);
|
|
17818
|
+
/* 활성 색상 */
|
|
17819
|
+
transform: scale(1.1);
|
|
17820
|
+
}
|
|
17821
|
+
}
|
|
17822
|
+
@keyframes colorPulse-primary {
|
|
17823
|
+
0%, 70%, 100% {
|
|
17824
|
+
background: rgb(234.6, 255, 254.5441340782);
|
|
17825
|
+
/* 비활성 색상 */
|
|
17826
|
+
transform: scale(1);
|
|
17827
|
+
}
|
|
17828
|
+
35% {
|
|
17829
|
+
background: #00b3af;
|
|
17830
|
+
/* 활성 색상 */
|
|
17831
|
+
transform: scale(1.1);
|
|
17832
|
+
}
|
|
17833
|
+
}
|
|
17834
|
+
@keyframes colorPulse-link {
|
|
17835
|
+
0%, 70%, 100% {
|
|
17836
|
+
background: hsl(217, 71%, 96%);
|
|
17837
|
+
/* 비활성 색상 */
|
|
17838
|
+
transform: scale(1);
|
|
17839
|
+
}
|
|
17840
|
+
35% {
|
|
17841
|
+
background: hsl(217, 71%, 53%);
|
|
17842
|
+
/* 활성 색상 */
|
|
17843
|
+
transform: scale(1.1);
|
|
17844
|
+
}
|
|
17845
|
+
}
|
|
17846
|
+
@keyframes colorPulse-info {
|
|
17847
|
+
0%, 70%, 100% {
|
|
17848
|
+
background: hsl(204, 71%, 96%);
|
|
17849
|
+
/* 비활성 색상 */
|
|
17850
|
+
transform: scale(1);
|
|
17851
|
+
}
|
|
17852
|
+
35% {
|
|
17853
|
+
background: hsl(204, 71%, 53%);
|
|
17854
|
+
/* 활성 색상 */
|
|
17855
|
+
transform: scale(1.1);
|
|
17856
|
+
}
|
|
17857
|
+
}
|
|
17858
|
+
@keyframes colorPulse-cancel {
|
|
17859
|
+
0%, 70%, 100% {
|
|
17860
|
+
background: hsl(0, 0%, 96%);
|
|
17861
|
+
/* 비활성 색상 */
|
|
17862
|
+
transform: scale(1);
|
|
17863
|
+
}
|
|
17864
|
+
35% {
|
|
17865
|
+
background: hsl(0, 0%, 71%);
|
|
17866
|
+
/* 활성 색상 */
|
|
17867
|
+
transform: scale(1.1);
|
|
17868
|
+
}
|
|
17869
|
+
}
|
|
17870
|
+
@keyframes colorPulse-success {
|
|
17871
|
+
0%, 70%, 100% {
|
|
17872
|
+
background: hsl(141, 53%, 96%);
|
|
17873
|
+
/* 비활성 색상 */
|
|
17874
|
+
transform: scale(1);
|
|
17875
|
+
}
|
|
17876
|
+
35% {
|
|
17877
|
+
background: hsl(141, 53%, 53%);
|
|
17878
|
+
/* 활성 색상 */
|
|
17879
|
+
transform: scale(1.1);
|
|
17880
|
+
}
|
|
17881
|
+
}
|
|
17882
|
+
@keyframes colorPulse-warning {
|
|
17883
|
+
0%, 70%, 100% {
|
|
17884
|
+
background: hsl(38, 100%, 96%);
|
|
17885
|
+
/* 비활성 색상 */
|
|
17886
|
+
transform: scale(1);
|
|
17887
|
+
}
|
|
17888
|
+
35% {
|
|
17889
|
+
background: hsl(38, 100%, 50%);
|
|
17890
|
+
/* 활성 색상 */
|
|
17891
|
+
transform: scale(1.1);
|
|
17892
|
+
}
|
|
17893
|
+
}
|
|
17894
|
+
@keyframes colorPulse-danger {
|
|
17895
|
+
0%, 70%, 100% {
|
|
17896
|
+
background: hsl(348, 86%, 96%);
|
|
17897
|
+
/* 비활성 색상 */
|
|
17898
|
+
transform: scale(1);
|
|
17899
|
+
}
|
|
17900
|
+
35% {
|
|
17901
|
+
background: hsl(348, 86%, 61%);
|
|
17902
|
+
/* 활성 색상 */
|
|
17903
|
+
transform: scale(1.1);
|
|
17904
|
+
}
|
|
17905
|
+
}
|
|
17906
|
+
@keyframes colorPulse-trans {
|
|
17907
|
+
0%, 70%, 100% {
|
|
17908
|
+
background: hsl(0, 0%, 100%);
|
|
17909
|
+
/* 비활성 색상 */
|
|
17910
|
+
transform: scale(1);
|
|
17911
|
+
}
|
|
17912
|
+
35% {
|
|
17913
|
+
background: hsl(0, 0%, 100%);
|
|
17914
|
+
/* 활성 색상 */
|
|
17915
|
+
transform: scale(1.1);
|
|
17916
|
+
}
|
|
17917
|
+
}
|
|
17918
|
+
@keyframes colorPulse-help {
|
|
17919
|
+
0%, 70%, 100% {
|
|
17920
|
+
background: hsl(203, 96%, 96%);
|
|
17921
|
+
/* 비활성 색상 */
|
|
17922
|
+
transform: scale(1);
|
|
17923
|
+
}
|
|
17924
|
+
35% {
|
|
17925
|
+
background: hsl(203, 96%, 43%);
|
|
17926
|
+
/* 활성 색상 */
|
|
17927
|
+
transform: scale(1.1);
|
|
17928
|
+
}
|
|
17929
|
+
}
|
|
17930
|
+
@keyframes colorPulse-plain {
|
|
17931
|
+
0%, 70%, 100% {
|
|
17932
|
+
background: hsl(171, 100%, 29%);
|
|
17933
|
+
/* 비활성 색상 */
|
|
17934
|
+
transform: scale(1);
|
|
17935
|
+
}
|
|
17936
|
+
35% {
|
|
17937
|
+
background: #fff;
|
|
17938
|
+
/* 활성 색상 */
|
|
17939
|
+
transform: scale(1.1);
|
|
17940
|
+
}
|
|
17941
|
+
}
|
|
17942
|
+
@keyframes colorPulse-secondary {
|
|
17943
|
+
0%, 70%, 100% {
|
|
17944
|
+
background: rgb(238.641509434, 244.1264150943, 250.958490566);
|
|
17945
|
+
/* 비활성 색상 */
|
|
17946
|
+
transform: scale(1);
|
|
17947
|
+
}
|
|
17948
|
+
35% {
|
|
17949
|
+
background: #2a63aa;
|
|
17950
|
+
/* 활성 색상 */
|
|
17951
|
+
transform: scale(1.1);
|
|
17952
|
+
}
|
|
17953
|
+
}
|
|
17954
|
+
@keyframes colorPulse-mono {
|
|
17955
|
+
0%, 70%, 100% {
|
|
17956
|
+
background: rgb(244.8, 244.8, 244.8);
|
|
17957
|
+
/* 비활성 색상 */
|
|
17958
|
+
transform: scale(1);
|
|
17959
|
+
}
|
|
17960
|
+
35% {
|
|
17961
|
+
background: #656565;
|
|
17962
|
+
/* 활성 색상 */
|
|
17963
|
+
transform: scale(1.1);
|
|
17964
|
+
}
|
|
17965
|
+
}
|
|
17966
|
+
/*
|
|
17967
|
+
---
|
|
17968
|
+
name: Message
|
|
17969
|
+
category:
|
|
17970
|
+
- COMPONENT/Message(js)
|
|
17971
|
+
tag:
|
|
17972
|
+
- v.0.1.0
|
|
17973
|
+
- javascript
|
|
17974
|
+
---
|
|
17975
|
+
|
|
17976
|
+
|
|
17977
|
+
### 기본 메세지 알림
|
|
17978
|
+
-Text with icon / Text only 선택 사용 할 수 있다.
|
|
17979
|
+
|
|
17980
|
+
```html
|
|
17981
|
+
<div class="gn-message is-success has-arrange">
|
|
17982
|
+
<span class="gn-icon is-normal">
|
|
17983
|
+
<i class="fas fa-check"></i>
|
|
17984
|
+
</span>
|
|
17985
|
+
<p>Success! Your message has been sent successfully. <br/> Success! Your message has been sent successfully. </p>
|
|
17986
|
+
</div>
|
|
17987
|
+
<div class="gn-message is-warning has-arrange">
|
|
17988
|
+
<span class="gn-icon is-normal">
|
|
17989
|
+
<i class="fas fa-exclamation-circle"></i>
|
|
17990
|
+
</span>
|
|
17991
|
+
<p>Warning! There was a problem with your network connection.</p>
|
|
17992
|
+
<span class="gn-icon is-close is-dark">
|
|
17993
|
+
<i class="fas fa-times"></i>
|
|
17994
|
+
</span>
|
|
17995
|
+
</div>
|
|
17996
|
+
<div class="gn-message is-danger has-arrange">
|
|
17997
|
+
<span class="gn-icon is-normal">
|
|
17998
|
+
<i class="fas fa-exclamation-triangle"></i>
|
|
17999
|
+
</span>
|
|
18000
|
+
<p>Error! A problem has been occurred while submitting your data.</p>
|
|
18001
|
+
</div>
|
|
18002
|
+
<div class="gn-message is-info has-arrange">
|
|
18003
|
+
<span class="gn-icon is-normal">
|
|
18004
|
+
<i class="fas fa-info-circle"></i>
|
|
18005
|
+
</span>
|
|
18006
|
+
<p>Info! Please read the comments carefully.</p>
|
|
18007
|
+
<span class="gn-icon is-close is-dark">
|
|
18008
|
+
<i class="fas fa-times"></i>
|
|
18009
|
+
</span>
|
|
18010
|
+
</div>
|
|
18011
|
+
<div class="gn-message is-guide has-arrange">
|
|
18012
|
+
<span class="gn-icon is-normal">
|
|
18013
|
+
<i class="fas fa-info-circle"></i>
|
|
18014
|
+
</span>
|
|
17495
18015
|
<p> 가이드 메시지 한글 폰드 테스트 Guide!</p>
|
|
17496
18016
|
</div>
|
|
17497
18017
|
|
|
@@ -19011,22 +19531,26 @@ tag:
|
|
|
19011
19531
|
```
|
|
19012
19532
|
````
|
|
19013
19533
|
Gn.create('picklist', {
|
|
19014
|
-
target: '.new-picklist',
|
|
19015
|
-
data
|
|
19534
|
+
target: '.new-picklist',
|
|
19535
|
+
data: {
|
|
19016
19536
|
source: [
|
|
19017
|
-
{ value: '
|
|
19018
|
-
{ value: '
|
|
19019
|
-
{ value: '
|
|
19020
|
-
{ value: 'item4', text: '항목4' },
|
|
19021
|
-
{ value: 'item5', text: '항목5' },
|
|
19022
|
-
{ value: 'item6', text: '항목6' },
|
|
19023
|
-
{ value: 'item7', text: '항목7' },
|
|
19024
|
-
{ value: 'item8', text: '항목8' }
|
|
19537
|
+
{ value: '항목1', text: 'item1', html: '<span class="gn-tag is-primary">항목1</span> item1' },
|
|
19538
|
+
{ value: '항목2', text: 'item2', html: '<span class="gn-tag is-danger">항목2</span> item2' },
|
|
19539
|
+
{ value: '항목3', text: 'item3', html: '<span class="gn-tag is-warning">항목3</span> item3' }
|
|
19025
19540
|
],
|
|
19026
|
-
target: [
|
|
19541
|
+
target: [
|
|
19542
|
+
{ value: '항목4', text: 'item4', html: '<span class="gn-tag is-help">항목4</span> item4' },
|
|
19543
|
+
{ value: '항목5', text: 'item5', html: '<span class="gn-tag is-success">항목5</span> item5' }
|
|
19544
|
+
]
|
|
19027
19545
|
},
|
|
19546
|
+
hasSourceSearch: true,
|
|
19547
|
+
hasTargetSearch: true,
|
|
19028
19548
|
width: '80%',
|
|
19029
|
-
height: 180
|
|
19549
|
+
height: 180,
|
|
19550
|
+
onChange: function (s, t) {
|
|
19551
|
+
console.log(s, t);
|
|
19552
|
+
},
|
|
19553
|
+
orderable: 'target'
|
|
19030
19554
|
});
|
|
19031
19555
|
Gn.create('picklist', {
|
|
19032
19556
|
target: '.new-picklist-v',
|
|
@@ -19063,15 +19587,21 @@ tag:
|
|
|
19063
19587
|
<tr>
|
|
19064
19588
|
<td rowspan="2">data</td>
|
|
19065
19589
|
<td>source</td>
|
|
19066
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19590
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19067
19591
|
<td></td>
|
|
19068
|
-
<td>source 항목
|
|
19592
|
+
<td>source 항목 배열<br>
|
|
19593
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19594
|
+
icon : <a href="https://fontawesome.com/cheatsheet?from=io" target="_blank">font awesome <span class="gn-icon is-small"><i class="fas fa-external-link-alt"></i></span></a> solid icon name
|
|
19595
|
+
</td>
|
|
19069
19596
|
</tr>
|
|
19070
19597
|
<tr>
|
|
19071
19598
|
<td>target</td>
|
|
19072
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19599
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19073
19600
|
<td></td>
|
|
19074
|
-
<td>target 항목
|
|
19601
|
+
<td>target 항목 배열<br>
|
|
19602
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19603
|
+
icon : <a href="https://fontawesome.com/cheatsheet?from=io" target="_blank">font awesome <span class="gn-icon is-small"><i class="fas fa-external-link-alt"></i></span></a> solid icon name
|
|
19604
|
+
</td>
|
|
19075
19605
|
</tr>
|
|
19076
19606
|
<tr>
|
|
19077
19607
|
<td rowspan="3">textSets</td>
|
|
@@ -19225,23 +19755,17 @@ tag:
|
|
|
19225
19755
|
.gn-picklist .picklist-caption + .dropdown-items {
|
|
19226
19756
|
border-radius: 0 0 2px 2px;
|
|
19227
19757
|
}
|
|
19228
|
-
.gn-picklist .
|
|
19758
|
+
.gn-picklist .gn-dropdown {
|
|
19759
|
+
display: block;
|
|
19760
|
+
}
|
|
19761
|
+
.gn-picklist .picklist-source,
|
|
19762
|
+
.gn-picklist .picklist-target {
|
|
19229
19763
|
display: flex;
|
|
19230
19764
|
flex-basis: calc(50% - 16px);
|
|
19231
19765
|
width: calc(50% - 16px);
|
|
19232
19766
|
flex-grow: 0;
|
|
19233
19767
|
flex-shrink: 0;
|
|
19234
19768
|
}
|
|
19235
|
-
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19236
|
-
order: 2;
|
|
19237
|
-
width: 100%;
|
|
19238
|
-
}
|
|
19239
|
-
.gn-picklist .picklist-source .picklist-controls {
|
|
19240
|
-
order: 1;
|
|
19241
|
-
}
|
|
19242
|
-
.gn-picklist .gn-dropdown {
|
|
19243
|
-
display: block;
|
|
19244
|
-
}
|
|
19245
19769
|
.gn-picklist .picklist-source.no-controls,
|
|
19246
19770
|
.gn-picklist .picklist-target.no-controls {
|
|
19247
19771
|
flex-basis: calc(50% - 45px);
|
|
@@ -19252,23 +19776,22 @@ tag:
|
|
|
19252
19776
|
width: 100%;
|
|
19253
19777
|
height: 100%;
|
|
19254
19778
|
}
|
|
19255
|
-
.gn-picklist.
|
|
19256
|
-
.gn-picklist .picklist-target {
|
|
19257
|
-
display: flex;
|
|
19258
|
-
flex-basis: calc(50% - 16px);
|
|
19259
|
-
width: calc(50% - 16px);
|
|
19260
|
-
flex-grow: 0;
|
|
19261
|
-
flex-shrink: 0;
|
|
19262
|
-
}
|
|
19263
|
-
.gn-picklist.is-vertical .picklist-source > .gn-dropdown,
|
|
19779
|
+
.gn-picklist .picklist-source > .gn-dropdown,
|
|
19264
19780
|
.gn-picklist .picklist-target > .gn-dropdown {
|
|
19265
19781
|
order: 1;
|
|
19266
19782
|
width: 100%;
|
|
19267
19783
|
}
|
|
19268
|
-
.gn-picklist
|
|
19784
|
+
.gn-picklist .picklist-source .picklist-controls,
|
|
19269
19785
|
.gn-picklist .picklist-target .picklist-controls {
|
|
19270
19786
|
order: 2;
|
|
19271
19787
|
}
|
|
19788
|
+
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19789
|
+
order: 2;
|
|
19790
|
+
width: 100%;
|
|
19791
|
+
}
|
|
19792
|
+
.gn-picklist .picklist-source .picklist-controls {
|
|
19793
|
+
order: 1;
|
|
19794
|
+
}
|
|
19272
19795
|
.gn-picklist .picklist-controls {
|
|
19273
19796
|
margin: 0.5rem;
|
|
19274
19797
|
}
|
|
@@ -19278,6 +19801,16 @@ tag:
|
|
|
19278
19801
|
.gn-picklist.is-vertical {
|
|
19279
19802
|
flex-direction: column;
|
|
19280
19803
|
}
|
|
19804
|
+
.gn-picklist.is-vertical .picklist-source,
|
|
19805
|
+
.gn-picklist.is-vertical .picklist-target {
|
|
19806
|
+
width: calc(100% - 32px);
|
|
19807
|
+
}
|
|
19808
|
+
.gn-picklist.is-vertical .picklist-source > .gn-dropdown {
|
|
19809
|
+
order: 1;
|
|
19810
|
+
}
|
|
19811
|
+
.gn-picklist.is-vertical .picklist-source .picklist-controls {
|
|
19812
|
+
order: 2;
|
|
19813
|
+
}
|
|
19281
19814
|
.gn-picklist.is-vertical > .picklist-controls {
|
|
19282
19815
|
width: 90%;
|
|
19283
19816
|
width: calc(100% - 50px);
|
|
@@ -19288,6 +19821,382 @@ tag:
|
|
|
19288
19821
|
box-shadow: 0 0 0 0.1em rgba(241.077, 70.023, 104.2338, 0.7);
|
|
19289
19822
|
}
|
|
19290
19823
|
|
|
19824
|
+
/*
|
|
19825
|
+
---
|
|
19826
|
+
name: SortableList
|
|
19827
|
+
category:
|
|
19828
|
+
- CONTROLS/SortableList(js)
|
|
19829
|
+
tag:
|
|
19830
|
+
- v.0.1.0
|
|
19831
|
+
- javascript
|
|
19832
|
+
---
|
|
19833
|
+
### 기본 사용
|
|
19834
|
+
|
|
19835
|
+
```html
|
|
19836
|
+
<div class="gn-sortablelist">
|
|
19837
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center">
|
|
19838
|
+
<button type="button" class="gn-button is-outline">
|
|
19839
|
+
<span class="gn-icon">
|
|
19840
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19841
|
+
</span>
|
|
19842
|
+
</button>
|
|
19843
|
+
<button type="button" class="gn-button is-outline">
|
|
19844
|
+
<span class="gn-icon">
|
|
19845
|
+
<i class="fas fa-angle-up"></i>
|
|
19846
|
+
</span>
|
|
19847
|
+
</button>
|
|
19848
|
+
<button type="button" class="gn-button is-outline">
|
|
19849
|
+
<span class="gn-icon">
|
|
19850
|
+
<i class="fas fa-angle-down"></i>
|
|
19851
|
+
</span>
|
|
19852
|
+
</button>
|
|
19853
|
+
<button type="button" class="gn-button is-outline">
|
|
19854
|
+
<span class="gn-icon">
|
|
19855
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19856
|
+
</span>
|
|
19857
|
+
</button>
|
|
19858
|
+
</div>
|
|
19859
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19860
|
+
<div class="dropdown-items">
|
|
19861
|
+
<ul class="sortablelist-rows">
|
|
19862
|
+
<li class="dropdown-item">항목 1</li>
|
|
19863
|
+
<li class="dropdown-item">항목 2</li>
|
|
19864
|
+
<li class="dropdown-item">항목 3</li>
|
|
19865
|
+
<li class="dropdown-item">항목 4</li>
|
|
19866
|
+
</ul>
|
|
19867
|
+
</div>
|
|
19868
|
+
</div>
|
|
19869
|
+
</div>
|
|
19870
|
+
```
|
|
19871
|
+
|
|
19872
|
+
### 버튼 우측 배치
|
|
19873
|
+
|
|
19874
|
+
```html
|
|
19875
|
+
<div class="gn-sortablelist">
|
|
19876
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19877
|
+
<div class="dropdown-items">
|
|
19878
|
+
<ul class="sortablelist-rows">
|
|
19879
|
+
<li class="dropdown-item">항목 1</li>
|
|
19880
|
+
<li class="dropdown-item">항목 2</li>
|
|
19881
|
+
<li class="dropdown-item">항목 3</li>
|
|
19882
|
+
</ul>
|
|
19883
|
+
</div>
|
|
19884
|
+
</div>
|
|
19885
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center is-right">
|
|
19886
|
+
<button type="button" class="gn-button is-outline">
|
|
19887
|
+
<span class="gn-icon">
|
|
19888
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19889
|
+
</span>
|
|
19890
|
+
</button>
|
|
19891
|
+
<button type="button" class="gn-button is-outline">
|
|
19892
|
+
<span class="gn-icon">
|
|
19893
|
+
<i class="fas fa-angle-up"></i>
|
|
19894
|
+
</span>
|
|
19895
|
+
</button>
|
|
19896
|
+
<button type="button" class="gn-button is-outline">
|
|
19897
|
+
<span class="gn-icon">
|
|
19898
|
+
<i class="fas fa-angle-down"></i>
|
|
19899
|
+
</span>
|
|
19900
|
+
</button>
|
|
19901
|
+
<button type="button" class="gn-button is-outline">
|
|
19902
|
+
<span class="gn-icon">
|
|
19903
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19904
|
+
</span>
|
|
19905
|
+
</button>
|
|
19906
|
+
</div>
|
|
19907
|
+
</div>
|
|
19908
|
+
```
|
|
19909
|
+
|
|
19910
|
+
### 생성 옵션
|
|
19911
|
+
```ejs
|
|
19912
|
+
<div class="new-sortablelist"></div>
|
|
19913
|
+
<div class="new-sortablelist-drag"></div>
|
|
19914
|
+
<div class="new-sortablelist-cols"></div>
|
|
19915
|
+
```
|
|
19916
|
+
````
|
|
19917
|
+
// 단일 컬럼
|
|
19918
|
+
Gn.create('sortablelist', {
|
|
19919
|
+
target: '.new-sortablelist',
|
|
19920
|
+
data: [
|
|
19921
|
+
{ value: '1', text: '항목 1' },
|
|
19922
|
+
{ value: '2', text: '항목 2' },
|
|
19923
|
+
{ value: '3', text: '항목 3' },
|
|
19924
|
+
{ value: '4', text: '항목 4' },
|
|
19925
|
+
{ value: '5', text: '항목 5' },
|
|
19926
|
+
{ value: '6', text: '항목 6' },
|
|
19927
|
+
{ value: '7', text: '항목 7' },
|
|
19928
|
+
{ value: '8', text: '항목 8' },
|
|
19929
|
+
{ value: '9', text: '항목 9' },
|
|
19930
|
+
{ value: '10', text: '항목 10' }
|
|
19931
|
+
]
|
|
19932
|
+
});
|
|
19933
|
+
// 드래그 앤 드롭
|
|
19934
|
+
Gn.create('sortablelist', {
|
|
19935
|
+
target: '.new-sortablelist-drag',
|
|
19936
|
+
data: [
|
|
19937
|
+
{ value: 'a', text: '항목 A' },
|
|
19938
|
+
{ value: 'b', text: '항목 B' },
|
|
19939
|
+
{ value: 'c', text: '항목 C' },
|
|
19940
|
+
{ value: 'd', text: '항목 D' },
|
|
19941
|
+
{ value: 'e', text: '항목 E' },
|
|
19942
|
+
{ value: 'f', text: '항목 F' },
|
|
19943
|
+
{ value: 'g', text: '항목 G' },
|
|
19944
|
+
{ value: 'h', text: '항목 H' },
|
|
19945
|
+
{ value: 'i', text: '항목 I' },
|
|
19946
|
+
{ value: 'j', text: '항목 J' }
|
|
19947
|
+
],
|
|
19948
|
+
draggable: true
|
|
19949
|
+
});
|
|
19950
|
+
// 다중 컬럼
|
|
19951
|
+
Gn.create('sortablelist', {
|
|
19952
|
+
target: '.new-sortablelist-cols',
|
|
19953
|
+
buttonPosition: 'right',
|
|
19954
|
+
data: [
|
|
19955
|
+
{ value: 'x1', cols: ['항목1', '카테고리A', '1000'] },
|
|
19956
|
+
{ value: 'x2', cols: ['항목2', '카테고리B', '2000'] },
|
|
19957
|
+
{ value: 'x3', cols: ['항목3', '카테고리C', '3000'] },
|
|
19958
|
+
{ value: 'x4', cols: ['항목4', '카테고리D', '4000'] },
|
|
19959
|
+
{ value: 'x5', cols: ['항목5', '카테고리E', '5000'] },
|
|
19960
|
+
{ value: 'x6', cols: ['항목6', '카테고리F', '6000'] },
|
|
19961
|
+
{ value: 'x7', cols: ['항목7', '카테고리G', '7000'] },
|
|
19962
|
+
{ value: 'x8', cols: ['항목8', '카테고리H', '8000'] },
|
|
19963
|
+
{ value: 'x9', cols: ['항목9', '카테고리I', '9000'] },
|
|
19964
|
+
{ value: 'x10', cols: ['항목10', '카테고리J', '10000'] }
|
|
19965
|
+
]
|
|
19966
|
+
});
|
|
19967
|
+
````
|
|
19968
|
+
|
|
19969
|
+
### 데이터 모델 (SortableListItem)
|
|
19970
|
+
|
|
19971
|
+
<table class="gn-table is-full is-border">
|
|
19972
|
+
<thead>
|
|
19973
|
+
<th>필드</th>
|
|
19974
|
+
<th>type</th>
|
|
19975
|
+
<th>필수</th>
|
|
19976
|
+
<th>description</th>
|
|
19977
|
+
</thead>
|
|
19978
|
+
<tbody>
|
|
19979
|
+
<tr>
|
|
19980
|
+
<td>value</td>
|
|
19981
|
+
<td>string</td>
|
|
19982
|
+
<td>Y</td>
|
|
19983
|
+
<td>고유 값 (빈 문자열 불가)</td>
|
|
19984
|
+
</tr>
|
|
19985
|
+
<tr>
|
|
19986
|
+
<td>text</td>
|
|
19987
|
+
<td>string</td>
|
|
19988
|
+
<td>N</td>
|
|
19989
|
+
<td>단일 컬럼 표시 텍스트</td>
|
|
19990
|
+
</tr>
|
|
19991
|
+
<tr>
|
|
19992
|
+
<td>cols</td>
|
|
19993
|
+
<td>string[]</td>
|
|
19994
|
+
<td>N</td>
|
|
19995
|
+
<td>다중 컬럼 표시 값 배열</td>
|
|
19996
|
+
</tr>
|
|
19997
|
+
</tbody>
|
|
19998
|
+
</table>
|
|
19999
|
+
|
|
20000
|
+
### 옵션
|
|
20001
|
+
<table class="gn-table is-full is-border">
|
|
20002
|
+
<thead>
|
|
20003
|
+
<th colspan="2">name</th>
|
|
20004
|
+
<th>type</th>
|
|
20005
|
+
<th>default</th>
|
|
20006
|
+
<th>description</th>
|
|
20007
|
+
</thead>
|
|
20008
|
+
<tbody>
|
|
20009
|
+
<tr>
|
|
20010
|
+
<td colspan="2">target</td>
|
|
20011
|
+
<td>string</td>
|
|
20012
|
+
<td></td>
|
|
20013
|
+
<td>sortablelist를 표시할 대상의 선택자(selector)</td>
|
|
20014
|
+
</tr>
|
|
20015
|
+
<tr>
|
|
20016
|
+
<td colspan="2">data</td>
|
|
20017
|
+
<td>SortableListItem[]</td>
|
|
20018
|
+
<td></td>
|
|
20019
|
+
<td>sortablelist에 표시할 데이터 배열</td>
|
|
20020
|
+
</tr>
|
|
20021
|
+
<tr>
|
|
20022
|
+
<td colspan="2">buttonPosition</td>
|
|
20023
|
+
<td>left | right</td>
|
|
20024
|
+
<td>left</td>
|
|
20025
|
+
<td>순서 변경 버튼 위치</td>
|
|
20026
|
+
</tr>
|
|
20027
|
+
<tr>
|
|
20028
|
+
<td colspan="2">draggable</td>
|
|
20029
|
+
<td>boolean</td>
|
|
20030
|
+
<td>false</td>
|
|
20031
|
+
<td>드래그 앤 드롭 순서 변경 활성화 여부</td>
|
|
20032
|
+
</tr>
|
|
20033
|
+
<tr>
|
|
20034
|
+
<td>textSets</td>
|
|
20035
|
+
<td>noData</td>
|
|
20036
|
+
<td>string</td>
|
|
20037
|
+
<td>No records available.</td>
|
|
20038
|
+
<td>데이터가 없을 경우 출력 메시지</td>
|
|
20039
|
+
</tr>
|
|
20040
|
+
<tr>
|
|
20041
|
+
<td colspan="2">disabled</td>
|
|
20042
|
+
<td>boolean</td>
|
|
20043
|
+
<td>false</td>
|
|
20044
|
+
<td>컴포넌트 비활성화 여부</td>
|
|
20045
|
+
</tr>
|
|
20046
|
+
<tr>
|
|
20047
|
+
<td colspan="2">width</td>
|
|
20048
|
+
<td>number, string</td>
|
|
20049
|
+
<td>100%</td>
|
|
20050
|
+
<td>컴포넌트 너비</td>
|
|
20051
|
+
</tr>
|
|
20052
|
+
<tr>
|
|
20053
|
+
<td colspan="2">height</td>
|
|
20054
|
+
<td>number, string</td>
|
|
20055
|
+
<td>150</td>
|
|
20056
|
+
<td>리스트 높이 (미지정 시 150)</td>
|
|
20057
|
+
</tr>
|
|
20058
|
+
<tr>
|
|
20059
|
+
<td colspan="2">onChange</td>
|
|
20060
|
+
<td>function(data)</td>
|
|
20061
|
+
<td></td>
|
|
20062
|
+
<td>데이터 변경 시 발생 이벤트</td>
|
|
20063
|
+
</tr>
|
|
20064
|
+
</tbody>
|
|
20065
|
+
</table>
|
|
20066
|
+
|
|
20067
|
+
### 메소드
|
|
20068
|
+
|
|
20069
|
+
<table class="gn-table is-full is-border">
|
|
20070
|
+
<thead>
|
|
20071
|
+
<th>name</th>
|
|
20072
|
+
<th>return</th>
|
|
20073
|
+
<th>description</th>
|
|
20074
|
+
</thead>
|
|
20075
|
+
<tbody>
|
|
20076
|
+
<tr>
|
|
20077
|
+
<td>getData()</td>
|
|
20078
|
+
<td>SortableListItem[]</td>
|
|
20079
|
+
<td>현재 데이터 배열을 반환한다.</td>
|
|
20080
|
+
</tr>
|
|
20081
|
+
<tr>
|
|
20082
|
+
<td>setData(data: SortableListItem[]})</td>
|
|
20083
|
+
<td>void</td>
|
|
20084
|
+
<td>데이터 배열을 설정하고 다시 렌더링한다.</td>
|
|
20085
|
+
</tr>
|
|
20086
|
+
<tr>
|
|
20087
|
+
<td>disable()</td>
|
|
20088
|
+
<td>void</td>
|
|
20089
|
+
<td>컴포넌트를 비활성화한다.</td>
|
|
20090
|
+
</tr>
|
|
20091
|
+
<tr>
|
|
20092
|
+
<td>enable()</td>
|
|
20093
|
+
<td>void</td>
|
|
20094
|
+
<td>컴포넌트를 활성화한다.</td>
|
|
20095
|
+
</tr>
|
|
20096
|
+
</tbody>
|
|
20097
|
+
</table>
|
|
20098
|
+
|
|
20099
|
+
*/
|
|
20100
|
+
.gn-sortablelist {
|
|
20101
|
+
display: flex;
|
|
20102
|
+
align-items: stretch;
|
|
20103
|
+
-webkit-user-select: none;
|
|
20104
|
+
-moz-user-select: none;
|
|
20105
|
+
user-select: none;
|
|
20106
|
+
}
|
|
20107
|
+
.gn-sortablelist .gn-dropdown {
|
|
20108
|
+
display: block;
|
|
20109
|
+
}
|
|
20110
|
+
.gn-sortablelist .sortablelist-items {
|
|
20111
|
+
flex: 1 1 auto;
|
|
20112
|
+
}
|
|
20113
|
+
.gn-sortablelist .sortablelist-controls {
|
|
20114
|
+
margin: 0.5rem;
|
|
20115
|
+
}
|
|
20116
|
+
.gn-sortablelist .sortablelist-controls .gn-button {
|
|
20117
|
+
padding: 0.25rem 0.75rem;
|
|
20118
|
+
}
|
|
20119
|
+
.gn-sortablelist .sortablelist-controls.is-right {
|
|
20120
|
+
order: 2;
|
|
20121
|
+
margin-left: 0.5rem;
|
|
20122
|
+
margin-right: 0;
|
|
20123
|
+
justify-content: center;
|
|
20124
|
+
}
|
|
20125
|
+
.gn-sortablelist .sortablelist-rows {
|
|
20126
|
+
margin: 0;
|
|
20127
|
+
padding: 0;
|
|
20128
|
+
list-style: none;
|
|
20129
|
+
}
|
|
20130
|
+
.gn-sortablelist .sortablelist-cols {
|
|
20131
|
+
display: flex;
|
|
20132
|
+
gap: 0.5rem;
|
|
20133
|
+
width: 100%;
|
|
20134
|
+
}
|
|
20135
|
+
.gn-sortablelist .sortablelist-col {
|
|
20136
|
+
flex: 1 1 0;
|
|
20137
|
+
min-width: 0;
|
|
20138
|
+
}
|
|
20139
|
+
.gn-sortablelist .dropdown-item.is-empty {
|
|
20140
|
+
color: hsl(0, 0%, 48%);
|
|
20141
|
+
}
|
|
20142
|
+
.gn-sortablelist .dropdown-item.is-dragging {
|
|
20143
|
+
opacity: 0.6;
|
|
20144
|
+
}
|
|
20145
|
+
.gn-sortablelist .dropdown-item.is-group-dragging {
|
|
20146
|
+
outline: 1px dashed hsl(0, 0%, 71%);
|
|
20147
|
+
}
|
|
20148
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top,
|
|
20149
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20150
|
+
background-color: hsl(0, 0%, 96%);
|
|
20151
|
+
}
|
|
20152
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top {
|
|
20153
|
+
box-shadow: inset 0 2px 0 0 #00b3af;
|
|
20154
|
+
}
|
|
20155
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20156
|
+
box-shadow: inset 0 -2px 0 0 #00b3af;
|
|
20157
|
+
}
|
|
20158
|
+
|
|
20159
|
+
.sortablelist-drag-preview {
|
|
20160
|
+
position: absolute;
|
|
20161
|
+
top: -9999px;
|
|
20162
|
+
left: -9999px;
|
|
20163
|
+
display: inline-flex;
|
|
20164
|
+
align-items: flex-start;
|
|
20165
|
+
gap: 8px;
|
|
20166
|
+
padding: 6px 10px;
|
|
20167
|
+
border-radius: 8px;
|
|
20168
|
+
background-color: hsl(0, 0%, 20%);
|
|
20169
|
+
color: hsl(0, 0%, 98%);
|
|
20170
|
+
font-size: 12px;
|
|
20171
|
+
line-height: 1;
|
|
20172
|
+
}
|
|
20173
|
+
|
|
20174
|
+
.sortablelist-drag-preview::before {
|
|
20175
|
+
content: attr(data-count);
|
|
20176
|
+
min-width: 18px;
|
|
20177
|
+
height: 18px;
|
|
20178
|
+
padding: 0 6px;
|
|
20179
|
+
border-radius: 999px;
|
|
20180
|
+
background-color: hsl(0, 0%, 98%);
|
|
20181
|
+
color: hsl(0, 0%, 20%);
|
|
20182
|
+
font-size: 11px;
|
|
20183
|
+
line-height: 18px;
|
|
20184
|
+
text-align: center;
|
|
20185
|
+
}
|
|
20186
|
+
|
|
20187
|
+
.sortablelist-drag-preview-list {
|
|
20188
|
+
display: flex;
|
|
20189
|
+
flex-direction: column;
|
|
20190
|
+
gap: 4px;
|
|
20191
|
+
}
|
|
20192
|
+
|
|
20193
|
+
.sortablelist-drag-preview .dropdown-item.is-ghost {
|
|
20194
|
+
padding: 4px 8px;
|
|
20195
|
+
background-color: hsl(0, 0%, 18%);
|
|
20196
|
+
border-radius: 4px;
|
|
20197
|
+
color: hsl(0, 0%, 98%);
|
|
20198
|
+
}
|
|
20199
|
+
|
|
19291
20200
|
/*
|
|
19292
20201
|
---
|
|
19293
20202
|
name: Progressbar
|
|
@@ -19867,6 +20776,7 @@ tag:
|
|
|
19867
20776
|
.gn-tab > ul {
|
|
19868
20777
|
display: flex;
|
|
19869
20778
|
border-bottom: 1px solid hsl(0, 0%, 86%);
|
|
20779
|
+
padding-bottom: 0px;
|
|
19870
20780
|
}
|
|
19871
20781
|
.gn-tab.is-center > ul {
|
|
19872
20782
|
justify-content: center;
|
|
@@ -21016,7 +21926,7 @@ Gn.create('tree', {
|
|
|
21016
21926
|
}
|
|
21017
21927
|
.gn-tree li .tree-item .is-toggler::before {
|
|
21018
21928
|
content: "\f0da";
|
|
21019
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21929
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21020
21930
|
font-weight: 900;
|
|
21021
21931
|
}
|
|
21022
21932
|
.gn-tree li .tree-item + ul {
|