gnui 1.2.17 → 1.2.19
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 +736 -96
- package/dist/js/gnui.js +736 -96
- package/dist/js/gnui.min.js +6 -6
- package/dist/styles/default.css +1019 -108
- package/dist/styles/gpi.css +1019 -108
- package/dist/styles/green24.css +1230 -289
- package/dist/styles/insights.css +1019 -108
- package/dist/styles/nac.css +969 -58
- package/dist/styles/ztnac.css +1206 -265
- package/package.json +1 -1
- package/styleguide/assets/components.js +216 -9
- package/styleguide/assets/js/gnui.js +736 -96
- package/styleguide/assets/js/gnui.min.js +6 -6
- package/styleguide/assets/styles/default.css +1019 -108
- package/styleguide/assets/styles/gpi.css +1019 -108
- package/styleguide/assets/styles/green24.css +1230 -289
- package/styleguide/assets/styles/insights.css +1019 -108
- package/styleguide/assets/styles/nac.css +969 -58
- package/styleguide/assets/styles/ztnac.css +1206 -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
|
}
|
|
@@ -2700,7 +2700,7 @@ tag:
|
|
|
2700
2700
|
}
|
|
2701
2701
|
.gn-icon-ext::before {
|
|
2702
2702
|
content: "\f15b";
|
|
2703
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free";
|
|
2703
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
2704
2704
|
font-weight: 300;
|
|
2705
2705
|
font-size: 1.6rem;
|
|
2706
2706
|
}
|
|
@@ -4209,10 +4209,6 @@ tag:
|
|
|
4209
4209
|
display: block;
|
|
4210
4210
|
word-break: break-word;
|
|
4211
4211
|
}
|
|
4212
|
-
.gn-title:not(:last-child),
|
|
4213
|
-
.gn-sub-title:not(:last-child) {
|
|
4214
|
-
margin-bottom: 1rem;
|
|
4215
|
-
}
|
|
4216
4212
|
|
|
4217
4213
|
.gn-title {
|
|
4218
4214
|
color: hsl(0, 0%, 93%);
|
|
@@ -5482,6 +5478,7 @@ compile: true
|
|
|
5482
5478
|
```ejs
|
|
5483
5479
|
<button name="new-button"></button>
|
|
5484
5480
|
<button name="new-button2"></button>
|
|
5481
|
+
<button name="new-button-submenu">편집 메뉴</button>
|
|
5485
5482
|
```
|
|
5486
5483
|
|
|
5487
5484
|
````
|
|
@@ -5521,6 +5518,51 @@ compile: true
|
|
|
5521
5518
|
value: 'menu2'
|
|
5522
5519
|
}]
|
|
5523
5520
|
});
|
|
5521
|
+
// 서브메뉴 예시
|
|
5522
|
+
Gn.create('menubutton', {
|
|
5523
|
+
target: 'button[name=new-button-submenu]',
|
|
5524
|
+
size: 'normal',
|
|
5525
|
+
textSets: {
|
|
5526
|
+
buttonText: '편집 메뉴'
|
|
5527
|
+
},
|
|
5528
|
+
onSelect: function (value, text, menu, e) {
|
|
5529
|
+
console.log('선택된 메뉴:', { value: value, text: text, menu: menu });
|
|
5530
|
+
},
|
|
5531
|
+
data: [
|
|
5532
|
+
{
|
|
5533
|
+
text: '파일',
|
|
5534
|
+
value: 'file',
|
|
5535
|
+
child: [
|
|
5536
|
+
{ text: '새 파일', value: 'file-new' },
|
|
5537
|
+
{ text: '열기', value: 'file-open' },
|
|
5538
|
+
{
|
|
5539
|
+
text: '최근 파일',
|
|
5540
|
+
value: 'file-recent',
|
|
5541
|
+
child: [
|
|
5542
|
+
{ text: 'document.txt', value: 'file-recent-1' },
|
|
5543
|
+
{ text: 'image.png', value: 'file-recent-2' }
|
|
5544
|
+
]
|
|
5545
|
+
},
|
|
5546
|
+
{ text: '저장', value: 'file-save', disabled: true },
|
|
5547
|
+
{ text: '다른 이름으로 저장', value: 'file-saveas' }
|
|
5548
|
+
]
|
|
5549
|
+
},
|
|
5550
|
+
{
|
|
5551
|
+
text: '편집',
|
|
5552
|
+
value: 'edit',
|
|
5553
|
+
actived: true,
|
|
5554
|
+
child: [
|
|
5555
|
+
{ text: '실행 취소', value: 'edit-undo' },
|
|
5556
|
+
{ text: '다시 실행', value: 'edit-redo' }
|
|
5557
|
+
]
|
|
5558
|
+
},
|
|
5559
|
+
{
|
|
5560
|
+
text: '도움말',
|
|
5561
|
+
value: 'help',
|
|
5562
|
+
disabled: true
|
|
5563
|
+
}
|
|
5564
|
+
]
|
|
5565
|
+
});
|
|
5524
5566
|
````
|
|
5525
5567
|
|
|
5526
5568
|
|
|
@@ -5577,15 +5619,21 @@ compile: true
|
|
|
5577
5619
|
</tr>
|
|
5578
5620
|
<tr>
|
|
5579
5621
|
<td colspan="2">data</td>
|
|
5580
|
-
<td>Array[{value, text,
|
|
5622
|
+
<td>Array[{value, text, html, child, disabled, actived}]</td>
|
|
5581
5623
|
<td></td>
|
|
5582
|
-
<td>메뉴 목록에 출력할
|
|
5624
|
+
<td>메뉴 목록에 출력할 목록<br/>- value: 메뉴 값<br/>- text: 메뉴 텍스트<br/>- html: HTML로 렌더링할 내용<br/>- child: 하위 메뉴 배열 (최대 2단계)<br/>- disabled: 비활성화 여부 (boolean)<br/>- actived: 활성화 상태 표시 여부</td>
|
|
5625
|
+
</tr>
|
|
5626
|
+
<tr>
|
|
5627
|
+
<td colspan="2">disabled</td>
|
|
5628
|
+
<td>boolean</td>
|
|
5629
|
+
<td>false</td>
|
|
5630
|
+
<td>버튼 비활성화 여부</td>
|
|
5583
5631
|
</tr>
|
|
5584
5632
|
<tr>
|
|
5585
5633
|
<td colspan="2">onSelect</td>
|
|
5586
|
-
<td>function(value, text)</td>
|
|
5634
|
+
<td>function(value, text, menu, e)</td>
|
|
5587
5635
|
<td></td>
|
|
5588
|
-
<td>메뉴 선택 시 수행될
|
|
5636
|
+
<td>메뉴 선택 시 수행될 이벤트<br/>- value: 선택된 메뉴의 값<br/>- text: 선택된 메뉴의 텍스트<br/>- menu: 선택된 메뉴 객체<br/>- e: MouseEvent 객체</td>
|
|
5589
5637
|
</tr>
|
|
5590
5638
|
</tbody>
|
|
5591
5639
|
</table>
|
|
@@ -5604,6 +5652,21 @@ compile: true
|
|
|
5604
5652
|
<td>void</td>
|
|
5605
5653
|
<td>버튼명을 변경한다.</td>
|
|
5606
5654
|
</tr>
|
|
5655
|
+
<tr>
|
|
5656
|
+
<td>reRender(data: Array)</td>
|
|
5657
|
+
<td>void</td>
|
|
5658
|
+
<td>메뉴 데이터를 전달받아 DOM을 다시 생성한다.</td>
|
|
5659
|
+
</tr>
|
|
5660
|
+
<tr>
|
|
5661
|
+
<td>disabled()</td>
|
|
5662
|
+
<td>void</td>
|
|
5663
|
+
<td>버튼을 비활성화한다.</td>
|
|
5664
|
+
</tr>
|
|
5665
|
+
<tr>
|
|
5666
|
+
<td>enabled()</td>
|
|
5667
|
+
<td>void</td>
|
|
5668
|
+
<td>버튼을 활성화한다.</td>
|
|
5669
|
+
</tr>
|
|
5607
5670
|
</tbody>
|
|
5608
5671
|
</table>
|
|
5609
5672
|
*/
|
|
@@ -5691,6 +5754,47 @@ compile: true
|
|
|
5691
5754
|
color: #fff;
|
|
5692
5755
|
background-color: #aae033;
|
|
5693
5756
|
}
|
|
5757
|
+
.gn-menuButton .menuButton-menu.is-disabled {
|
|
5758
|
+
pointer-events: none;
|
|
5759
|
+
opacity: 0.5;
|
|
5760
|
+
}
|
|
5761
|
+
.gn-menuButton .menuButton-menu.is-actived {
|
|
5762
|
+
background-color: #2b2b2b;
|
|
5763
|
+
}
|
|
5764
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-content {
|
|
5765
|
+
display: flex;
|
|
5766
|
+
align-items: center;
|
|
5767
|
+
justify-content: space-between;
|
|
5768
|
+
width: 100%;
|
|
5769
|
+
}
|
|
5770
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-arrow {
|
|
5771
|
+
margin-left: 10px;
|
|
5772
|
+
display: inline-flex;
|
|
5773
|
+
align-items: center;
|
|
5774
|
+
}
|
|
5775
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu {
|
|
5776
|
+
display: none;
|
|
5777
|
+
position: absolute;
|
|
5778
|
+
left: 100%;
|
|
5779
|
+
top: 0;
|
|
5780
|
+
min-width: 150px;
|
|
5781
|
+
background-color: #2b2b2b;
|
|
5782
|
+
border: 1px solid hsl(0, 0%, 48%);
|
|
5783
|
+
border-radius: 2px;
|
|
5784
|
+
z-index: 21;
|
|
5785
|
+
padding: 0.35rem;
|
|
5786
|
+
}
|
|
5787
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu {
|
|
5788
|
+
color: hsl(0, 0%, 86%);
|
|
5789
|
+
cursor: pointer;
|
|
5790
|
+
}
|
|
5791
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu:hover {
|
|
5792
|
+
color: #fff;
|
|
5793
|
+
background-color: #aae033;
|
|
5794
|
+
}
|
|
5795
|
+
.gn-menuButton .menuButton-menu:hover > .menuButton-submenu {
|
|
5796
|
+
display: block;
|
|
5797
|
+
}
|
|
5694
5798
|
.gn-menuButton.is-white button {
|
|
5695
5799
|
color: hsl(0, 0%, 100%);
|
|
5696
5800
|
border-color: hsl(0, 0%, 100%);
|
|
@@ -9476,7 +9580,7 @@ tag:
|
|
|
9476
9580
|
}
|
|
9477
9581
|
.gn-select::after {
|
|
9478
9582
|
content: "\f107";
|
|
9479
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9583
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9480
9584
|
font-weight: 900;
|
|
9481
9585
|
position: absolute;
|
|
9482
9586
|
right: 0.5rem;
|
|
@@ -12638,9 +12742,13 @@ tag:
|
|
|
12638
12742
|
```ejs
|
|
12639
12743
|
<div class="new-grid"></div>
|
|
12640
12744
|
|
|
12641
|
-
<div style="width: 100%; height:
|
|
12745
|
+
<div style="width: 100%; height: 100px; overflow-x: auto; margin-top: 20px;">
|
|
12642
12746
|
<div class="new-grid2"></div>
|
|
12643
12747
|
</div>
|
|
12748
|
+
|
|
12749
|
+
<div style="width: 100%; height: 350px; overflow-x: auto; margin-top: 20px;">
|
|
12750
|
+
<div class="new-grid3"></div>
|
|
12751
|
+
</div>
|
|
12644
12752
|
```
|
|
12645
12753
|
````
|
|
12646
12754
|
Gn.create('datagrid', {
|
|
@@ -12753,19 +12861,122 @@ Gn.create('datagrid', {
|
|
|
12753
12861
|
})
|
|
12754
12862
|
Gn.create('datagrid', {
|
|
12755
12863
|
target: '.new-grid2',
|
|
12864
|
+
headers: [
|
|
12865
|
+
{
|
|
12866
|
+
label: 'no',
|
|
12867
|
+
key: 'number',
|
|
12868
|
+
onSelect: function () {
|
|
12869
|
+
// eslint-disable-next-line prefer-rest-params
|
|
12870
|
+
console.log(arguments);
|
|
12871
|
+
},
|
|
12872
|
+
template: function (k, d) {
|
|
12873
|
+
return '<span>' + d[k] + '</span>';
|
|
12874
|
+
},
|
|
12875
|
+
draggable: true,
|
|
12876
|
+
sortable: true,
|
|
12877
|
+
sort: 'asc'
|
|
12878
|
+
},
|
|
12879
|
+
{
|
|
12880
|
+
label: '제목',
|
|
12881
|
+
key: 'title',
|
|
12882
|
+
style: {
|
|
12883
|
+
width: '250px'
|
|
12884
|
+
},
|
|
12885
|
+
className: 'has-text-right',
|
|
12886
|
+
draggable: true,
|
|
12887
|
+
bodyClass: 'has-text-left',
|
|
12888
|
+
sortable: true
|
|
12889
|
+
},
|
|
12890
|
+
{
|
|
12891
|
+
label: '날짜',
|
|
12892
|
+
key: 'date',
|
|
12893
|
+
style: {
|
|
12894
|
+
width: '150px'
|
|
12895
|
+
},
|
|
12896
|
+
className: 'has-text-center',
|
|
12897
|
+
bodyClass: 'has-text-left'
|
|
12898
|
+
}
|
|
12899
|
+
],
|
|
12900
|
+
data: [
|
|
12901
|
+
{
|
|
12902
|
+
number: '1',
|
|
12903
|
+
title: '하나',
|
|
12904
|
+
date: '2020-09-19',
|
|
12905
|
+
desc: 'hello, world',
|
|
12906
|
+
child: [
|
|
12907
|
+
{
|
|
12908
|
+
number: '1-1',
|
|
12909
|
+
title: '1-하나',
|
|
12910
|
+
date: '2020-09-19'
|
|
12911
|
+
},
|
|
12912
|
+
{
|
|
12913
|
+
number: '1-2',
|
|
12914
|
+
title: '1-둘',
|
|
12915
|
+
date: '2020-09-19',
|
|
12916
|
+
desc: 'hello, world',
|
|
12917
|
+
child: [
|
|
12918
|
+
{
|
|
12919
|
+
number: '1-2-1',
|
|
12920
|
+
title: '1-둘-1',
|
|
12921
|
+
date: '2020-09-19',
|
|
12922
|
+
desc: 'hello, world',
|
|
12923
|
+
child: [
|
|
12924
|
+
{
|
|
12925
|
+
number: '1-2-1-1',
|
|
12926
|
+
title: '1-둘-1-1',
|
|
12927
|
+
desc: 'hello, world',
|
|
12928
|
+
date: '2020-09-19'
|
|
12929
|
+
}
|
|
12930
|
+
]
|
|
12931
|
+
}
|
|
12932
|
+
]
|
|
12933
|
+
}
|
|
12934
|
+
],
|
|
12935
|
+
color: 'is-danger-light'
|
|
12936
|
+
},
|
|
12937
|
+
{
|
|
12938
|
+
number: '2',
|
|
12939
|
+
title: '둘',
|
|
12940
|
+
date: '2020-09-19',
|
|
12941
|
+
desc: 'hello, world'
|
|
12942
|
+
}
|
|
12943
|
+
],
|
|
12944
|
+
hasHeader: false,
|
|
12945
|
+
hasCheck: true,
|
|
12946
|
+
hasDelete: true,
|
|
12947
|
+
textSets: {
|
|
12948
|
+
deleteConfirmMessage: '파일을 삭제하시겠습니까?'
|
|
12949
|
+
},
|
|
12950
|
+
// onDelete 에서 false 를 반환하면 해당 행 삭제를 취소할 수 있다.
|
|
12951
|
+
onDelete: (data, index) => {
|
|
12952
|
+
console.log(data, index);
|
|
12953
|
+
// 예) 특정 조건에 따라 삭제 취소
|
|
12954
|
+
// if (index === 0) {
|
|
12955
|
+
// return false;
|
|
12956
|
+
// }
|
|
12957
|
+
}
|
|
12958
|
+
})
|
|
12959
|
+
Gn.create('datagrid', {
|
|
12960
|
+
target: '.new-grid3',
|
|
12756
12961
|
headers: [
|
|
12757
12962
|
{
|
|
12758
12963
|
label: 'row data numbers',
|
|
12759
12964
|
key: 'number',
|
|
12760
12965
|
style: { width: '50px' },
|
|
12761
12966
|
sortable: true,
|
|
12762
|
-
draggable: true
|
|
12967
|
+
draggable: true,
|
|
12968
|
+
template: function (k, d) {
|
|
12969
|
+
return '<span>' + d[k] + '</span>';
|
|
12970
|
+
}
|
|
12763
12971
|
},
|
|
12764
12972
|
{
|
|
12765
12973
|
label: '제목',
|
|
12766
12974
|
key: 'title',
|
|
12767
12975
|
sortable: true,
|
|
12768
|
-
draggable: true
|
|
12976
|
+
draggable: true,
|
|
12977
|
+
template: function (k, d) {
|
|
12978
|
+
return '<span>' + d[k] + '</span>';
|
|
12979
|
+
}
|
|
12769
12980
|
},
|
|
12770
12981
|
{
|
|
12771
12982
|
label: '날짜를 표시하는 컬럼입니다',
|
|
@@ -12828,8 +13039,6 @@ Gn.create('datagrid', {
|
|
|
12828
13039
|
paginator: {
|
|
12829
13040
|
rows: 30
|
|
12830
13041
|
},
|
|
12831
|
-
hasDelete: true,
|
|
12832
|
-
fixHeader: true,
|
|
12833
13042
|
onChange: updatedData => {
|
|
12834
13043
|
console.log(updatedData)
|
|
12835
13044
|
}
|
|
@@ -12944,7 +13153,7 @@ Gn.create('datagrid', {
|
|
|
12944
13153
|
<b>color:is-warning-light</b> => 행의 색 변경</td>
|
|
12945
13154
|
</tr>
|
|
12946
13155
|
<tr>
|
|
12947
|
-
<td rowspan="
|
|
13156
|
+
<td rowspan="4">textSets</td>
|
|
12948
13157
|
<td>noData</td>
|
|
12949
13158
|
<td>string</td>
|
|
12950
13159
|
<td>No records available.</td>
|
|
@@ -12962,6 +13171,12 @@ Gn.create('datagrid', {
|
|
|
12962
13171
|
<td></td>
|
|
12963
13172
|
<td>삭제버튼 헤더표시문구</td>
|
|
12964
13173
|
</tr>
|
|
13174
|
+
<tr>
|
|
13175
|
+
<td>deleteConfirmMessage</td>
|
|
13176
|
+
<td>string</td>
|
|
13177
|
+
<td></td>
|
|
13178
|
+
<td>삭제 확인 창 표시문구 - 삭제 버튼 클릭시 확인 창 출력</td>
|
|
13179
|
+
</tr>
|
|
12965
13180
|
<tr>
|
|
12966
13181
|
<td colspan="2">childField</td>
|
|
12967
13182
|
<td>string</td>
|
|
@@ -12986,6 +13201,12 @@ Gn.create('datagrid', {
|
|
|
12986
13201
|
<td>false</td>
|
|
12987
13202
|
<td>삭제버튼 생성 여부</td>
|
|
12988
13203
|
</tr>
|
|
13204
|
+
<tr>
|
|
13205
|
+
<td colspan="2">hasHeader</td>
|
|
13206
|
+
<td>boolean</td>
|
|
13207
|
+
<td>true</td>
|
|
13208
|
+
<td>헤더 생성 여부</td>
|
|
13209
|
+
</tr>
|
|
12989
13210
|
<tr>
|
|
12990
13211
|
<td colspan="2">readonly</td>
|
|
12991
13212
|
<td>boolean</td>
|
|
@@ -13083,6 +13304,12 @@ Gn.create('datagrid', {
|
|
|
13083
13304
|
<td></td>
|
|
13084
13305
|
<td>이동, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러</td>
|
|
13085
13306
|
</tr>
|
|
13307
|
+
<tr>
|
|
13308
|
+
<td colspan="2">onDelete</td>
|
|
13309
|
+
<td>function(deletedData, index)</td>
|
|
13310
|
+
<td>deletedData, index 를 인자로 받으며, false 를 반환하면 해당 행 삭제를 취소한다.</td>
|
|
13311
|
+
<td>삭제 버튼 클릭 시 삭제 대상 데이터와 인덱스를 받을 수 있는 이벤트핸들러<br>onChange 보다 먼저 동작하며, onDelete 에서 false 를 반환하면 실제 삭제 및 onChange 호출이 수행되지 않는다.</td>
|
|
13312
|
+
</tr>
|
|
13086
13313
|
</tbody>
|
|
13087
13314
|
</table>
|
|
13088
13315
|
|
|
@@ -13268,11 +13495,11 @@ Gn.create('datagrid', {
|
|
|
13268
13495
|
}
|
|
13269
13496
|
.gn-datagrid .gn-datagrid-body-row .is-toggler::before {
|
|
13270
13497
|
content: "\f0d7";
|
|
13271
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13498
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13272
13499
|
font-weight: 700;
|
|
13273
13500
|
}
|
|
13274
13501
|
.gn-datagrid .gn-datagrid-body-row.has-child[data-depth="0"] .is-toggler {
|
|
13275
|
-
margin-left: -
|
|
13502
|
+
margin-left: -6px;
|
|
13276
13503
|
}
|
|
13277
13504
|
.gn-datagrid .gn-datagrid-body-row.is-collapsed .is-toggler::before {
|
|
13278
13505
|
content: "\f0da";
|
|
@@ -13472,6 +13699,9 @@ Gn.create('datagrid', {
|
|
|
13472
13699
|
.gn-datagrid.has-left-padding .gn-datagrid-body-row:not(.has-child)[data-depth="0"] .gn-datagrid-body-cell:first-child {
|
|
13473
13700
|
padding-left: 15px;
|
|
13474
13701
|
}
|
|
13702
|
+
.gn-datagrid.is-headless .gn-datagrid-body-row:first-child {
|
|
13703
|
+
border-top: 1px solid #111111;
|
|
13704
|
+
}
|
|
13475
13705
|
.gn-datagrid .gn-datagrid-header-cell {
|
|
13476
13706
|
border-right: 1px solid #111111;
|
|
13477
13707
|
padding: 0.55rem;
|
|
@@ -17186,11 +17416,21 @@ tag:
|
|
|
17186
17416
|
<div class="gn-loader is-info"></div>
|
|
17187
17417
|
```
|
|
17188
17418
|
|
|
17419
|
+
```html
|
|
17420
|
+
<div class="gn-loader is-inline"></div>
|
|
17421
|
+
<div class="gn-loader is-inline is-success"></div>
|
|
17422
|
+
<div class="gn-loader is-inline is-warning"></div>
|
|
17423
|
+
<div class="gn-loader is-inline is-danger"></div>
|
|
17424
|
+
<div class="gn-loader is-inline is-info"></div>
|
|
17425
|
+
<div class="gn-loader is-inline is-primary"></div>
|
|
17426
|
+
```
|
|
17427
|
+
|
|
17189
17428
|
### 타입
|
|
17190
17429
|
|
|
17191
17430
|
```html
|
|
17192
17431
|
<div class="gn-loader is-bounce"></div><br>
|
|
17193
17432
|
<div class="gn-loader is-move"></div>
|
|
17433
|
+
<div class="gn-loader is-inline"></div><br>
|
|
17194
17434
|
```
|
|
17195
17435
|
|
|
17196
17436
|
### 생성 옵션
|
|
@@ -17250,7 +17490,7 @@ Gn.create('button', {
|
|
|
17250
17490
|
<td colspan="2">type</td>
|
|
17251
17491
|
<td>string</td>
|
|
17252
17492
|
<td></td>
|
|
17253
|
-
<td>'bounce','move','
|
|
17493
|
+
<td>'inline','bounce','move','</td>
|
|
17254
17494
|
</tr>
|
|
17255
17495
|
<tr>
|
|
17256
17496
|
<td colspan="2">positionX</td>
|
|
@@ -17359,6 +17599,7 @@ Gn.create('button', {
|
|
|
17359
17599
|
.gn-loader.is-small {
|
|
17360
17600
|
width: 15px;
|
|
17361
17601
|
height: 15px;
|
|
17602
|
+
border-width: 5px;
|
|
17362
17603
|
}
|
|
17363
17604
|
.gn-loader.is-normal {
|
|
17364
17605
|
width: 25px;
|
|
@@ -17444,6 +17685,82 @@ Gn.create('button', {
|
|
|
17444
17685
|
border: 13px solid #aae033;
|
|
17445
17686
|
animation: move 1.5s ease-in-out infinite alternate;
|
|
17446
17687
|
}
|
|
17688
|
+
.gn-loader.is-inline {
|
|
17689
|
+
border: 0;
|
|
17690
|
+
position: relative;
|
|
17691
|
+
margin-left: 10px;
|
|
17692
|
+
margin-right: 10px;
|
|
17693
|
+
animation-delay: -0.12s;
|
|
17694
|
+
background: hsl(0, 0%, 29%);
|
|
17695
|
+
}
|
|
17696
|
+
.gn-loader.is-inline, .gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17697
|
+
display: inline-block !important;
|
|
17698
|
+
width: 3px;
|
|
17699
|
+
height: 3px;
|
|
17700
|
+
animation: colorPulse 1.4s ease-in-out infinite;
|
|
17701
|
+
border-radius: 50%;
|
|
17702
|
+
}
|
|
17703
|
+
.gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17704
|
+
content: "";
|
|
17705
|
+
position: absolute;
|
|
17706
|
+
top: 0;
|
|
17707
|
+
}
|
|
17708
|
+
.gn-loader.is-inline::before {
|
|
17709
|
+
animation-delay: -0.24s;
|
|
17710
|
+
margin-left: -8px;
|
|
17711
|
+
}
|
|
17712
|
+
.gn-loader.is-inline::after {
|
|
17713
|
+
animation-delay: 0s;
|
|
17714
|
+
margin-left: 8px;
|
|
17715
|
+
}
|
|
17716
|
+
.gn-loader.is-inline.is-white, .gn-loader.is-inline.is-white::before, .gn-loader.is-inline.is-white::after {
|
|
17717
|
+
animation-name: colorPulse-white;
|
|
17718
|
+
}
|
|
17719
|
+
.gn-loader.is-inline.is-black, .gn-loader.is-inline.is-black::before, .gn-loader.is-inline.is-black::after {
|
|
17720
|
+
animation-name: colorPulse-black;
|
|
17721
|
+
}
|
|
17722
|
+
.gn-loader.is-inline.is-light, .gn-loader.is-inline.is-light::before, .gn-loader.is-inline.is-light::after {
|
|
17723
|
+
animation-name: colorPulse-light;
|
|
17724
|
+
}
|
|
17725
|
+
.gn-loader.is-inline.is-dark, .gn-loader.is-inline.is-dark::before, .gn-loader.is-inline.is-dark::after {
|
|
17726
|
+
animation-name: colorPulse-dark;
|
|
17727
|
+
}
|
|
17728
|
+
.gn-loader.is-inline.is-primary, .gn-loader.is-inline.is-primary::before, .gn-loader.is-inline.is-primary::after {
|
|
17729
|
+
animation-name: colorPulse-primary;
|
|
17730
|
+
}
|
|
17731
|
+
.gn-loader.is-inline.is-link, .gn-loader.is-inline.is-link::before, .gn-loader.is-inline.is-link::after {
|
|
17732
|
+
animation-name: colorPulse-link;
|
|
17733
|
+
}
|
|
17734
|
+
.gn-loader.is-inline.is-info, .gn-loader.is-inline.is-info::before, .gn-loader.is-inline.is-info::after {
|
|
17735
|
+
animation-name: colorPulse-info;
|
|
17736
|
+
}
|
|
17737
|
+
.gn-loader.is-inline.is-cancel, .gn-loader.is-inline.is-cancel::before, .gn-loader.is-inline.is-cancel::after {
|
|
17738
|
+
animation-name: colorPulse-cancel;
|
|
17739
|
+
}
|
|
17740
|
+
.gn-loader.is-inline.is-success, .gn-loader.is-inline.is-success::before, .gn-loader.is-inline.is-success::after {
|
|
17741
|
+
animation-name: colorPulse-success;
|
|
17742
|
+
}
|
|
17743
|
+
.gn-loader.is-inline.is-warning, .gn-loader.is-inline.is-warning::before, .gn-loader.is-inline.is-warning::after {
|
|
17744
|
+
animation-name: colorPulse-warning;
|
|
17745
|
+
}
|
|
17746
|
+
.gn-loader.is-inline.is-danger, .gn-loader.is-inline.is-danger::before, .gn-loader.is-inline.is-danger::after {
|
|
17747
|
+
animation-name: colorPulse-danger;
|
|
17748
|
+
}
|
|
17749
|
+
.gn-loader.is-inline.is-trans, .gn-loader.is-inline.is-trans::before, .gn-loader.is-inline.is-trans::after {
|
|
17750
|
+
animation-name: colorPulse-trans;
|
|
17751
|
+
}
|
|
17752
|
+
.gn-loader.is-inline.is-help, .gn-loader.is-inline.is-help::before, .gn-loader.is-inline.is-help::after {
|
|
17753
|
+
animation-name: colorPulse-help;
|
|
17754
|
+
}
|
|
17755
|
+
.gn-loader.is-inline.is-plain, .gn-loader.is-inline.is-plain::before, .gn-loader.is-inline.is-plain::after {
|
|
17756
|
+
animation-name: colorPulse-plain;
|
|
17757
|
+
}
|
|
17758
|
+
.gn-loader.is-inline.is-secondary, .gn-loader.is-inline.is-secondary::before, .gn-loader.is-inline.is-secondary::after {
|
|
17759
|
+
animation-name: colorPulse-secondary;
|
|
17760
|
+
}
|
|
17761
|
+
.gn-loader.is-inline.is-mono, .gn-loader.is-inline.is-mono::before, .gn-loader.is-inline.is-mono::after {
|
|
17762
|
+
animation-name: colorPulse-mono;
|
|
17763
|
+
}
|
|
17447
17764
|
|
|
17448
17765
|
@keyframes load-spin {
|
|
17449
17766
|
0% {
|
|
@@ -17472,56 +17789,260 @@ Gn.create('button', {
|
|
|
17472
17789
|
transform: translateX(15px);
|
|
17473
17790
|
}
|
|
17474
17791
|
}
|
|
17475
|
-
|
|
17476
|
-
|
|
17477
|
-
|
|
17478
|
-
|
|
17479
|
-
|
|
17480
|
-
|
|
17481
|
-
|
|
17482
|
-
|
|
17483
|
-
|
|
17484
|
-
|
|
17485
|
-
|
|
17486
|
-
|
|
17487
|
-
-
|
|
17488
|
-
|
|
17489
|
-
|
|
17490
|
-
|
|
17491
|
-
|
|
17492
|
-
|
|
17493
|
-
|
|
17494
|
-
|
|
17495
|
-
|
|
17496
|
-
|
|
17497
|
-
|
|
17498
|
-
|
|
17499
|
-
|
|
17500
|
-
|
|
17501
|
-
|
|
17502
|
-
|
|
17503
|
-
|
|
17504
|
-
|
|
17505
|
-
|
|
17506
|
-
|
|
17507
|
-
|
|
17508
|
-
|
|
17509
|
-
|
|
17510
|
-
|
|
17511
|
-
|
|
17512
|
-
|
|
17513
|
-
|
|
17514
|
-
|
|
17515
|
-
|
|
17516
|
-
|
|
17517
|
-
|
|
17518
|
-
|
|
17519
|
-
|
|
17520
|
-
|
|
17521
|
-
|
|
17522
|
-
|
|
17523
|
-
|
|
17524
|
-
|
|
17792
|
+
@keyframes colorPulse {
|
|
17793
|
+
0%, 70%, 100% {
|
|
17794
|
+
background: hsl(0, 0%, 29%);
|
|
17795
|
+
/* 비활성 색상 */
|
|
17796
|
+
transform: scale(1);
|
|
17797
|
+
}
|
|
17798
|
+
35% {
|
|
17799
|
+
background: #aae033;
|
|
17800
|
+
/* 활성 색상 */
|
|
17801
|
+
transform: scale(1.1);
|
|
17802
|
+
}
|
|
17803
|
+
}
|
|
17804
|
+
@keyframes colorPulse-white {
|
|
17805
|
+
0%, 70%, 100% {
|
|
17806
|
+
background: hsl(0, 0%, 71%);
|
|
17807
|
+
/* 비활성 색상 */
|
|
17808
|
+
transform: scale(1);
|
|
17809
|
+
}
|
|
17810
|
+
35% {
|
|
17811
|
+
background: hsl(0, 0%, 100%);
|
|
17812
|
+
/* 활성 색상 */
|
|
17813
|
+
transform: scale(1.1);
|
|
17814
|
+
}
|
|
17815
|
+
}
|
|
17816
|
+
@keyframes colorPulse-black {
|
|
17817
|
+
0%, 70%, 100% {
|
|
17818
|
+
background: hsl(0, 0%, 86%);
|
|
17819
|
+
/* 비활성 색상 */
|
|
17820
|
+
transform: scale(1);
|
|
17821
|
+
}
|
|
17822
|
+
35% {
|
|
17823
|
+
background: hsl(0, 0%, 4%);
|
|
17824
|
+
/* 활성 색상 */
|
|
17825
|
+
transform: scale(1.1);
|
|
17826
|
+
}
|
|
17827
|
+
}
|
|
17828
|
+
@keyframes colorPulse-light {
|
|
17829
|
+
0%, 70%, 100% {
|
|
17830
|
+
background: hsl(0, 0%, 93%);
|
|
17831
|
+
/* 비활성 색상 */
|
|
17832
|
+
transform: scale(1);
|
|
17833
|
+
}
|
|
17834
|
+
35% {
|
|
17835
|
+
background: hsl(0, 0%, 96%);
|
|
17836
|
+
/* 활성 색상 */
|
|
17837
|
+
transform: scale(1.1);
|
|
17838
|
+
}
|
|
17839
|
+
}
|
|
17840
|
+
@keyframes colorPulse-dark {
|
|
17841
|
+
0%, 70%, 100% {
|
|
17842
|
+
background: hsl(0, 0%, 86%);
|
|
17843
|
+
/* 비활성 색상 */
|
|
17844
|
+
transform: scale(1);
|
|
17845
|
+
}
|
|
17846
|
+
35% {
|
|
17847
|
+
background: hsl(0, 0%, 20%);
|
|
17848
|
+
/* 활성 색상 */
|
|
17849
|
+
transform: scale(1.1);
|
|
17850
|
+
}
|
|
17851
|
+
}
|
|
17852
|
+
@keyframes colorPulse-primary {
|
|
17853
|
+
0%, 70%, 100% {
|
|
17854
|
+
background: rgb(247.6212765957, 252.3089361702, 237.2910638298);
|
|
17855
|
+
/* 비활성 색상 */
|
|
17856
|
+
transform: scale(1);
|
|
17857
|
+
}
|
|
17858
|
+
35% {
|
|
17859
|
+
background: #aae033;
|
|
17860
|
+
/* 활성 색상 */
|
|
17861
|
+
transform: scale(1.1);
|
|
17862
|
+
}
|
|
17863
|
+
}
|
|
17864
|
+
@keyframes colorPulse-link {
|
|
17865
|
+
0%, 70%, 100% {
|
|
17866
|
+
background: hsl(217, 71%, 96%);
|
|
17867
|
+
/* 비활성 색상 */
|
|
17868
|
+
transform: scale(1);
|
|
17869
|
+
}
|
|
17870
|
+
35% {
|
|
17871
|
+
background: hsl(217, 71%, 53%);
|
|
17872
|
+
/* 활성 색상 */
|
|
17873
|
+
transform: scale(1.1);
|
|
17874
|
+
}
|
|
17875
|
+
}
|
|
17876
|
+
@keyframes colorPulse-info {
|
|
17877
|
+
0%, 70%, 100% {
|
|
17878
|
+
background: hsl(204, 71%, 96%);
|
|
17879
|
+
/* 비활성 색상 */
|
|
17880
|
+
transform: scale(1);
|
|
17881
|
+
}
|
|
17882
|
+
35% {
|
|
17883
|
+
background: hsl(204, 71%, 53%);
|
|
17884
|
+
/* 활성 색상 */
|
|
17885
|
+
transform: scale(1.1);
|
|
17886
|
+
}
|
|
17887
|
+
}
|
|
17888
|
+
@keyframes colorPulse-cancel {
|
|
17889
|
+
0%, 70%, 100% {
|
|
17890
|
+
background: hsl(0, 0%, 96%);
|
|
17891
|
+
/* 비활성 색상 */
|
|
17892
|
+
transform: scale(1);
|
|
17893
|
+
}
|
|
17894
|
+
35% {
|
|
17895
|
+
background: hsl(0, 0%, 71%);
|
|
17896
|
+
/* 활성 색상 */
|
|
17897
|
+
transform: scale(1.1);
|
|
17898
|
+
}
|
|
17899
|
+
}
|
|
17900
|
+
@keyframes colorPulse-success {
|
|
17901
|
+
0%, 70%, 100% {
|
|
17902
|
+
background: hsl(141, 53%, 96%);
|
|
17903
|
+
/* 비활성 색상 */
|
|
17904
|
+
transform: scale(1);
|
|
17905
|
+
}
|
|
17906
|
+
35% {
|
|
17907
|
+
background: hsl(141, 53%, 53%);
|
|
17908
|
+
/* 활성 색상 */
|
|
17909
|
+
transform: scale(1.1);
|
|
17910
|
+
}
|
|
17911
|
+
}
|
|
17912
|
+
@keyframes colorPulse-warning {
|
|
17913
|
+
0%, 70%, 100% {
|
|
17914
|
+
background: hsl(38, 100%, 96%);
|
|
17915
|
+
/* 비활성 색상 */
|
|
17916
|
+
transform: scale(1);
|
|
17917
|
+
}
|
|
17918
|
+
35% {
|
|
17919
|
+
background: hsl(38, 100%, 50%);
|
|
17920
|
+
/* 활성 색상 */
|
|
17921
|
+
transform: scale(1.1);
|
|
17922
|
+
}
|
|
17923
|
+
}
|
|
17924
|
+
@keyframes colorPulse-danger {
|
|
17925
|
+
0%, 70%, 100% {
|
|
17926
|
+
background: hsl(348, 86%, 96%);
|
|
17927
|
+
/* 비활성 색상 */
|
|
17928
|
+
transform: scale(1);
|
|
17929
|
+
}
|
|
17930
|
+
35% {
|
|
17931
|
+
background: hsl(348, 86%, 61%);
|
|
17932
|
+
/* 활성 색상 */
|
|
17933
|
+
transform: scale(1.1);
|
|
17934
|
+
}
|
|
17935
|
+
}
|
|
17936
|
+
@keyframes colorPulse-trans {
|
|
17937
|
+
0%, 70%, 100% {
|
|
17938
|
+
background: hsl(0, 0%, 100%);
|
|
17939
|
+
/* 비활성 색상 */
|
|
17940
|
+
transform: scale(1);
|
|
17941
|
+
}
|
|
17942
|
+
35% {
|
|
17943
|
+
background: hsl(0, 0%, 100%);
|
|
17944
|
+
/* 활성 색상 */
|
|
17945
|
+
transform: scale(1.1);
|
|
17946
|
+
}
|
|
17947
|
+
}
|
|
17948
|
+
@keyframes colorPulse-help {
|
|
17949
|
+
0%, 70%, 100% {
|
|
17950
|
+
background: hsl(203, 96%, 96%);
|
|
17951
|
+
/* 비활성 색상 */
|
|
17952
|
+
transform: scale(1);
|
|
17953
|
+
}
|
|
17954
|
+
35% {
|
|
17955
|
+
background: hsl(203, 96%, 43%);
|
|
17956
|
+
/* 활성 색상 */
|
|
17957
|
+
transform: scale(1.1);
|
|
17958
|
+
}
|
|
17959
|
+
}
|
|
17960
|
+
@keyframes colorPulse-plain {
|
|
17961
|
+
0%, 70%, 100% {
|
|
17962
|
+
background: hsl(171, 100%, 29%);
|
|
17963
|
+
/* 비활성 색상 */
|
|
17964
|
+
transform: scale(1);
|
|
17965
|
+
}
|
|
17966
|
+
35% {
|
|
17967
|
+
background: #fff;
|
|
17968
|
+
/* 활성 색상 */
|
|
17969
|
+
transform: scale(1.1);
|
|
17970
|
+
}
|
|
17971
|
+
}
|
|
17972
|
+
@keyframes colorPulse-secondary {
|
|
17973
|
+
0%, 70%, 100% {
|
|
17974
|
+
background: rgb(234.6, 245.08, 255);
|
|
17975
|
+
/* 비활성 색상 */
|
|
17976
|
+
transform: scale(1);
|
|
17977
|
+
}
|
|
17978
|
+
35% {
|
|
17979
|
+
background: #0083ff;
|
|
17980
|
+
/* 활성 색상 */
|
|
17981
|
+
transform: scale(1.1);
|
|
17982
|
+
}
|
|
17983
|
+
}
|
|
17984
|
+
@keyframes colorPulse-mono {
|
|
17985
|
+
0%, 70%, 100% {
|
|
17986
|
+
background: rgb(244.8, 244.8, 244.8);
|
|
17987
|
+
/* 비활성 색상 */
|
|
17988
|
+
transform: scale(1);
|
|
17989
|
+
}
|
|
17990
|
+
35% {
|
|
17991
|
+
background: #656565;
|
|
17992
|
+
/* 활성 색상 */
|
|
17993
|
+
transform: scale(1.1);
|
|
17994
|
+
}
|
|
17995
|
+
}
|
|
17996
|
+
/*
|
|
17997
|
+
---
|
|
17998
|
+
name: Message
|
|
17999
|
+
category:
|
|
18000
|
+
- COMPONENT/Message(js)
|
|
18001
|
+
tag:
|
|
18002
|
+
- v.0.1.0
|
|
18003
|
+
- javascript
|
|
18004
|
+
---
|
|
18005
|
+
|
|
18006
|
+
|
|
18007
|
+
### 기본 메세지 알림
|
|
18008
|
+
-Text with icon / Text only 선택 사용 할 수 있다.
|
|
18009
|
+
|
|
18010
|
+
```html
|
|
18011
|
+
<div class="gn-message is-success has-arrange">
|
|
18012
|
+
<span class="gn-icon is-normal">
|
|
18013
|
+
<i class="fas fa-check"></i>
|
|
18014
|
+
</span>
|
|
18015
|
+
<p>Success! Your message has been sent successfully. <br/> Success! Your message has been sent successfully. </p>
|
|
18016
|
+
</div>
|
|
18017
|
+
<div class="gn-message is-warning has-arrange">
|
|
18018
|
+
<span class="gn-icon is-normal">
|
|
18019
|
+
<i class="fas fa-exclamation-circle"></i>
|
|
18020
|
+
</span>
|
|
18021
|
+
<p>Warning! There was a problem with your network connection.</p>
|
|
18022
|
+
<span class="gn-icon is-close is-dark">
|
|
18023
|
+
<i class="fas fa-times"></i>
|
|
18024
|
+
</span>
|
|
18025
|
+
</div>
|
|
18026
|
+
<div class="gn-message is-danger has-arrange">
|
|
18027
|
+
<span class="gn-icon is-normal">
|
|
18028
|
+
<i class="fas fa-exclamation-triangle"></i>
|
|
18029
|
+
</span>
|
|
18030
|
+
<p>Error! A problem has been occurred while submitting your data.</p>
|
|
18031
|
+
</div>
|
|
18032
|
+
<div class="gn-message is-info has-arrange">
|
|
18033
|
+
<span class="gn-icon is-normal">
|
|
18034
|
+
<i class="fas fa-info-circle"></i>
|
|
18035
|
+
</span>
|
|
18036
|
+
<p>Info! Please read the comments carefully.</p>
|
|
18037
|
+
<span class="gn-icon is-close is-dark">
|
|
18038
|
+
<i class="fas fa-times"></i>
|
|
18039
|
+
</span>
|
|
18040
|
+
</div>
|
|
18041
|
+
<div class="gn-message is-guide has-arrange">
|
|
18042
|
+
<span class="gn-icon is-normal">
|
|
18043
|
+
<i class="fas fa-info-circle"></i>
|
|
18044
|
+
</span>
|
|
18045
|
+
<p> 가이드 메시지 한글 폰드 테스트 Guide!</p>
|
|
17525
18046
|
</div>
|
|
17526
18047
|
|
|
17527
18048
|
```
|
|
@@ -19040,22 +19561,26 @@ tag:
|
|
|
19040
19561
|
```
|
|
19041
19562
|
````
|
|
19042
19563
|
Gn.create('picklist', {
|
|
19043
|
-
target: '.new-picklist',
|
|
19044
|
-
data
|
|
19564
|
+
target: '.new-picklist',
|
|
19565
|
+
data: {
|
|
19045
19566
|
source: [
|
|
19046
|
-
{ value: '
|
|
19047
|
-
{ value: '
|
|
19048
|
-
{ value: '
|
|
19049
|
-
{ value: 'item4', text: '항목4' },
|
|
19050
|
-
{ value: 'item5', text: '항목5' },
|
|
19051
|
-
{ value: 'item6', text: '항목6' },
|
|
19052
|
-
{ value: 'item7', text: '항목7' },
|
|
19053
|
-
{ value: 'item8', text: '항목8' }
|
|
19567
|
+
{ value: '항목1', text: 'item1', html: '<span class="gn-tag is-primary">항목1</span> item1' },
|
|
19568
|
+
{ value: '항목2', text: 'item2', html: '<span class="gn-tag is-danger">항목2</span> item2' },
|
|
19569
|
+
{ value: '항목3', text: 'item3', html: '<span class="gn-tag is-warning">항목3</span> item3' }
|
|
19054
19570
|
],
|
|
19055
|
-
target: [
|
|
19571
|
+
target: [
|
|
19572
|
+
{ value: '항목4', text: 'item4', html: '<span class="gn-tag is-help">항목4</span> item4' },
|
|
19573
|
+
{ value: '항목5', text: 'item5', html: '<span class="gn-tag is-success">항목5</span> item5' }
|
|
19574
|
+
]
|
|
19056
19575
|
},
|
|
19576
|
+
hasSourceSearch: true,
|
|
19577
|
+
hasTargetSearch: true,
|
|
19057
19578
|
width: '80%',
|
|
19058
|
-
height: 180
|
|
19579
|
+
height: 180,
|
|
19580
|
+
onChange: function (s, t) {
|
|
19581
|
+
console.log(s, t);
|
|
19582
|
+
},
|
|
19583
|
+
orderable: 'target'
|
|
19059
19584
|
});
|
|
19060
19585
|
Gn.create('picklist', {
|
|
19061
19586
|
target: '.new-picklist-v',
|
|
@@ -19092,15 +19617,21 @@ tag:
|
|
|
19092
19617
|
<tr>
|
|
19093
19618
|
<td rowspan="2">data</td>
|
|
19094
19619
|
<td>source</td>
|
|
19095
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19620
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19096
19621
|
<td></td>
|
|
19097
|
-
<td>source 항목
|
|
19622
|
+
<td>source 항목 배열<br>
|
|
19623
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19624
|
+
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
|
|
19625
|
+
</td>
|
|
19098
19626
|
</tr>
|
|
19099
19627
|
<tr>
|
|
19100
19628
|
<td>target</td>
|
|
19101
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19629
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19102
19630
|
<td></td>
|
|
19103
|
-
<td>target 항목
|
|
19631
|
+
<td>target 항목 배열<br>
|
|
19632
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19633
|
+
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
|
|
19634
|
+
</td>
|
|
19104
19635
|
</tr>
|
|
19105
19636
|
<tr>
|
|
19106
19637
|
<td rowspan="3">textSets</td>
|
|
@@ -19254,23 +19785,17 @@ tag:
|
|
|
19254
19785
|
.gn-picklist .picklist-caption + .dropdown-items {
|
|
19255
19786
|
border-radius: 0 0 2px 2px;
|
|
19256
19787
|
}
|
|
19257
|
-
.gn-picklist .
|
|
19788
|
+
.gn-picklist .gn-dropdown {
|
|
19789
|
+
display: block;
|
|
19790
|
+
}
|
|
19791
|
+
.gn-picklist .picklist-source,
|
|
19792
|
+
.gn-picklist .picklist-target {
|
|
19258
19793
|
display: flex;
|
|
19259
19794
|
flex-basis: calc(50% - 16px);
|
|
19260
19795
|
width: calc(50% - 16px);
|
|
19261
19796
|
flex-grow: 0;
|
|
19262
19797
|
flex-shrink: 0;
|
|
19263
19798
|
}
|
|
19264
|
-
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19265
|
-
order: 2;
|
|
19266
|
-
width: 100%;
|
|
19267
|
-
}
|
|
19268
|
-
.gn-picklist .picklist-source .picklist-controls {
|
|
19269
|
-
order: 1;
|
|
19270
|
-
}
|
|
19271
|
-
.gn-picklist .gn-dropdown {
|
|
19272
|
-
display: block;
|
|
19273
|
-
}
|
|
19274
19799
|
.gn-picklist .picklist-source.no-controls,
|
|
19275
19800
|
.gn-picklist .picklist-target.no-controls {
|
|
19276
19801
|
flex-basis: calc(50% - 45px);
|
|
@@ -19281,23 +19806,22 @@ tag:
|
|
|
19281
19806
|
width: 100%;
|
|
19282
19807
|
height: 100%;
|
|
19283
19808
|
}
|
|
19284
|
-
.gn-picklist.
|
|
19285
|
-
.gn-picklist .picklist-target {
|
|
19286
|
-
display: flex;
|
|
19287
|
-
flex-basis: calc(50% - 16px);
|
|
19288
|
-
width: calc(50% - 16px);
|
|
19289
|
-
flex-grow: 0;
|
|
19290
|
-
flex-shrink: 0;
|
|
19291
|
-
}
|
|
19292
|
-
.gn-picklist.is-vertical .picklist-source > .gn-dropdown,
|
|
19809
|
+
.gn-picklist .picklist-source > .gn-dropdown,
|
|
19293
19810
|
.gn-picklist .picklist-target > .gn-dropdown {
|
|
19294
19811
|
order: 1;
|
|
19295
19812
|
width: 100%;
|
|
19296
19813
|
}
|
|
19297
|
-
.gn-picklist
|
|
19814
|
+
.gn-picklist .picklist-source .picklist-controls,
|
|
19298
19815
|
.gn-picklist .picklist-target .picklist-controls {
|
|
19299
19816
|
order: 2;
|
|
19300
19817
|
}
|
|
19818
|
+
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19819
|
+
order: 2;
|
|
19820
|
+
width: 100%;
|
|
19821
|
+
}
|
|
19822
|
+
.gn-picklist .picklist-source .picklist-controls {
|
|
19823
|
+
order: 1;
|
|
19824
|
+
}
|
|
19301
19825
|
.gn-picklist .picklist-controls {
|
|
19302
19826
|
margin: 0.5rem;
|
|
19303
19827
|
}
|
|
@@ -19307,6 +19831,16 @@ tag:
|
|
|
19307
19831
|
.gn-picklist.is-vertical {
|
|
19308
19832
|
flex-direction: column;
|
|
19309
19833
|
}
|
|
19834
|
+
.gn-picklist.is-vertical .picklist-source,
|
|
19835
|
+
.gn-picklist.is-vertical .picklist-target {
|
|
19836
|
+
width: calc(100% - 32px);
|
|
19837
|
+
}
|
|
19838
|
+
.gn-picklist.is-vertical .picklist-source > .gn-dropdown {
|
|
19839
|
+
order: 1;
|
|
19840
|
+
}
|
|
19841
|
+
.gn-picklist.is-vertical .picklist-source .picklist-controls {
|
|
19842
|
+
order: 2;
|
|
19843
|
+
}
|
|
19310
19844
|
.gn-picklist.is-vertical > .picklist-controls {
|
|
19311
19845
|
width: 90%;
|
|
19312
19846
|
width: calc(100% - 50px);
|
|
@@ -19317,6 +19851,382 @@ tag:
|
|
|
19317
19851
|
box-shadow: 0 0 0 0.1em rgba(241.077, 70.023, 104.2338, 0.7);
|
|
19318
19852
|
}
|
|
19319
19853
|
|
|
19854
|
+
/*
|
|
19855
|
+
---
|
|
19856
|
+
name: SortableList
|
|
19857
|
+
category:
|
|
19858
|
+
- CONTROLS/SortableList(js)
|
|
19859
|
+
tag:
|
|
19860
|
+
- v.0.1.0
|
|
19861
|
+
- javascript
|
|
19862
|
+
---
|
|
19863
|
+
### 기본 사용
|
|
19864
|
+
|
|
19865
|
+
```html
|
|
19866
|
+
<div class="gn-sortablelist">
|
|
19867
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center">
|
|
19868
|
+
<button type="button" class="gn-button is-outline">
|
|
19869
|
+
<span class="gn-icon">
|
|
19870
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19871
|
+
</span>
|
|
19872
|
+
</button>
|
|
19873
|
+
<button type="button" class="gn-button is-outline">
|
|
19874
|
+
<span class="gn-icon">
|
|
19875
|
+
<i class="fas fa-angle-up"></i>
|
|
19876
|
+
</span>
|
|
19877
|
+
</button>
|
|
19878
|
+
<button type="button" class="gn-button is-outline">
|
|
19879
|
+
<span class="gn-icon">
|
|
19880
|
+
<i class="fas fa-angle-down"></i>
|
|
19881
|
+
</span>
|
|
19882
|
+
</button>
|
|
19883
|
+
<button type="button" class="gn-button is-outline">
|
|
19884
|
+
<span class="gn-icon">
|
|
19885
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19886
|
+
</span>
|
|
19887
|
+
</button>
|
|
19888
|
+
</div>
|
|
19889
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19890
|
+
<div class="dropdown-items">
|
|
19891
|
+
<ul class="sortablelist-rows">
|
|
19892
|
+
<li class="dropdown-item">항목 1</li>
|
|
19893
|
+
<li class="dropdown-item">항목 2</li>
|
|
19894
|
+
<li class="dropdown-item">항목 3</li>
|
|
19895
|
+
<li class="dropdown-item">항목 4</li>
|
|
19896
|
+
</ul>
|
|
19897
|
+
</div>
|
|
19898
|
+
</div>
|
|
19899
|
+
</div>
|
|
19900
|
+
```
|
|
19901
|
+
|
|
19902
|
+
### 버튼 우측 배치
|
|
19903
|
+
|
|
19904
|
+
```html
|
|
19905
|
+
<div class="gn-sortablelist">
|
|
19906
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19907
|
+
<div class="dropdown-items">
|
|
19908
|
+
<ul class="sortablelist-rows">
|
|
19909
|
+
<li class="dropdown-item">항목 1</li>
|
|
19910
|
+
<li class="dropdown-item">항목 2</li>
|
|
19911
|
+
<li class="dropdown-item">항목 3</li>
|
|
19912
|
+
</ul>
|
|
19913
|
+
</div>
|
|
19914
|
+
</div>
|
|
19915
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center is-right">
|
|
19916
|
+
<button type="button" class="gn-button is-outline">
|
|
19917
|
+
<span class="gn-icon">
|
|
19918
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19919
|
+
</span>
|
|
19920
|
+
</button>
|
|
19921
|
+
<button type="button" class="gn-button is-outline">
|
|
19922
|
+
<span class="gn-icon">
|
|
19923
|
+
<i class="fas fa-angle-up"></i>
|
|
19924
|
+
</span>
|
|
19925
|
+
</button>
|
|
19926
|
+
<button type="button" class="gn-button is-outline">
|
|
19927
|
+
<span class="gn-icon">
|
|
19928
|
+
<i class="fas fa-angle-down"></i>
|
|
19929
|
+
</span>
|
|
19930
|
+
</button>
|
|
19931
|
+
<button type="button" class="gn-button is-outline">
|
|
19932
|
+
<span class="gn-icon">
|
|
19933
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19934
|
+
</span>
|
|
19935
|
+
</button>
|
|
19936
|
+
</div>
|
|
19937
|
+
</div>
|
|
19938
|
+
```
|
|
19939
|
+
|
|
19940
|
+
### 생성 옵션
|
|
19941
|
+
```ejs
|
|
19942
|
+
<div class="new-sortablelist"></div>
|
|
19943
|
+
<div class="new-sortablelist-drag"></div>
|
|
19944
|
+
<div class="new-sortablelist-cols"></div>
|
|
19945
|
+
```
|
|
19946
|
+
````
|
|
19947
|
+
// 단일 컬럼
|
|
19948
|
+
Gn.create('sortablelist', {
|
|
19949
|
+
target: '.new-sortablelist',
|
|
19950
|
+
data: [
|
|
19951
|
+
{ value: '1', text: '항목 1' },
|
|
19952
|
+
{ value: '2', text: '항목 2' },
|
|
19953
|
+
{ value: '3', text: '항목 3' },
|
|
19954
|
+
{ value: '4', text: '항목 4' },
|
|
19955
|
+
{ value: '5', text: '항목 5' },
|
|
19956
|
+
{ value: '6', text: '항목 6' },
|
|
19957
|
+
{ value: '7', text: '항목 7' },
|
|
19958
|
+
{ value: '8', text: '항목 8' },
|
|
19959
|
+
{ value: '9', text: '항목 9' },
|
|
19960
|
+
{ value: '10', text: '항목 10' }
|
|
19961
|
+
]
|
|
19962
|
+
});
|
|
19963
|
+
// 드래그 앤 드롭
|
|
19964
|
+
Gn.create('sortablelist', {
|
|
19965
|
+
target: '.new-sortablelist-drag',
|
|
19966
|
+
data: [
|
|
19967
|
+
{ value: 'a', text: '항목 A' },
|
|
19968
|
+
{ value: 'b', text: '항목 B' },
|
|
19969
|
+
{ value: 'c', text: '항목 C' },
|
|
19970
|
+
{ value: 'd', text: '항목 D' },
|
|
19971
|
+
{ value: 'e', text: '항목 E' },
|
|
19972
|
+
{ value: 'f', text: '항목 F' },
|
|
19973
|
+
{ value: 'g', text: '항목 G' },
|
|
19974
|
+
{ value: 'h', text: '항목 H' },
|
|
19975
|
+
{ value: 'i', text: '항목 I' },
|
|
19976
|
+
{ value: 'j', text: '항목 J' }
|
|
19977
|
+
],
|
|
19978
|
+
draggable: true
|
|
19979
|
+
});
|
|
19980
|
+
// 다중 컬럼
|
|
19981
|
+
Gn.create('sortablelist', {
|
|
19982
|
+
target: '.new-sortablelist-cols',
|
|
19983
|
+
buttonPosition: 'right',
|
|
19984
|
+
data: [
|
|
19985
|
+
{ value: 'x1', cols: ['항목1', '카테고리A', '1000'] },
|
|
19986
|
+
{ value: 'x2', cols: ['항목2', '카테고리B', '2000'] },
|
|
19987
|
+
{ value: 'x3', cols: ['항목3', '카테고리C', '3000'] },
|
|
19988
|
+
{ value: 'x4', cols: ['항목4', '카테고리D', '4000'] },
|
|
19989
|
+
{ value: 'x5', cols: ['항목5', '카테고리E', '5000'] },
|
|
19990
|
+
{ value: 'x6', cols: ['항목6', '카테고리F', '6000'] },
|
|
19991
|
+
{ value: 'x7', cols: ['항목7', '카테고리G', '7000'] },
|
|
19992
|
+
{ value: 'x8', cols: ['항목8', '카테고리H', '8000'] },
|
|
19993
|
+
{ value: 'x9', cols: ['항목9', '카테고리I', '9000'] },
|
|
19994
|
+
{ value: 'x10', cols: ['항목10', '카테고리J', '10000'] }
|
|
19995
|
+
]
|
|
19996
|
+
});
|
|
19997
|
+
````
|
|
19998
|
+
|
|
19999
|
+
### 데이터 모델 (SortableListItem)
|
|
20000
|
+
|
|
20001
|
+
<table class="gn-table is-full is-border">
|
|
20002
|
+
<thead>
|
|
20003
|
+
<th>필드</th>
|
|
20004
|
+
<th>type</th>
|
|
20005
|
+
<th>필수</th>
|
|
20006
|
+
<th>description</th>
|
|
20007
|
+
</thead>
|
|
20008
|
+
<tbody>
|
|
20009
|
+
<tr>
|
|
20010
|
+
<td>value</td>
|
|
20011
|
+
<td>string</td>
|
|
20012
|
+
<td>Y</td>
|
|
20013
|
+
<td>고유 값 (빈 문자열 불가)</td>
|
|
20014
|
+
</tr>
|
|
20015
|
+
<tr>
|
|
20016
|
+
<td>text</td>
|
|
20017
|
+
<td>string</td>
|
|
20018
|
+
<td>N</td>
|
|
20019
|
+
<td>단일 컬럼 표시 텍스트</td>
|
|
20020
|
+
</tr>
|
|
20021
|
+
<tr>
|
|
20022
|
+
<td>cols</td>
|
|
20023
|
+
<td>string[]</td>
|
|
20024
|
+
<td>N</td>
|
|
20025
|
+
<td>다중 컬럼 표시 값 배열</td>
|
|
20026
|
+
</tr>
|
|
20027
|
+
</tbody>
|
|
20028
|
+
</table>
|
|
20029
|
+
|
|
20030
|
+
### 옵션
|
|
20031
|
+
<table class="gn-table is-full is-border">
|
|
20032
|
+
<thead>
|
|
20033
|
+
<th colspan="2">name</th>
|
|
20034
|
+
<th>type</th>
|
|
20035
|
+
<th>default</th>
|
|
20036
|
+
<th>description</th>
|
|
20037
|
+
</thead>
|
|
20038
|
+
<tbody>
|
|
20039
|
+
<tr>
|
|
20040
|
+
<td colspan="2">target</td>
|
|
20041
|
+
<td>string</td>
|
|
20042
|
+
<td></td>
|
|
20043
|
+
<td>sortablelist를 표시할 대상의 선택자(selector)</td>
|
|
20044
|
+
</tr>
|
|
20045
|
+
<tr>
|
|
20046
|
+
<td colspan="2">data</td>
|
|
20047
|
+
<td>SortableListItem[]</td>
|
|
20048
|
+
<td></td>
|
|
20049
|
+
<td>sortablelist에 표시할 데이터 배열</td>
|
|
20050
|
+
</tr>
|
|
20051
|
+
<tr>
|
|
20052
|
+
<td colspan="2">buttonPosition</td>
|
|
20053
|
+
<td>left | right</td>
|
|
20054
|
+
<td>left</td>
|
|
20055
|
+
<td>순서 변경 버튼 위치</td>
|
|
20056
|
+
</tr>
|
|
20057
|
+
<tr>
|
|
20058
|
+
<td colspan="2">draggable</td>
|
|
20059
|
+
<td>boolean</td>
|
|
20060
|
+
<td>false</td>
|
|
20061
|
+
<td>드래그 앤 드롭 순서 변경 활성화 여부</td>
|
|
20062
|
+
</tr>
|
|
20063
|
+
<tr>
|
|
20064
|
+
<td>textSets</td>
|
|
20065
|
+
<td>noData</td>
|
|
20066
|
+
<td>string</td>
|
|
20067
|
+
<td>No records available.</td>
|
|
20068
|
+
<td>데이터가 없을 경우 출력 메시지</td>
|
|
20069
|
+
</tr>
|
|
20070
|
+
<tr>
|
|
20071
|
+
<td colspan="2">disabled</td>
|
|
20072
|
+
<td>boolean</td>
|
|
20073
|
+
<td>false</td>
|
|
20074
|
+
<td>컴포넌트 비활성화 여부</td>
|
|
20075
|
+
</tr>
|
|
20076
|
+
<tr>
|
|
20077
|
+
<td colspan="2">width</td>
|
|
20078
|
+
<td>number, string</td>
|
|
20079
|
+
<td>100%</td>
|
|
20080
|
+
<td>컴포넌트 너비</td>
|
|
20081
|
+
</tr>
|
|
20082
|
+
<tr>
|
|
20083
|
+
<td colspan="2">height</td>
|
|
20084
|
+
<td>number, string</td>
|
|
20085
|
+
<td>150</td>
|
|
20086
|
+
<td>리스트 높이 (미지정 시 150)</td>
|
|
20087
|
+
</tr>
|
|
20088
|
+
<tr>
|
|
20089
|
+
<td colspan="2">onChange</td>
|
|
20090
|
+
<td>function(data)</td>
|
|
20091
|
+
<td></td>
|
|
20092
|
+
<td>데이터 변경 시 발생 이벤트</td>
|
|
20093
|
+
</tr>
|
|
20094
|
+
</tbody>
|
|
20095
|
+
</table>
|
|
20096
|
+
|
|
20097
|
+
### 메소드
|
|
20098
|
+
|
|
20099
|
+
<table class="gn-table is-full is-border">
|
|
20100
|
+
<thead>
|
|
20101
|
+
<th>name</th>
|
|
20102
|
+
<th>return</th>
|
|
20103
|
+
<th>description</th>
|
|
20104
|
+
</thead>
|
|
20105
|
+
<tbody>
|
|
20106
|
+
<tr>
|
|
20107
|
+
<td>getData()</td>
|
|
20108
|
+
<td>SortableListItem[]</td>
|
|
20109
|
+
<td>현재 데이터 배열을 반환한다.</td>
|
|
20110
|
+
</tr>
|
|
20111
|
+
<tr>
|
|
20112
|
+
<td>setData(data: SortableListItem[]})</td>
|
|
20113
|
+
<td>void</td>
|
|
20114
|
+
<td>데이터 배열을 설정하고 다시 렌더링한다.</td>
|
|
20115
|
+
</tr>
|
|
20116
|
+
<tr>
|
|
20117
|
+
<td>disable()</td>
|
|
20118
|
+
<td>void</td>
|
|
20119
|
+
<td>컴포넌트를 비활성화한다.</td>
|
|
20120
|
+
</tr>
|
|
20121
|
+
<tr>
|
|
20122
|
+
<td>enable()</td>
|
|
20123
|
+
<td>void</td>
|
|
20124
|
+
<td>컴포넌트를 활성화한다.</td>
|
|
20125
|
+
</tr>
|
|
20126
|
+
</tbody>
|
|
20127
|
+
</table>
|
|
20128
|
+
|
|
20129
|
+
*/
|
|
20130
|
+
.gn-sortablelist {
|
|
20131
|
+
display: flex;
|
|
20132
|
+
align-items: stretch;
|
|
20133
|
+
-webkit-user-select: none;
|
|
20134
|
+
-moz-user-select: none;
|
|
20135
|
+
user-select: none;
|
|
20136
|
+
}
|
|
20137
|
+
.gn-sortablelist .gn-dropdown {
|
|
20138
|
+
display: block;
|
|
20139
|
+
}
|
|
20140
|
+
.gn-sortablelist .sortablelist-items {
|
|
20141
|
+
flex: 1 1 auto;
|
|
20142
|
+
}
|
|
20143
|
+
.gn-sortablelist .sortablelist-controls {
|
|
20144
|
+
margin: 0.5rem;
|
|
20145
|
+
}
|
|
20146
|
+
.gn-sortablelist .sortablelist-controls .gn-button {
|
|
20147
|
+
padding: 0.25rem 0.75rem;
|
|
20148
|
+
}
|
|
20149
|
+
.gn-sortablelist .sortablelist-controls.is-right {
|
|
20150
|
+
order: 2;
|
|
20151
|
+
margin-left: 0.5rem;
|
|
20152
|
+
margin-right: 0;
|
|
20153
|
+
justify-content: center;
|
|
20154
|
+
}
|
|
20155
|
+
.gn-sortablelist .sortablelist-rows {
|
|
20156
|
+
margin: 0;
|
|
20157
|
+
padding: 0;
|
|
20158
|
+
list-style: none;
|
|
20159
|
+
}
|
|
20160
|
+
.gn-sortablelist .sortablelist-cols {
|
|
20161
|
+
display: flex;
|
|
20162
|
+
gap: 0.5rem;
|
|
20163
|
+
width: 100%;
|
|
20164
|
+
}
|
|
20165
|
+
.gn-sortablelist .sortablelist-col {
|
|
20166
|
+
flex: 1 1 0;
|
|
20167
|
+
min-width: 0;
|
|
20168
|
+
}
|
|
20169
|
+
.gn-sortablelist .dropdown-item.is-empty {
|
|
20170
|
+
color: hsl(0, 0%, 48%);
|
|
20171
|
+
}
|
|
20172
|
+
.gn-sortablelist .dropdown-item.is-dragging {
|
|
20173
|
+
opacity: 0.6;
|
|
20174
|
+
}
|
|
20175
|
+
.gn-sortablelist .dropdown-item.is-group-dragging {
|
|
20176
|
+
outline: 1px dashed hsl(0, 0%, 71%);
|
|
20177
|
+
}
|
|
20178
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top,
|
|
20179
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20180
|
+
background-color: hsl(0, 0%, 96%);
|
|
20181
|
+
}
|
|
20182
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top {
|
|
20183
|
+
box-shadow: inset 0 2px 0 0 #aae033;
|
|
20184
|
+
}
|
|
20185
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20186
|
+
box-shadow: inset 0 -2px 0 0 #aae033;
|
|
20187
|
+
}
|
|
20188
|
+
|
|
20189
|
+
.sortablelist-drag-preview {
|
|
20190
|
+
position: absolute;
|
|
20191
|
+
top: -9999px;
|
|
20192
|
+
left: -9999px;
|
|
20193
|
+
display: inline-flex;
|
|
20194
|
+
align-items: flex-start;
|
|
20195
|
+
gap: 8px;
|
|
20196
|
+
padding: 6px 10px;
|
|
20197
|
+
border-radius: 8px;
|
|
20198
|
+
background-color: hsl(0, 0%, 20%);
|
|
20199
|
+
color: hsl(0, 0%, 98%);
|
|
20200
|
+
font-size: 12px;
|
|
20201
|
+
line-height: 1;
|
|
20202
|
+
}
|
|
20203
|
+
|
|
20204
|
+
.sortablelist-drag-preview::before {
|
|
20205
|
+
content: attr(data-count);
|
|
20206
|
+
min-width: 18px;
|
|
20207
|
+
height: 18px;
|
|
20208
|
+
padding: 0 6px;
|
|
20209
|
+
border-radius: 999px;
|
|
20210
|
+
background-color: hsl(0, 0%, 98%);
|
|
20211
|
+
color: hsl(0, 0%, 20%);
|
|
20212
|
+
font-size: 11px;
|
|
20213
|
+
line-height: 18px;
|
|
20214
|
+
text-align: center;
|
|
20215
|
+
}
|
|
20216
|
+
|
|
20217
|
+
.sortablelist-drag-preview-list {
|
|
20218
|
+
display: flex;
|
|
20219
|
+
flex-direction: column;
|
|
20220
|
+
gap: 4px;
|
|
20221
|
+
}
|
|
20222
|
+
|
|
20223
|
+
.sortablelist-drag-preview .dropdown-item.is-ghost {
|
|
20224
|
+
padding: 4px 8px;
|
|
20225
|
+
background-color: hsl(0, 0%, 18%);
|
|
20226
|
+
border-radius: 4px;
|
|
20227
|
+
color: hsl(0, 0%, 98%);
|
|
20228
|
+
}
|
|
20229
|
+
|
|
19320
20230
|
/*
|
|
19321
20231
|
---
|
|
19322
20232
|
name: Progressbar
|
|
@@ -19896,6 +20806,7 @@ tag:
|
|
|
19896
20806
|
.gn-tab > ul {
|
|
19897
20807
|
display: flex;
|
|
19898
20808
|
border-bottom: 1px solid hsl(0, 0%, 48%);
|
|
20809
|
+
padding-bottom: 0px;
|
|
19899
20810
|
}
|
|
19900
20811
|
.gn-tab.is-center > ul {
|
|
19901
20812
|
justify-content: center;
|
|
@@ -21045,7 +21956,7 @@ Gn.create('tree', {
|
|
|
21045
21956
|
}
|
|
21046
21957
|
.gn-tree li .tree-item .is-toggler::before {
|
|
21047
21958
|
content: "\f0da";
|
|
21048
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21959
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21049
21960
|
font-weight: 900;
|
|
21050
21961
|
}
|
|
21051
21962
|
.gn-tree li .tree-item + ul {
|