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