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
package/dist/styles/nac.css
CHANGED
|
@@ -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
|
}
|
|
@@ -2708,7 +2708,7 @@ tag:
|
|
|
2708
2708
|
}
|
|
2709
2709
|
.gn-icon-ext::before {
|
|
2710
2710
|
content: "\f15b";
|
|
2711
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free";
|
|
2711
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
2712
2712
|
font-weight: 300;
|
|
2713
2713
|
font-size: 1.6rem;
|
|
2714
2714
|
}
|
|
@@ -4217,10 +4217,6 @@ tag:
|
|
|
4217
4217
|
display: block;
|
|
4218
4218
|
word-break: break-word;
|
|
4219
4219
|
}
|
|
4220
|
-
.gn-title:not(:last-child),
|
|
4221
|
-
.gn-sub-title:not(:last-child) {
|
|
4222
|
-
margin-bottom: 1rem;
|
|
4223
|
-
}
|
|
4224
4220
|
|
|
4225
4221
|
.gn-title {
|
|
4226
4222
|
color: #535353;
|
|
@@ -5490,6 +5486,7 @@ compile: true
|
|
|
5490
5486
|
```ejs
|
|
5491
5487
|
<button name="new-button"></button>
|
|
5492
5488
|
<button name="new-button2"></button>
|
|
5489
|
+
<button name="new-button-submenu">편집 메뉴</button>
|
|
5493
5490
|
```
|
|
5494
5491
|
|
|
5495
5492
|
````
|
|
@@ -5529,6 +5526,51 @@ compile: true
|
|
|
5529
5526
|
value: 'menu2'
|
|
5530
5527
|
}]
|
|
5531
5528
|
});
|
|
5529
|
+
// 서브메뉴 예시
|
|
5530
|
+
Gn.create('menubutton', {
|
|
5531
|
+
target: 'button[name=new-button-submenu]',
|
|
5532
|
+
size: 'normal',
|
|
5533
|
+
textSets: {
|
|
5534
|
+
buttonText: '편집 메뉴'
|
|
5535
|
+
},
|
|
5536
|
+
onSelect: function (value, text, menu, e) {
|
|
5537
|
+
console.log('선택된 메뉴:', { value: value, text: text, menu: menu });
|
|
5538
|
+
},
|
|
5539
|
+
data: [
|
|
5540
|
+
{
|
|
5541
|
+
text: '파일',
|
|
5542
|
+
value: 'file',
|
|
5543
|
+
child: [
|
|
5544
|
+
{ text: '새 파일', value: 'file-new' },
|
|
5545
|
+
{ text: '열기', value: 'file-open' },
|
|
5546
|
+
{
|
|
5547
|
+
text: '최근 파일',
|
|
5548
|
+
value: 'file-recent',
|
|
5549
|
+
child: [
|
|
5550
|
+
{ text: 'document.txt', value: 'file-recent-1' },
|
|
5551
|
+
{ text: 'image.png', value: 'file-recent-2' }
|
|
5552
|
+
]
|
|
5553
|
+
},
|
|
5554
|
+
{ text: '저장', value: 'file-save', disabled: true },
|
|
5555
|
+
{ text: '다른 이름으로 저장', value: 'file-saveas' }
|
|
5556
|
+
]
|
|
5557
|
+
},
|
|
5558
|
+
{
|
|
5559
|
+
text: '편집',
|
|
5560
|
+
value: 'edit',
|
|
5561
|
+
actived: true,
|
|
5562
|
+
child: [
|
|
5563
|
+
{ text: '실행 취소', value: 'edit-undo' },
|
|
5564
|
+
{ text: '다시 실행', value: 'edit-redo' }
|
|
5565
|
+
]
|
|
5566
|
+
},
|
|
5567
|
+
{
|
|
5568
|
+
text: '도움말',
|
|
5569
|
+
value: 'help',
|
|
5570
|
+
disabled: true
|
|
5571
|
+
}
|
|
5572
|
+
]
|
|
5573
|
+
});
|
|
5532
5574
|
````
|
|
5533
5575
|
|
|
5534
5576
|
|
|
@@ -5585,15 +5627,21 @@ compile: true
|
|
|
5585
5627
|
</tr>
|
|
5586
5628
|
<tr>
|
|
5587
5629
|
<td colspan="2">data</td>
|
|
5588
|
-
<td>Array[{value, text,
|
|
5630
|
+
<td>Array[{value, text, html, child, disabled, actived}]</td>
|
|
5589
5631
|
<td></td>
|
|
5590
|
-
<td>메뉴 목록에 출력할
|
|
5632
|
+
<td>메뉴 목록에 출력할 목록<br/>- value: 메뉴 값<br/>- text: 메뉴 텍스트<br/>- html: HTML로 렌더링할 내용<br/>- child: 하위 메뉴 배열 (최대 2단계)<br/>- disabled: 비활성화 여부 (boolean)<br/>- actived: 활성화 상태 표시 여부</td>
|
|
5633
|
+
</tr>
|
|
5634
|
+
<tr>
|
|
5635
|
+
<td colspan="2">disabled</td>
|
|
5636
|
+
<td>boolean</td>
|
|
5637
|
+
<td>false</td>
|
|
5638
|
+
<td>버튼 비활성화 여부</td>
|
|
5591
5639
|
</tr>
|
|
5592
5640
|
<tr>
|
|
5593
5641
|
<td colspan="2">onSelect</td>
|
|
5594
|
-
<td>function(value, text)</td>
|
|
5642
|
+
<td>function(value, text, menu, e)</td>
|
|
5595
5643
|
<td></td>
|
|
5596
|
-
<td>메뉴 선택 시 수행될
|
|
5644
|
+
<td>메뉴 선택 시 수행될 이벤트<br/>- value: 선택된 메뉴의 값<br/>- text: 선택된 메뉴의 텍스트<br/>- menu: 선택된 메뉴 객체<br/>- e: MouseEvent 객체</td>
|
|
5597
5645
|
</tr>
|
|
5598
5646
|
</tbody>
|
|
5599
5647
|
</table>
|
|
@@ -5612,6 +5660,21 @@ compile: true
|
|
|
5612
5660
|
<td>void</td>
|
|
5613
5661
|
<td>버튼명을 변경한다.</td>
|
|
5614
5662
|
</tr>
|
|
5663
|
+
<tr>
|
|
5664
|
+
<td>reRender(data: Array)</td>
|
|
5665
|
+
<td>void</td>
|
|
5666
|
+
<td>메뉴 데이터를 전달받아 DOM을 다시 생성한다.</td>
|
|
5667
|
+
</tr>
|
|
5668
|
+
<tr>
|
|
5669
|
+
<td>disabled()</td>
|
|
5670
|
+
<td>void</td>
|
|
5671
|
+
<td>버튼을 비활성화한다.</td>
|
|
5672
|
+
</tr>
|
|
5673
|
+
<tr>
|
|
5674
|
+
<td>enabled()</td>
|
|
5675
|
+
<td>void</td>
|
|
5676
|
+
<td>버튼을 활성화한다.</td>
|
|
5677
|
+
</tr>
|
|
5615
5678
|
</tbody>
|
|
5616
5679
|
</table>
|
|
5617
5680
|
*/
|
|
@@ -5699,6 +5762,47 @@ compile: true
|
|
|
5699
5762
|
color: #fff;
|
|
5700
5763
|
background-color: #88b50f;
|
|
5701
5764
|
}
|
|
5765
|
+
.gn-menuButton .menuButton-menu.is-disabled {
|
|
5766
|
+
pointer-events: none;
|
|
5767
|
+
opacity: 0.5;
|
|
5768
|
+
}
|
|
5769
|
+
.gn-menuButton .menuButton-menu.is-actived {
|
|
5770
|
+
background-color: hsl(0, 0%, 100%);
|
|
5771
|
+
}
|
|
5772
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-content {
|
|
5773
|
+
display: flex;
|
|
5774
|
+
align-items: center;
|
|
5775
|
+
justify-content: space-between;
|
|
5776
|
+
width: 100%;
|
|
5777
|
+
}
|
|
5778
|
+
.gn-menuButton .menuButton-menu.has-submenu .menuButton-menu-arrow {
|
|
5779
|
+
margin-left: 10px;
|
|
5780
|
+
display: inline-flex;
|
|
5781
|
+
align-items: center;
|
|
5782
|
+
}
|
|
5783
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu {
|
|
5784
|
+
display: none;
|
|
5785
|
+
position: absolute;
|
|
5786
|
+
left: 100%;
|
|
5787
|
+
top: 0;
|
|
5788
|
+
min-width: 150px;
|
|
5789
|
+
background-color: hsl(0, 0%, 100%);
|
|
5790
|
+
border: 1px solid #bebebe;
|
|
5791
|
+
border-radius: 2px;
|
|
5792
|
+
z-index: 21;
|
|
5793
|
+
padding: 0.35rem;
|
|
5794
|
+
}
|
|
5795
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu {
|
|
5796
|
+
color: hsl(0, 0%, 29%);
|
|
5797
|
+
cursor: pointer;
|
|
5798
|
+
}
|
|
5799
|
+
.gn-menuButton .menuButton-menu .menuButton-submenu .menuButton-menu:hover {
|
|
5800
|
+
color: #fff;
|
|
5801
|
+
background-color: #88b50f;
|
|
5802
|
+
}
|
|
5803
|
+
.gn-menuButton .menuButton-menu:hover > .menuButton-submenu {
|
|
5804
|
+
display: block;
|
|
5805
|
+
}
|
|
5702
5806
|
.gn-menuButton.is-white button {
|
|
5703
5807
|
color: hsl(0, 0%, 100%);
|
|
5704
5808
|
border-color: hsl(0, 0%, 100%);
|
|
@@ -9484,7 +9588,7 @@ tag:
|
|
|
9484
9588
|
}
|
|
9485
9589
|
.gn-select::after {
|
|
9486
9590
|
content: "\f107";
|
|
9487
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9591
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
9488
9592
|
font-weight: 900;
|
|
9489
9593
|
position: absolute;
|
|
9490
9594
|
right: 0.5rem;
|
|
@@ -12646,9 +12750,13 @@ tag:
|
|
|
12646
12750
|
```ejs
|
|
12647
12751
|
<div class="new-grid"></div>
|
|
12648
12752
|
|
|
12649
|
-
<div style="width: 100%; height:
|
|
12753
|
+
<div style="width: 100%; height: 100px; overflow-x: auto; margin-top: 20px;">
|
|
12650
12754
|
<div class="new-grid2"></div>
|
|
12651
12755
|
</div>
|
|
12756
|
+
|
|
12757
|
+
<div style="width: 100%; height: 350px; overflow-x: auto; margin-top: 20px;">
|
|
12758
|
+
<div class="new-grid3"></div>
|
|
12759
|
+
</div>
|
|
12652
12760
|
```
|
|
12653
12761
|
````
|
|
12654
12762
|
Gn.create('datagrid', {
|
|
@@ -12761,19 +12869,122 @@ Gn.create('datagrid', {
|
|
|
12761
12869
|
})
|
|
12762
12870
|
Gn.create('datagrid', {
|
|
12763
12871
|
target: '.new-grid2',
|
|
12872
|
+
headers: [
|
|
12873
|
+
{
|
|
12874
|
+
label: 'no',
|
|
12875
|
+
key: 'number',
|
|
12876
|
+
onSelect: function () {
|
|
12877
|
+
// eslint-disable-next-line prefer-rest-params
|
|
12878
|
+
console.log(arguments);
|
|
12879
|
+
},
|
|
12880
|
+
template: function (k, d) {
|
|
12881
|
+
return '<span>' + d[k] + '</span>';
|
|
12882
|
+
},
|
|
12883
|
+
draggable: true,
|
|
12884
|
+
sortable: true,
|
|
12885
|
+
sort: 'asc'
|
|
12886
|
+
},
|
|
12887
|
+
{
|
|
12888
|
+
label: '제목',
|
|
12889
|
+
key: 'title',
|
|
12890
|
+
style: {
|
|
12891
|
+
width: '250px'
|
|
12892
|
+
},
|
|
12893
|
+
className: 'has-text-right',
|
|
12894
|
+
draggable: true,
|
|
12895
|
+
bodyClass: 'has-text-left',
|
|
12896
|
+
sortable: true
|
|
12897
|
+
},
|
|
12898
|
+
{
|
|
12899
|
+
label: '날짜',
|
|
12900
|
+
key: 'date',
|
|
12901
|
+
style: {
|
|
12902
|
+
width: '150px'
|
|
12903
|
+
},
|
|
12904
|
+
className: 'has-text-center',
|
|
12905
|
+
bodyClass: 'has-text-left'
|
|
12906
|
+
}
|
|
12907
|
+
],
|
|
12908
|
+
data: [
|
|
12909
|
+
{
|
|
12910
|
+
number: '1',
|
|
12911
|
+
title: '하나',
|
|
12912
|
+
date: '2020-09-19',
|
|
12913
|
+
desc: 'hello, world',
|
|
12914
|
+
child: [
|
|
12915
|
+
{
|
|
12916
|
+
number: '1-1',
|
|
12917
|
+
title: '1-하나',
|
|
12918
|
+
date: '2020-09-19'
|
|
12919
|
+
},
|
|
12920
|
+
{
|
|
12921
|
+
number: '1-2',
|
|
12922
|
+
title: '1-둘',
|
|
12923
|
+
date: '2020-09-19',
|
|
12924
|
+
desc: 'hello, world',
|
|
12925
|
+
child: [
|
|
12926
|
+
{
|
|
12927
|
+
number: '1-2-1',
|
|
12928
|
+
title: '1-둘-1',
|
|
12929
|
+
date: '2020-09-19',
|
|
12930
|
+
desc: 'hello, world',
|
|
12931
|
+
child: [
|
|
12932
|
+
{
|
|
12933
|
+
number: '1-2-1-1',
|
|
12934
|
+
title: '1-둘-1-1',
|
|
12935
|
+
desc: 'hello, world',
|
|
12936
|
+
date: '2020-09-19'
|
|
12937
|
+
}
|
|
12938
|
+
]
|
|
12939
|
+
}
|
|
12940
|
+
]
|
|
12941
|
+
}
|
|
12942
|
+
],
|
|
12943
|
+
color: 'is-danger-light'
|
|
12944
|
+
},
|
|
12945
|
+
{
|
|
12946
|
+
number: '2',
|
|
12947
|
+
title: '둘',
|
|
12948
|
+
date: '2020-09-19',
|
|
12949
|
+
desc: 'hello, world'
|
|
12950
|
+
}
|
|
12951
|
+
],
|
|
12952
|
+
hasHeader: false,
|
|
12953
|
+
hasCheck: true,
|
|
12954
|
+
hasDelete: true,
|
|
12955
|
+
textSets: {
|
|
12956
|
+
deleteConfirmMessage: '파일을 삭제하시겠습니까?'
|
|
12957
|
+
},
|
|
12958
|
+
// onDelete 에서 false 를 반환하면 해당 행 삭제를 취소할 수 있다.
|
|
12959
|
+
onDelete: (data, index) => {
|
|
12960
|
+
console.log(data, index);
|
|
12961
|
+
// 예) 특정 조건에 따라 삭제 취소
|
|
12962
|
+
// if (index === 0) {
|
|
12963
|
+
// return false;
|
|
12964
|
+
// }
|
|
12965
|
+
}
|
|
12966
|
+
})
|
|
12967
|
+
Gn.create('datagrid', {
|
|
12968
|
+
target: '.new-grid3',
|
|
12764
12969
|
headers: [
|
|
12765
12970
|
{
|
|
12766
12971
|
label: 'row data numbers',
|
|
12767
12972
|
key: 'number',
|
|
12768
12973
|
style: { width: '50px' },
|
|
12769
12974
|
sortable: true,
|
|
12770
|
-
draggable: true
|
|
12975
|
+
draggable: true,
|
|
12976
|
+
template: function (k, d) {
|
|
12977
|
+
return '<span>' + d[k] + '</span>';
|
|
12978
|
+
}
|
|
12771
12979
|
},
|
|
12772
12980
|
{
|
|
12773
12981
|
label: '제목',
|
|
12774
12982
|
key: 'title',
|
|
12775
12983
|
sortable: true,
|
|
12776
|
-
draggable: true
|
|
12984
|
+
draggable: true,
|
|
12985
|
+
template: function (k, d) {
|
|
12986
|
+
return '<span>' + d[k] + '</span>';
|
|
12987
|
+
}
|
|
12777
12988
|
},
|
|
12778
12989
|
{
|
|
12779
12990
|
label: '날짜를 표시하는 컬럼입니다',
|
|
@@ -12836,8 +13047,6 @@ Gn.create('datagrid', {
|
|
|
12836
13047
|
paginator: {
|
|
12837
13048
|
rows: 30
|
|
12838
13049
|
},
|
|
12839
|
-
hasDelete: true,
|
|
12840
|
-
fixHeader: true,
|
|
12841
13050
|
onChange: updatedData => {
|
|
12842
13051
|
console.log(updatedData)
|
|
12843
13052
|
}
|
|
@@ -12952,7 +13161,7 @@ Gn.create('datagrid', {
|
|
|
12952
13161
|
<b>color:is-warning-light</b> => 행의 색 변경</td>
|
|
12953
13162
|
</tr>
|
|
12954
13163
|
<tr>
|
|
12955
|
-
<td rowspan="
|
|
13164
|
+
<td rowspan="4">textSets</td>
|
|
12956
13165
|
<td>noData</td>
|
|
12957
13166
|
<td>string</td>
|
|
12958
13167
|
<td>No records available.</td>
|
|
@@ -12970,6 +13179,12 @@ Gn.create('datagrid', {
|
|
|
12970
13179
|
<td></td>
|
|
12971
13180
|
<td>삭제버튼 헤더표시문구</td>
|
|
12972
13181
|
</tr>
|
|
13182
|
+
<tr>
|
|
13183
|
+
<td>deleteConfirmMessage</td>
|
|
13184
|
+
<td>string</td>
|
|
13185
|
+
<td></td>
|
|
13186
|
+
<td>삭제 확인 창 표시문구 - 삭제 버튼 클릭시 확인 창 출력</td>
|
|
13187
|
+
</tr>
|
|
12973
13188
|
<tr>
|
|
12974
13189
|
<td colspan="2">childField</td>
|
|
12975
13190
|
<td>string</td>
|
|
@@ -12994,6 +13209,12 @@ Gn.create('datagrid', {
|
|
|
12994
13209
|
<td>false</td>
|
|
12995
13210
|
<td>삭제버튼 생성 여부</td>
|
|
12996
13211
|
</tr>
|
|
13212
|
+
<tr>
|
|
13213
|
+
<td colspan="2">hasHeader</td>
|
|
13214
|
+
<td>boolean</td>
|
|
13215
|
+
<td>true</td>
|
|
13216
|
+
<td>헤더 생성 여부</td>
|
|
13217
|
+
</tr>
|
|
12997
13218
|
<tr>
|
|
12998
13219
|
<td colspan="2">readonly</td>
|
|
12999
13220
|
<td>boolean</td>
|
|
@@ -13091,6 +13312,12 @@ Gn.create('datagrid', {
|
|
|
13091
13312
|
<td></td>
|
|
13092
13313
|
<td>이동, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러</td>
|
|
13093
13314
|
</tr>
|
|
13315
|
+
<tr>
|
|
13316
|
+
<td colspan="2">onDelete</td>
|
|
13317
|
+
<td>function(deletedData, index)</td>
|
|
13318
|
+
<td>deletedData, index 를 인자로 받으며, false 를 반환하면 해당 행 삭제를 취소한다.</td>
|
|
13319
|
+
<td>삭제 버튼 클릭 시 삭제 대상 데이터와 인덱스를 받을 수 있는 이벤트핸들러<br>onChange 보다 먼저 동작하며, onDelete 에서 false 를 반환하면 실제 삭제 및 onChange 호출이 수행되지 않는다.</td>
|
|
13320
|
+
</tr>
|
|
13094
13321
|
</tbody>
|
|
13095
13322
|
</table>
|
|
13096
13323
|
|
|
@@ -13276,11 +13503,11 @@ Gn.create('datagrid', {
|
|
|
13276
13503
|
}
|
|
13277
13504
|
.gn-datagrid .gn-datagrid-body-row .is-toggler::before {
|
|
13278
13505
|
content: "\f0d7";
|
|
13279
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13506
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
13280
13507
|
font-weight: 700;
|
|
13281
13508
|
}
|
|
13282
13509
|
.gn-datagrid .gn-datagrid-body-row.has-child[data-depth="0"] .is-toggler {
|
|
13283
|
-
margin-left: -
|
|
13510
|
+
margin-left: -6px;
|
|
13284
13511
|
}
|
|
13285
13512
|
.gn-datagrid .gn-datagrid-body-row.is-collapsed .is-toggler::before {
|
|
13286
13513
|
content: "\f0da";
|
|
@@ -13480,6 +13707,9 @@ Gn.create('datagrid', {
|
|
|
13480
13707
|
.gn-datagrid.has-left-padding .gn-datagrid-body-row:not(.has-child)[data-depth="0"] .gn-datagrid-body-cell:first-child {
|
|
13481
13708
|
padding-left: 15px;
|
|
13482
13709
|
}
|
|
13710
|
+
.gn-datagrid.is-headless .gn-datagrid-body-row:first-child {
|
|
13711
|
+
border-top: 1px solid #bebebe;
|
|
13712
|
+
}
|
|
13483
13713
|
.gn-datagrid .gn-datagrid-header-cell {
|
|
13484
13714
|
border-right: 1px solid #bebebe;
|
|
13485
13715
|
padding: 0.55rem;
|
|
@@ -14860,7 +15090,6 @@ tag:
|
|
|
14860
15090
|
}
|
|
14861
15091
|
.gn-dropdown.is-open .dropdown-items {
|
|
14862
15092
|
display: block;
|
|
14863
|
-
max-width: 100%;
|
|
14864
15093
|
}
|
|
14865
15094
|
.gn-dropdown.is-top .dropdown-items {
|
|
14866
15095
|
top: auto;
|
|
@@ -17195,11 +17424,21 @@ tag:
|
|
|
17195
17424
|
<div class="gn-loader is-info"></div>
|
|
17196
17425
|
```
|
|
17197
17426
|
|
|
17427
|
+
```html
|
|
17428
|
+
<div class="gn-loader is-inline"></div>
|
|
17429
|
+
<div class="gn-loader is-inline is-success"></div>
|
|
17430
|
+
<div class="gn-loader is-inline is-warning"></div>
|
|
17431
|
+
<div class="gn-loader is-inline is-danger"></div>
|
|
17432
|
+
<div class="gn-loader is-inline is-info"></div>
|
|
17433
|
+
<div class="gn-loader is-inline is-primary"></div>
|
|
17434
|
+
```
|
|
17435
|
+
|
|
17198
17436
|
### 타입
|
|
17199
17437
|
|
|
17200
17438
|
```html
|
|
17201
17439
|
<div class="gn-loader is-bounce"></div><br>
|
|
17202
17440
|
<div class="gn-loader is-move"></div>
|
|
17441
|
+
<div class="gn-loader is-inline"></div><br>
|
|
17203
17442
|
```
|
|
17204
17443
|
|
|
17205
17444
|
### 생성 옵션
|
|
@@ -17259,7 +17498,7 @@ Gn.create('button', {
|
|
|
17259
17498
|
<td colspan="2">type</td>
|
|
17260
17499
|
<td>string</td>
|
|
17261
17500
|
<td></td>
|
|
17262
|
-
<td>'bounce','move','
|
|
17501
|
+
<td>'inline','bounce','move','</td>
|
|
17263
17502
|
</tr>
|
|
17264
17503
|
<tr>
|
|
17265
17504
|
<td colspan="2">positionX</td>
|
|
@@ -17368,6 +17607,7 @@ Gn.create('button', {
|
|
|
17368
17607
|
.gn-loader.is-small {
|
|
17369
17608
|
width: 15px;
|
|
17370
17609
|
height: 15px;
|
|
17610
|
+
border-width: 5px;
|
|
17371
17611
|
}
|
|
17372
17612
|
.gn-loader.is-normal {
|
|
17373
17613
|
width: 25px;
|
|
@@ -17453,6 +17693,82 @@ Gn.create('button', {
|
|
|
17453
17693
|
border: 13px solid #88b50f;
|
|
17454
17694
|
animation: move 1.5s ease-in-out infinite alternate;
|
|
17455
17695
|
}
|
|
17696
|
+
.gn-loader.is-inline {
|
|
17697
|
+
border: 0;
|
|
17698
|
+
position: relative;
|
|
17699
|
+
margin-left: 10px;
|
|
17700
|
+
margin-right: 10px;
|
|
17701
|
+
animation-delay: -0.12s;
|
|
17702
|
+
background: #e1e1e1;
|
|
17703
|
+
}
|
|
17704
|
+
.gn-loader.is-inline, .gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17705
|
+
display: inline-block !important;
|
|
17706
|
+
width: 3px;
|
|
17707
|
+
height: 3px;
|
|
17708
|
+
animation: colorPulse 1.4s ease-in-out infinite;
|
|
17709
|
+
border-radius: 50%;
|
|
17710
|
+
}
|
|
17711
|
+
.gn-loader.is-inline::before, .gn-loader.is-inline::after {
|
|
17712
|
+
content: "";
|
|
17713
|
+
position: absolute;
|
|
17714
|
+
top: 0;
|
|
17715
|
+
}
|
|
17716
|
+
.gn-loader.is-inline::before {
|
|
17717
|
+
animation-delay: -0.24s;
|
|
17718
|
+
margin-left: -8px;
|
|
17719
|
+
}
|
|
17720
|
+
.gn-loader.is-inline::after {
|
|
17721
|
+
animation-delay: 0s;
|
|
17722
|
+
margin-left: 8px;
|
|
17723
|
+
}
|
|
17724
|
+
.gn-loader.is-inline.is-white, .gn-loader.is-inline.is-white::before, .gn-loader.is-inline.is-white::after {
|
|
17725
|
+
animation-name: colorPulse-white;
|
|
17726
|
+
}
|
|
17727
|
+
.gn-loader.is-inline.is-black, .gn-loader.is-inline.is-black::before, .gn-loader.is-inline.is-black::after {
|
|
17728
|
+
animation-name: colorPulse-black;
|
|
17729
|
+
}
|
|
17730
|
+
.gn-loader.is-inline.is-light, .gn-loader.is-inline.is-light::before, .gn-loader.is-inline.is-light::after {
|
|
17731
|
+
animation-name: colorPulse-light;
|
|
17732
|
+
}
|
|
17733
|
+
.gn-loader.is-inline.is-dark, .gn-loader.is-inline.is-dark::before, .gn-loader.is-inline.is-dark::after {
|
|
17734
|
+
animation-name: colorPulse-dark;
|
|
17735
|
+
}
|
|
17736
|
+
.gn-loader.is-inline.is-primary, .gn-loader.is-inline.is-primary::before, .gn-loader.is-inline.is-primary::after {
|
|
17737
|
+
animation-name: colorPulse-primary;
|
|
17738
|
+
}
|
|
17739
|
+
.gn-loader.is-inline.is-link, .gn-loader.is-inline.is-link::before, .gn-loader.is-inline.is-link::after {
|
|
17740
|
+
animation-name: colorPulse-link;
|
|
17741
|
+
}
|
|
17742
|
+
.gn-loader.is-inline.is-info, .gn-loader.is-inline.is-info::before, .gn-loader.is-inline.is-info::after {
|
|
17743
|
+
animation-name: colorPulse-info;
|
|
17744
|
+
}
|
|
17745
|
+
.gn-loader.is-inline.is-cancel, .gn-loader.is-inline.is-cancel::before, .gn-loader.is-inline.is-cancel::after {
|
|
17746
|
+
animation-name: colorPulse-cancel;
|
|
17747
|
+
}
|
|
17748
|
+
.gn-loader.is-inline.is-success, .gn-loader.is-inline.is-success::before, .gn-loader.is-inline.is-success::after {
|
|
17749
|
+
animation-name: colorPulse-success;
|
|
17750
|
+
}
|
|
17751
|
+
.gn-loader.is-inline.is-warning, .gn-loader.is-inline.is-warning::before, .gn-loader.is-inline.is-warning::after {
|
|
17752
|
+
animation-name: colorPulse-warning;
|
|
17753
|
+
}
|
|
17754
|
+
.gn-loader.is-inline.is-danger, .gn-loader.is-inline.is-danger::before, .gn-loader.is-inline.is-danger::after {
|
|
17755
|
+
animation-name: colorPulse-danger;
|
|
17756
|
+
}
|
|
17757
|
+
.gn-loader.is-inline.is-trans, .gn-loader.is-inline.is-trans::before, .gn-loader.is-inline.is-trans::after {
|
|
17758
|
+
animation-name: colorPulse-trans;
|
|
17759
|
+
}
|
|
17760
|
+
.gn-loader.is-inline.is-help, .gn-loader.is-inline.is-help::before, .gn-loader.is-inline.is-help::after {
|
|
17761
|
+
animation-name: colorPulse-help;
|
|
17762
|
+
}
|
|
17763
|
+
.gn-loader.is-inline.is-plain, .gn-loader.is-inline.is-plain::before, .gn-loader.is-inline.is-plain::after {
|
|
17764
|
+
animation-name: colorPulse-plain;
|
|
17765
|
+
}
|
|
17766
|
+
.gn-loader.is-inline.is-secondary, .gn-loader.is-inline.is-secondary::before, .gn-loader.is-inline.is-secondary::after {
|
|
17767
|
+
animation-name: colorPulse-secondary;
|
|
17768
|
+
}
|
|
17769
|
+
.gn-loader.is-inline.is-mono, .gn-loader.is-inline.is-mono::before, .gn-loader.is-inline.is-mono::after {
|
|
17770
|
+
animation-name: colorPulse-mono;
|
|
17771
|
+
}
|
|
17456
17772
|
|
|
17457
17773
|
@keyframes load-spin {
|
|
17458
17774
|
0% {
|
|
@@ -17481,56 +17797,260 @@ Gn.create('button', {
|
|
|
17481
17797
|
transform: translateX(15px);
|
|
17482
17798
|
}
|
|
17483
17799
|
}
|
|
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
|
-
|
|
17525
|
-
|
|
17526
|
-
|
|
17527
|
-
|
|
17528
|
-
|
|
17529
|
-
|
|
17530
|
-
|
|
17531
|
-
|
|
17532
|
-
|
|
17533
|
-
|
|
17800
|
+
@keyframes colorPulse {
|
|
17801
|
+
0%, 70%, 100% {
|
|
17802
|
+
background: #e1e1e1;
|
|
17803
|
+
/* 비활성 색상 */
|
|
17804
|
+
transform: scale(1);
|
|
17805
|
+
}
|
|
17806
|
+
35% {
|
|
17807
|
+
background: #88b50f;
|
|
17808
|
+
/* 활성 색상 */
|
|
17809
|
+
transform: scale(1.1);
|
|
17810
|
+
}
|
|
17811
|
+
}
|
|
17812
|
+
@keyframes colorPulse-white {
|
|
17813
|
+
0%, 70%, 100% {
|
|
17814
|
+
background: hsl(0, 0%, 71%);
|
|
17815
|
+
/* 비활성 색상 */
|
|
17816
|
+
transform: scale(1);
|
|
17817
|
+
}
|
|
17818
|
+
35% {
|
|
17819
|
+
background: hsl(0, 0%, 100%);
|
|
17820
|
+
/* 활성 색상 */
|
|
17821
|
+
transform: scale(1.1);
|
|
17822
|
+
}
|
|
17823
|
+
}
|
|
17824
|
+
@keyframes colorPulse-black {
|
|
17825
|
+
0%, 70%, 100% {
|
|
17826
|
+
background: hsl(0, 0%, 86%);
|
|
17827
|
+
/* 비활성 색상 */
|
|
17828
|
+
transform: scale(1);
|
|
17829
|
+
}
|
|
17830
|
+
35% {
|
|
17831
|
+
background: hsl(0, 0%, 4%);
|
|
17832
|
+
/* 활성 색상 */
|
|
17833
|
+
transform: scale(1.1);
|
|
17834
|
+
}
|
|
17835
|
+
}
|
|
17836
|
+
@keyframes colorPulse-light {
|
|
17837
|
+
0%, 70%, 100% {
|
|
17838
|
+
background: hsl(0, 0%, 93%);
|
|
17839
|
+
/* 비활성 색상 */
|
|
17840
|
+
transform: scale(1);
|
|
17841
|
+
}
|
|
17842
|
+
35% {
|
|
17843
|
+
background: hsl(0, 0%, 96%);
|
|
17844
|
+
/* 활성 색상 */
|
|
17845
|
+
transform: scale(1.1);
|
|
17846
|
+
}
|
|
17847
|
+
}
|
|
17848
|
+
@keyframes colorPulse-dark {
|
|
17849
|
+
0%, 70%, 100% {
|
|
17850
|
+
background: hsl(0, 0%, 86%);
|
|
17851
|
+
/* 비활성 색상 */
|
|
17852
|
+
transform: scale(1);
|
|
17853
|
+
}
|
|
17854
|
+
35% {
|
|
17855
|
+
background: hsl(0, 0%, 20%);
|
|
17856
|
+
/* 활성 색상 */
|
|
17857
|
+
transform: scale(1.1);
|
|
17858
|
+
}
|
|
17859
|
+
}
|
|
17860
|
+
@keyframes colorPulse-primary {
|
|
17861
|
+
0%, 70%, 100% {
|
|
17862
|
+
background: rgb(248.7551020408, 253.4387755102, 236.1612244898);
|
|
17863
|
+
/* 비활성 색상 */
|
|
17864
|
+
transform: scale(1);
|
|
17865
|
+
}
|
|
17866
|
+
35% {
|
|
17867
|
+
background: #88b50f;
|
|
17868
|
+
/* 활성 색상 */
|
|
17869
|
+
transform: scale(1.1);
|
|
17870
|
+
}
|
|
17871
|
+
}
|
|
17872
|
+
@keyframes colorPulse-link {
|
|
17873
|
+
0%, 70%, 100% {
|
|
17874
|
+
background: hsl(217, 71%, 96%);
|
|
17875
|
+
/* 비활성 색상 */
|
|
17876
|
+
transform: scale(1);
|
|
17877
|
+
}
|
|
17878
|
+
35% {
|
|
17879
|
+
background: hsl(217, 71%, 53%);
|
|
17880
|
+
/* 활성 색상 */
|
|
17881
|
+
transform: scale(1.1);
|
|
17882
|
+
}
|
|
17883
|
+
}
|
|
17884
|
+
@keyframes colorPulse-info {
|
|
17885
|
+
0%, 70%, 100% {
|
|
17886
|
+
background: hsl(204, 71%, 96%);
|
|
17887
|
+
/* 비활성 색상 */
|
|
17888
|
+
transform: scale(1);
|
|
17889
|
+
}
|
|
17890
|
+
35% {
|
|
17891
|
+
background: hsl(204, 71%, 53%);
|
|
17892
|
+
/* 활성 색상 */
|
|
17893
|
+
transform: scale(1.1);
|
|
17894
|
+
}
|
|
17895
|
+
}
|
|
17896
|
+
@keyframes colorPulse-cancel {
|
|
17897
|
+
0%, 70%, 100% {
|
|
17898
|
+
background: hsl(0, 0%, 96%);
|
|
17899
|
+
/* 비활성 색상 */
|
|
17900
|
+
transform: scale(1);
|
|
17901
|
+
}
|
|
17902
|
+
35% {
|
|
17903
|
+
background: hsl(0, 0%, 71%);
|
|
17904
|
+
/* 활성 색상 */
|
|
17905
|
+
transform: scale(1.1);
|
|
17906
|
+
}
|
|
17907
|
+
}
|
|
17908
|
+
@keyframes colorPulse-success {
|
|
17909
|
+
0%, 70%, 100% {
|
|
17910
|
+
background: hsl(141, 53%, 96%);
|
|
17911
|
+
/* 비활성 색상 */
|
|
17912
|
+
transform: scale(1);
|
|
17913
|
+
}
|
|
17914
|
+
35% {
|
|
17915
|
+
background: hsl(141, 53%, 53%);
|
|
17916
|
+
/* 활성 색상 */
|
|
17917
|
+
transform: scale(1.1);
|
|
17918
|
+
}
|
|
17919
|
+
}
|
|
17920
|
+
@keyframes colorPulse-warning {
|
|
17921
|
+
0%, 70%, 100% {
|
|
17922
|
+
background: hsl(38, 100%, 96%);
|
|
17923
|
+
/* 비활성 색상 */
|
|
17924
|
+
transform: scale(1);
|
|
17925
|
+
}
|
|
17926
|
+
35% {
|
|
17927
|
+
background: hsl(38, 100%, 50%);
|
|
17928
|
+
/* 활성 색상 */
|
|
17929
|
+
transform: scale(1.1);
|
|
17930
|
+
}
|
|
17931
|
+
}
|
|
17932
|
+
@keyframes colorPulse-danger {
|
|
17933
|
+
0%, 70%, 100% {
|
|
17934
|
+
background: hsl(348, 86%, 96%);
|
|
17935
|
+
/* 비활성 색상 */
|
|
17936
|
+
transform: scale(1);
|
|
17937
|
+
}
|
|
17938
|
+
35% {
|
|
17939
|
+
background: hsl(348, 86%, 61%);
|
|
17940
|
+
/* 활성 색상 */
|
|
17941
|
+
transform: scale(1.1);
|
|
17942
|
+
}
|
|
17943
|
+
}
|
|
17944
|
+
@keyframes colorPulse-trans {
|
|
17945
|
+
0%, 70%, 100% {
|
|
17946
|
+
background: hsl(0, 0%, 100%);
|
|
17947
|
+
/* 비활성 색상 */
|
|
17948
|
+
transform: scale(1);
|
|
17949
|
+
}
|
|
17950
|
+
35% {
|
|
17951
|
+
background: hsl(0, 0%, 100%);
|
|
17952
|
+
/* 활성 색상 */
|
|
17953
|
+
transform: scale(1.1);
|
|
17954
|
+
}
|
|
17955
|
+
}
|
|
17956
|
+
@keyframes colorPulse-help {
|
|
17957
|
+
0%, 70%, 100% {
|
|
17958
|
+
background: hsl(203, 96%, 96%);
|
|
17959
|
+
/* 비활성 색상 */
|
|
17960
|
+
transform: scale(1);
|
|
17961
|
+
}
|
|
17962
|
+
35% {
|
|
17963
|
+
background: hsl(203, 96%, 43%);
|
|
17964
|
+
/* 활성 색상 */
|
|
17965
|
+
transform: scale(1.1);
|
|
17966
|
+
}
|
|
17967
|
+
}
|
|
17968
|
+
@keyframes colorPulse-plain {
|
|
17969
|
+
0%, 70%, 100% {
|
|
17970
|
+
background: #ffffff;
|
|
17971
|
+
/* 비활성 색상 */
|
|
17972
|
+
transform: scale(1);
|
|
17973
|
+
}
|
|
17974
|
+
35% {
|
|
17975
|
+
background: #ece8e8;
|
|
17976
|
+
/* 활성 색상 */
|
|
17977
|
+
transform: scale(1.1);
|
|
17978
|
+
}
|
|
17979
|
+
}
|
|
17980
|
+
@keyframes colorPulse-secondary {
|
|
17981
|
+
0%, 70%, 100% {
|
|
17982
|
+
background: rgb(234.6, 246.9169811321, 255);
|
|
17983
|
+
/* 비활성 색상 */
|
|
17984
|
+
transform: scale(1);
|
|
17985
|
+
}
|
|
17986
|
+
35% {
|
|
17987
|
+
background: #0080d4;
|
|
17988
|
+
/* 활성 색상 */
|
|
17989
|
+
transform: scale(1.1);
|
|
17990
|
+
}
|
|
17991
|
+
}
|
|
17992
|
+
@keyframes colorPulse-mono {
|
|
17993
|
+
0%, 70%, 100% {
|
|
17994
|
+
background: rgb(244.8, 244.8, 244.8);
|
|
17995
|
+
/* 비활성 색상 */
|
|
17996
|
+
transform: scale(1);
|
|
17997
|
+
}
|
|
17998
|
+
35% {
|
|
17999
|
+
background: #656565;
|
|
18000
|
+
/* 활성 색상 */
|
|
18001
|
+
transform: scale(1.1);
|
|
18002
|
+
}
|
|
18003
|
+
}
|
|
18004
|
+
/*
|
|
18005
|
+
---
|
|
18006
|
+
name: Message
|
|
18007
|
+
category:
|
|
18008
|
+
- COMPONENT/Message(js)
|
|
18009
|
+
tag:
|
|
18010
|
+
- v.0.1.0
|
|
18011
|
+
- javascript
|
|
18012
|
+
---
|
|
18013
|
+
|
|
18014
|
+
|
|
18015
|
+
### 기본 메세지 알림
|
|
18016
|
+
-Text with icon / Text only 선택 사용 할 수 있다.
|
|
18017
|
+
|
|
18018
|
+
```html
|
|
18019
|
+
<div class="gn-message is-success has-arrange">
|
|
18020
|
+
<span class="gn-icon is-normal">
|
|
18021
|
+
<i class="fas fa-check"></i>
|
|
18022
|
+
</span>
|
|
18023
|
+
<p>Success! Your message has been sent successfully. <br/> Success! Your message has been sent successfully. </p>
|
|
18024
|
+
</div>
|
|
18025
|
+
<div class="gn-message is-warning has-arrange">
|
|
18026
|
+
<span class="gn-icon is-normal">
|
|
18027
|
+
<i class="fas fa-exclamation-circle"></i>
|
|
18028
|
+
</span>
|
|
18029
|
+
<p>Warning! There was a problem with your network connection.</p>
|
|
18030
|
+
<span class="gn-icon is-close is-dark">
|
|
18031
|
+
<i class="fas fa-times"></i>
|
|
18032
|
+
</span>
|
|
18033
|
+
</div>
|
|
18034
|
+
<div class="gn-message is-danger has-arrange">
|
|
18035
|
+
<span class="gn-icon is-normal">
|
|
18036
|
+
<i class="fas fa-exclamation-triangle"></i>
|
|
18037
|
+
</span>
|
|
18038
|
+
<p>Error! A problem has been occurred while submitting your data.</p>
|
|
18039
|
+
</div>
|
|
18040
|
+
<div class="gn-message is-info has-arrange">
|
|
18041
|
+
<span class="gn-icon is-normal">
|
|
18042
|
+
<i class="fas fa-info-circle"></i>
|
|
18043
|
+
</span>
|
|
18044
|
+
<p>Info! Please read the comments carefully.</p>
|
|
18045
|
+
<span class="gn-icon is-close is-dark">
|
|
18046
|
+
<i class="fas fa-times"></i>
|
|
18047
|
+
</span>
|
|
18048
|
+
</div>
|
|
18049
|
+
<div class="gn-message is-guide has-arrange">
|
|
18050
|
+
<span class="gn-icon is-normal">
|
|
18051
|
+
<i class="fas fa-info-circle"></i>
|
|
18052
|
+
</span>
|
|
18053
|
+
<p> 가이드 메시지 한글 폰드 테스트 Guide!</p>
|
|
17534
18054
|
</div>
|
|
17535
18055
|
|
|
17536
18056
|
```
|
|
@@ -19049,22 +19569,26 @@ tag:
|
|
|
19049
19569
|
```
|
|
19050
19570
|
````
|
|
19051
19571
|
Gn.create('picklist', {
|
|
19052
|
-
target: '.new-picklist',
|
|
19053
|
-
data
|
|
19572
|
+
target: '.new-picklist',
|
|
19573
|
+
data: {
|
|
19054
19574
|
source: [
|
|
19055
|
-
{ value: '
|
|
19056
|
-
{ value: '
|
|
19057
|
-
{ value: '
|
|
19058
|
-
{ value: 'item4', text: '항목4' },
|
|
19059
|
-
{ value: 'item5', text: '항목5' },
|
|
19060
|
-
{ value: 'item6', text: '항목6' },
|
|
19061
|
-
{ value: 'item7', text: '항목7' },
|
|
19062
|
-
{ value: 'item8', text: '항목8' }
|
|
19575
|
+
{ value: '항목1', text: 'item1', html: '<span class="gn-tag is-primary">항목1</span> item1' },
|
|
19576
|
+
{ value: '항목2', text: 'item2', html: '<span class="gn-tag is-danger">항목2</span> item2' },
|
|
19577
|
+
{ value: '항목3', text: 'item3', html: '<span class="gn-tag is-warning">항목3</span> item3' }
|
|
19063
19578
|
],
|
|
19064
|
-
target: [
|
|
19579
|
+
target: [
|
|
19580
|
+
{ value: '항목4', text: 'item4', html: '<span class="gn-tag is-help">항목4</span> item4' },
|
|
19581
|
+
{ value: '항목5', text: 'item5', html: '<span class="gn-tag is-success">항목5</span> item5' }
|
|
19582
|
+
]
|
|
19065
19583
|
},
|
|
19584
|
+
hasSourceSearch: true,
|
|
19585
|
+
hasTargetSearch: true,
|
|
19066
19586
|
width: '80%',
|
|
19067
|
-
height: 180
|
|
19587
|
+
height: 180,
|
|
19588
|
+
onChange: function (s, t) {
|
|
19589
|
+
console.log(s, t);
|
|
19590
|
+
},
|
|
19591
|
+
orderable: 'target'
|
|
19068
19592
|
});
|
|
19069
19593
|
Gn.create('picklist', {
|
|
19070
19594
|
target: '.new-picklist-v',
|
|
@@ -19101,15 +19625,21 @@ tag:
|
|
|
19101
19625
|
<tr>
|
|
19102
19626
|
<td rowspan="2">data</td>
|
|
19103
19627
|
<td>source</td>
|
|
19104
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19628
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19105
19629
|
<td></td>
|
|
19106
|
-
<td>source 항목
|
|
19630
|
+
<td>source 항목 배열<br>
|
|
19631
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19632
|
+
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
|
|
19633
|
+
</td>
|
|
19107
19634
|
</tr>
|
|
19108
19635
|
<tr>
|
|
19109
19636
|
<td>target</td>
|
|
19110
|
-
<td>array[{value: string|array, text: string}]</td>
|
|
19637
|
+
<td>array[{value: string|array, text: string, html?: string, icon?:string}]</td>
|
|
19111
19638
|
<td></td>
|
|
19112
|
-
<td>target 항목
|
|
19639
|
+
<td>target 항목 배열<br>
|
|
19640
|
+
html: 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)<br>
|
|
19641
|
+
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
|
|
19642
|
+
</td>
|
|
19113
19643
|
</tr>
|
|
19114
19644
|
<tr>
|
|
19115
19645
|
<td rowspan="3">textSets</td>
|
|
@@ -19263,23 +19793,17 @@ tag:
|
|
|
19263
19793
|
.gn-picklist .picklist-caption + .dropdown-items {
|
|
19264
19794
|
border-radius: 0 0 2px 2px;
|
|
19265
19795
|
}
|
|
19266
|
-
.gn-picklist .
|
|
19796
|
+
.gn-picklist .gn-dropdown {
|
|
19797
|
+
display: block;
|
|
19798
|
+
}
|
|
19799
|
+
.gn-picklist .picklist-source,
|
|
19800
|
+
.gn-picklist .picklist-target {
|
|
19267
19801
|
display: flex;
|
|
19268
19802
|
flex-basis: calc(50% - 16px);
|
|
19269
19803
|
width: calc(50% - 16px);
|
|
19270
19804
|
flex-grow: 0;
|
|
19271
19805
|
flex-shrink: 0;
|
|
19272
19806
|
}
|
|
19273
|
-
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19274
|
-
order: 2;
|
|
19275
|
-
width: 100%;
|
|
19276
|
-
}
|
|
19277
|
-
.gn-picklist .picklist-source .picklist-controls {
|
|
19278
|
-
order: 1;
|
|
19279
|
-
}
|
|
19280
|
-
.gn-picklist .gn-dropdown {
|
|
19281
|
-
display: block;
|
|
19282
|
-
}
|
|
19283
19807
|
.gn-picklist .picklist-source.no-controls,
|
|
19284
19808
|
.gn-picklist .picklist-target.no-controls {
|
|
19285
19809
|
flex-basis: calc(50% - 45px);
|
|
@@ -19290,23 +19814,22 @@ tag:
|
|
|
19290
19814
|
width: 100%;
|
|
19291
19815
|
height: 100%;
|
|
19292
19816
|
}
|
|
19293
|
-
.gn-picklist.
|
|
19294
|
-
.gn-picklist .picklist-target {
|
|
19295
|
-
display: flex;
|
|
19296
|
-
flex-basis: calc(50% - 16px);
|
|
19297
|
-
width: calc(50% - 16px);
|
|
19298
|
-
flex-grow: 0;
|
|
19299
|
-
flex-shrink: 0;
|
|
19300
|
-
}
|
|
19301
|
-
.gn-picklist.is-vertical .picklist-source > .gn-dropdown,
|
|
19817
|
+
.gn-picklist .picklist-source > .gn-dropdown,
|
|
19302
19818
|
.gn-picklist .picklist-target > .gn-dropdown {
|
|
19303
19819
|
order: 1;
|
|
19304
19820
|
width: 100%;
|
|
19305
19821
|
}
|
|
19306
|
-
.gn-picklist
|
|
19822
|
+
.gn-picklist .picklist-source .picklist-controls,
|
|
19307
19823
|
.gn-picklist .picklist-target .picklist-controls {
|
|
19308
19824
|
order: 2;
|
|
19309
19825
|
}
|
|
19826
|
+
.gn-picklist .picklist-source > .gn-dropdown {
|
|
19827
|
+
order: 2;
|
|
19828
|
+
width: 100%;
|
|
19829
|
+
}
|
|
19830
|
+
.gn-picklist .picklist-source .picklist-controls {
|
|
19831
|
+
order: 1;
|
|
19832
|
+
}
|
|
19310
19833
|
.gn-picklist .picklist-controls {
|
|
19311
19834
|
margin: 0.5rem;
|
|
19312
19835
|
}
|
|
@@ -19316,6 +19839,16 @@ tag:
|
|
|
19316
19839
|
.gn-picklist.is-vertical {
|
|
19317
19840
|
flex-direction: column;
|
|
19318
19841
|
}
|
|
19842
|
+
.gn-picklist.is-vertical .picklist-source,
|
|
19843
|
+
.gn-picklist.is-vertical .picklist-target {
|
|
19844
|
+
width: calc(100% - 32px);
|
|
19845
|
+
}
|
|
19846
|
+
.gn-picklist.is-vertical .picklist-source > .gn-dropdown {
|
|
19847
|
+
order: 1;
|
|
19848
|
+
}
|
|
19849
|
+
.gn-picklist.is-vertical .picklist-source .picklist-controls {
|
|
19850
|
+
order: 2;
|
|
19851
|
+
}
|
|
19319
19852
|
.gn-picklist.is-vertical > .picklist-controls {
|
|
19320
19853
|
width: 90%;
|
|
19321
19854
|
width: calc(100% - 50px);
|
|
@@ -19326,6 +19859,382 @@ tag:
|
|
|
19326
19859
|
box-shadow: 0 0 0 0.1em rgba(241.077, 70.023, 104.2338, 0.7);
|
|
19327
19860
|
}
|
|
19328
19861
|
|
|
19862
|
+
/*
|
|
19863
|
+
---
|
|
19864
|
+
name: SortableList
|
|
19865
|
+
category:
|
|
19866
|
+
- CONTROLS/SortableList(js)
|
|
19867
|
+
tag:
|
|
19868
|
+
- v.0.1.0
|
|
19869
|
+
- javascript
|
|
19870
|
+
---
|
|
19871
|
+
### 기본 사용
|
|
19872
|
+
|
|
19873
|
+
```html
|
|
19874
|
+
<div class="gn-sortablelist">
|
|
19875
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center">
|
|
19876
|
+
<button type="button" class="gn-button is-outline">
|
|
19877
|
+
<span class="gn-icon">
|
|
19878
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19879
|
+
</span>
|
|
19880
|
+
</button>
|
|
19881
|
+
<button type="button" class="gn-button is-outline">
|
|
19882
|
+
<span class="gn-icon">
|
|
19883
|
+
<i class="fas fa-angle-up"></i>
|
|
19884
|
+
</span>
|
|
19885
|
+
</button>
|
|
19886
|
+
<button type="button" class="gn-button is-outline">
|
|
19887
|
+
<span class="gn-icon">
|
|
19888
|
+
<i class="fas fa-angle-down"></i>
|
|
19889
|
+
</span>
|
|
19890
|
+
</button>
|
|
19891
|
+
<button type="button" class="gn-button is-outline">
|
|
19892
|
+
<span class="gn-icon">
|
|
19893
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19894
|
+
</span>
|
|
19895
|
+
</button>
|
|
19896
|
+
</div>
|
|
19897
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19898
|
+
<div class="dropdown-items">
|
|
19899
|
+
<ul class="sortablelist-rows">
|
|
19900
|
+
<li class="dropdown-item">항목 1</li>
|
|
19901
|
+
<li class="dropdown-item">항목 2</li>
|
|
19902
|
+
<li class="dropdown-item">항목 3</li>
|
|
19903
|
+
<li class="dropdown-item">항목 4</li>
|
|
19904
|
+
</ul>
|
|
19905
|
+
</div>
|
|
19906
|
+
</div>
|
|
19907
|
+
</div>
|
|
19908
|
+
```
|
|
19909
|
+
|
|
19910
|
+
### 버튼 우측 배치
|
|
19911
|
+
|
|
19912
|
+
```html
|
|
19913
|
+
<div class="gn-sortablelist">
|
|
19914
|
+
<div class="gn-dropdown is-opened sortablelist-items">
|
|
19915
|
+
<div class="dropdown-items">
|
|
19916
|
+
<ul class="sortablelist-rows">
|
|
19917
|
+
<li class="dropdown-item">항목 1</li>
|
|
19918
|
+
<li class="dropdown-item">항목 2</li>
|
|
19919
|
+
<li class="dropdown-item">항목 3</li>
|
|
19920
|
+
</ul>
|
|
19921
|
+
</div>
|
|
19922
|
+
</div>
|
|
19923
|
+
<div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center is-right">
|
|
19924
|
+
<button type="button" class="gn-button is-outline">
|
|
19925
|
+
<span class="gn-icon">
|
|
19926
|
+
<i class="fas fa-angle-double-up"></i>
|
|
19927
|
+
</span>
|
|
19928
|
+
</button>
|
|
19929
|
+
<button type="button" class="gn-button is-outline">
|
|
19930
|
+
<span class="gn-icon">
|
|
19931
|
+
<i class="fas fa-angle-up"></i>
|
|
19932
|
+
</span>
|
|
19933
|
+
</button>
|
|
19934
|
+
<button type="button" class="gn-button is-outline">
|
|
19935
|
+
<span class="gn-icon">
|
|
19936
|
+
<i class="fas fa-angle-down"></i>
|
|
19937
|
+
</span>
|
|
19938
|
+
</button>
|
|
19939
|
+
<button type="button" class="gn-button is-outline">
|
|
19940
|
+
<span class="gn-icon">
|
|
19941
|
+
<i class="fas fa-angle-double-down"></i>
|
|
19942
|
+
</span>
|
|
19943
|
+
</button>
|
|
19944
|
+
</div>
|
|
19945
|
+
</div>
|
|
19946
|
+
```
|
|
19947
|
+
|
|
19948
|
+
### 생성 옵션
|
|
19949
|
+
```ejs
|
|
19950
|
+
<div class="new-sortablelist"></div>
|
|
19951
|
+
<div class="new-sortablelist-drag"></div>
|
|
19952
|
+
<div class="new-sortablelist-cols"></div>
|
|
19953
|
+
```
|
|
19954
|
+
````
|
|
19955
|
+
// 단일 컬럼
|
|
19956
|
+
Gn.create('sortablelist', {
|
|
19957
|
+
target: '.new-sortablelist',
|
|
19958
|
+
data: [
|
|
19959
|
+
{ value: '1', text: '항목 1' },
|
|
19960
|
+
{ value: '2', text: '항목 2' },
|
|
19961
|
+
{ value: '3', text: '항목 3' },
|
|
19962
|
+
{ value: '4', text: '항목 4' },
|
|
19963
|
+
{ value: '5', text: '항목 5' },
|
|
19964
|
+
{ value: '6', text: '항목 6' },
|
|
19965
|
+
{ value: '7', text: '항목 7' },
|
|
19966
|
+
{ value: '8', text: '항목 8' },
|
|
19967
|
+
{ value: '9', text: '항목 9' },
|
|
19968
|
+
{ value: '10', text: '항목 10' }
|
|
19969
|
+
]
|
|
19970
|
+
});
|
|
19971
|
+
// 드래그 앤 드롭
|
|
19972
|
+
Gn.create('sortablelist', {
|
|
19973
|
+
target: '.new-sortablelist-drag',
|
|
19974
|
+
data: [
|
|
19975
|
+
{ value: 'a', text: '항목 A' },
|
|
19976
|
+
{ value: 'b', text: '항목 B' },
|
|
19977
|
+
{ value: 'c', text: '항목 C' },
|
|
19978
|
+
{ value: 'd', text: '항목 D' },
|
|
19979
|
+
{ value: 'e', text: '항목 E' },
|
|
19980
|
+
{ value: 'f', text: '항목 F' },
|
|
19981
|
+
{ value: 'g', text: '항목 G' },
|
|
19982
|
+
{ value: 'h', text: '항목 H' },
|
|
19983
|
+
{ value: 'i', text: '항목 I' },
|
|
19984
|
+
{ value: 'j', text: '항목 J' }
|
|
19985
|
+
],
|
|
19986
|
+
draggable: true
|
|
19987
|
+
});
|
|
19988
|
+
// 다중 컬럼
|
|
19989
|
+
Gn.create('sortablelist', {
|
|
19990
|
+
target: '.new-sortablelist-cols',
|
|
19991
|
+
buttonPosition: 'right',
|
|
19992
|
+
data: [
|
|
19993
|
+
{ value: 'x1', cols: ['항목1', '카테고리A', '1000'] },
|
|
19994
|
+
{ value: 'x2', cols: ['항목2', '카테고리B', '2000'] },
|
|
19995
|
+
{ value: 'x3', cols: ['항목3', '카테고리C', '3000'] },
|
|
19996
|
+
{ value: 'x4', cols: ['항목4', '카테고리D', '4000'] },
|
|
19997
|
+
{ value: 'x5', cols: ['항목5', '카테고리E', '5000'] },
|
|
19998
|
+
{ value: 'x6', cols: ['항목6', '카테고리F', '6000'] },
|
|
19999
|
+
{ value: 'x7', cols: ['항목7', '카테고리G', '7000'] },
|
|
20000
|
+
{ value: 'x8', cols: ['항목8', '카테고리H', '8000'] },
|
|
20001
|
+
{ value: 'x9', cols: ['항목9', '카테고리I', '9000'] },
|
|
20002
|
+
{ value: 'x10', cols: ['항목10', '카테고리J', '10000'] }
|
|
20003
|
+
]
|
|
20004
|
+
});
|
|
20005
|
+
````
|
|
20006
|
+
|
|
20007
|
+
### 데이터 모델 (SortableListItem)
|
|
20008
|
+
|
|
20009
|
+
<table class="gn-table is-full is-border">
|
|
20010
|
+
<thead>
|
|
20011
|
+
<th>필드</th>
|
|
20012
|
+
<th>type</th>
|
|
20013
|
+
<th>필수</th>
|
|
20014
|
+
<th>description</th>
|
|
20015
|
+
</thead>
|
|
20016
|
+
<tbody>
|
|
20017
|
+
<tr>
|
|
20018
|
+
<td>value</td>
|
|
20019
|
+
<td>string</td>
|
|
20020
|
+
<td>Y</td>
|
|
20021
|
+
<td>고유 값 (빈 문자열 불가)</td>
|
|
20022
|
+
</tr>
|
|
20023
|
+
<tr>
|
|
20024
|
+
<td>text</td>
|
|
20025
|
+
<td>string</td>
|
|
20026
|
+
<td>N</td>
|
|
20027
|
+
<td>단일 컬럼 표시 텍스트</td>
|
|
20028
|
+
</tr>
|
|
20029
|
+
<tr>
|
|
20030
|
+
<td>cols</td>
|
|
20031
|
+
<td>string[]</td>
|
|
20032
|
+
<td>N</td>
|
|
20033
|
+
<td>다중 컬럼 표시 값 배열</td>
|
|
20034
|
+
</tr>
|
|
20035
|
+
</tbody>
|
|
20036
|
+
</table>
|
|
20037
|
+
|
|
20038
|
+
### 옵션
|
|
20039
|
+
<table class="gn-table is-full is-border">
|
|
20040
|
+
<thead>
|
|
20041
|
+
<th colspan="2">name</th>
|
|
20042
|
+
<th>type</th>
|
|
20043
|
+
<th>default</th>
|
|
20044
|
+
<th>description</th>
|
|
20045
|
+
</thead>
|
|
20046
|
+
<tbody>
|
|
20047
|
+
<tr>
|
|
20048
|
+
<td colspan="2">target</td>
|
|
20049
|
+
<td>string</td>
|
|
20050
|
+
<td></td>
|
|
20051
|
+
<td>sortablelist를 표시할 대상의 선택자(selector)</td>
|
|
20052
|
+
</tr>
|
|
20053
|
+
<tr>
|
|
20054
|
+
<td colspan="2">data</td>
|
|
20055
|
+
<td>SortableListItem[]</td>
|
|
20056
|
+
<td></td>
|
|
20057
|
+
<td>sortablelist에 표시할 데이터 배열</td>
|
|
20058
|
+
</tr>
|
|
20059
|
+
<tr>
|
|
20060
|
+
<td colspan="2">buttonPosition</td>
|
|
20061
|
+
<td>left | right</td>
|
|
20062
|
+
<td>left</td>
|
|
20063
|
+
<td>순서 변경 버튼 위치</td>
|
|
20064
|
+
</tr>
|
|
20065
|
+
<tr>
|
|
20066
|
+
<td colspan="2">draggable</td>
|
|
20067
|
+
<td>boolean</td>
|
|
20068
|
+
<td>false</td>
|
|
20069
|
+
<td>드래그 앤 드롭 순서 변경 활성화 여부</td>
|
|
20070
|
+
</tr>
|
|
20071
|
+
<tr>
|
|
20072
|
+
<td>textSets</td>
|
|
20073
|
+
<td>noData</td>
|
|
20074
|
+
<td>string</td>
|
|
20075
|
+
<td>No records available.</td>
|
|
20076
|
+
<td>데이터가 없을 경우 출력 메시지</td>
|
|
20077
|
+
</tr>
|
|
20078
|
+
<tr>
|
|
20079
|
+
<td colspan="2">disabled</td>
|
|
20080
|
+
<td>boolean</td>
|
|
20081
|
+
<td>false</td>
|
|
20082
|
+
<td>컴포넌트 비활성화 여부</td>
|
|
20083
|
+
</tr>
|
|
20084
|
+
<tr>
|
|
20085
|
+
<td colspan="2">width</td>
|
|
20086
|
+
<td>number, string</td>
|
|
20087
|
+
<td>100%</td>
|
|
20088
|
+
<td>컴포넌트 너비</td>
|
|
20089
|
+
</tr>
|
|
20090
|
+
<tr>
|
|
20091
|
+
<td colspan="2">height</td>
|
|
20092
|
+
<td>number, string</td>
|
|
20093
|
+
<td>150</td>
|
|
20094
|
+
<td>리스트 높이 (미지정 시 150)</td>
|
|
20095
|
+
</tr>
|
|
20096
|
+
<tr>
|
|
20097
|
+
<td colspan="2">onChange</td>
|
|
20098
|
+
<td>function(data)</td>
|
|
20099
|
+
<td></td>
|
|
20100
|
+
<td>데이터 변경 시 발생 이벤트</td>
|
|
20101
|
+
</tr>
|
|
20102
|
+
</tbody>
|
|
20103
|
+
</table>
|
|
20104
|
+
|
|
20105
|
+
### 메소드
|
|
20106
|
+
|
|
20107
|
+
<table class="gn-table is-full is-border">
|
|
20108
|
+
<thead>
|
|
20109
|
+
<th>name</th>
|
|
20110
|
+
<th>return</th>
|
|
20111
|
+
<th>description</th>
|
|
20112
|
+
</thead>
|
|
20113
|
+
<tbody>
|
|
20114
|
+
<tr>
|
|
20115
|
+
<td>getData()</td>
|
|
20116
|
+
<td>SortableListItem[]</td>
|
|
20117
|
+
<td>현재 데이터 배열을 반환한다.</td>
|
|
20118
|
+
</tr>
|
|
20119
|
+
<tr>
|
|
20120
|
+
<td>setData(data: SortableListItem[]})</td>
|
|
20121
|
+
<td>void</td>
|
|
20122
|
+
<td>데이터 배열을 설정하고 다시 렌더링한다.</td>
|
|
20123
|
+
</tr>
|
|
20124
|
+
<tr>
|
|
20125
|
+
<td>disable()</td>
|
|
20126
|
+
<td>void</td>
|
|
20127
|
+
<td>컴포넌트를 비활성화한다.</td>
|
|
20128
|
+
</tr>
|
|
20129
|
+
<tr>
|
|
20130
|
+
<td>enable()</td>
|
|
20131
|
+
<td>void</td>
|
|
20132
|
+
<td>컴포넌트를 활성화한다.</td>
|
|
20133
|
+
</tr>
|
|
20134
|
+
</tbody>
|
|
20135
|
+
</table>
|
|
20136
|
+
|
|
20137
|
+
*/
|
|
20138
|
+
.gn-sortablelist {
|
|
20139
|
+
display: flex;
|
|
20140
|
+
align-items: stretch;
|
|
20141
|
+
-webkit-user-select: none;
|
|
20142
|
+
-moz-user-select: none;
|
|
20143
|
+
user-select: none;
|
|
20144
|
+
}
|
|
20145
|
+
.gn-sortablelist .gn-dropdown {
|
|
20146
|
+
display: block;
|
|
20147
|
+
}
|
|
20148
|
+
.gn-sortablelist .sortablelist-items {
|
|
20149
|
+
flex: 1 1 auto;
|
|
20150
|
+
}
|
|
20151
|
+
.gn-sortablelist .sortablelist-controls {
|
|
20152
|
+
margin: 0.5rem;
|
|
20153
|
+
}
|
|
20154
|
+
.gn-sortablelist .sortablelist-controls .gn-button {
|
|
20155
|
+
padding: 0.25rem 0.75rem;
|
|
20156
|
+
}
|
|
20157
|
+
.gn-sortablelist .sortablelist-controls.is-right {
|
|
20158
|
+
order: 2;
|
|
20159
|
+
margin-left: 0.5rem;
|
|
20160
|
+
margin-right: 0;
|
|
20161
|
+
justify-content: center;
|
|
20162
|
+
}
|
|
20163
|
+
.gn-sortablelist .sortablelist-rows {
|
|
20164
|
+
margin: 0;
|
|
20165
|
+
padding: 0;
|
|
20166
|
+
list-style: none;
|
|
20167
|
+
}
|
|
20168
|
+
.gn-sortablelist .sortablelist-cols {
|
|
20169
|
+
display: flex;
|
|
20170
|
+
gap: 0.5rem;
|
|
20171
|
+
width: 100%;
|
|
20172
|
+
}
|
|
20173
|
+
.gn-sortablelist .sortablelist-col {
|
|
20174
|
+
flex: 1 1 0;
|
|
20175
|
+
min-width: 0;
|
|
20176
|
+
}
|
|
20177
|
+
.gn-sortablelist .dropdown-item.is-empty {
|
|
20178
|
+
color: hsl(0, 0%, 48%);
|
|
20179
|
+
}
|
|
20180
|
+
.gn-sortablelist .dropdown-item.is-dragging {
|
|
20181
|
+
opacity: 0.6;
|
|
20182
|
+
}
|
|
20183
|
+
.gn-sortablelist .dropdown-item.is-group-dragging {
|
|
20184
|
+
outline: 1px dashed hsl(0, 0%, 71%);
|
|
20185
|
+
}
|
|
20186
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top,
|
|
20187
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20188
|
+
background-color: hsl(0, 0%, 96%);
|
|
20189
|
+
}
|
|
20190
|
+
.gn-sortablelist .dropdown-item.is-drag-over-top {
|
|
20191
|
+
box-shadow: inset 0 2px 0 0 #88b50f;
|
|
20192
|
+
}
|
|
20193
|
+
.gn-sortablelist .dropdown-item.is-drag-over-bottom {
|
|
20194
|
+
box-shadow: inset 0 -2px 0 0 #88b50f;
|
|
20195
|
+
}
|
|
20196
|
+
|
|
20197
|
+
.sortablelist-drag-preview {
|
|
20198
|
+
position: absolute;
|
|
20199
|
+
top: -9999px;
|
|
20200
|
+
left: -9999px;
|
|
20201
|
+
display: inline-flex;
|
|
20202
|
+
align-items: flex-start;
|
|
20203
|
+
gap: 8px;
|
|
20204
|
+
padding: 6px 10px;
|
|
20205
|
+
border-radius: 8px;
|
|
20206
|
+
background-color: hsl(0, 0%, 20%);
|
|
20207
|
+
color: hsl(0, 0%, 98%);
|
|
20208
|
+
font-size: 12px;
|
|
20209
|
+
line-height: 1;
|
|
20210
|
+
}
|
|
20211
|
+
|
|
20212
|
+
.sortablelist-drag-preview::before {
|
|
20213
|
+
content: attr(data-count);
|
|
20214
|
+
min-width: 18px;
|
|
20215
|
+
height: 18px;
|
|
20216
|
+
padding: 0 6px;
|
|
20217
|
+
border-radius: 999px;
|
|
20218
|
+
background-color: hsl(0, 0%, 98%);
|
|
20219
|
+
color: hsl(0, 0%, 20%);
|
|
20220
|
+
font-size: 11px;
|
|
20221
|
+
line-height: 18px;
|
|
20222
|
+
text-align: center;
|
|
20223
|
+
}
|
|
20224
|
+
|
|
20225
|
+
.sortablelist-drag-preview-list {
|
|
20226
|
+
display: flex;
|
|
20227
|
+
flex-direction: column;
|
|
20228
|
+
gap: 4px;
|
|
20229
|
+
}
|
|
20230
|
+
|
|
20231
|
+
.sortablelist-drag-preview .dropdown-item.is-ghost {
|
|
20232
|
+
padding: 4px 8px;
|
|
20233
|
+
background-color: hsl(0, 0%, 18%);
|
|
20234
|
+
border-radius: 4px;
|
|
20235
|
+
color: hsl(0, 0%, 98%);
|
|
20236
|
+
}
|
|
20237
|
+
|
|
19329
20238
|
/*
|
|
19330
20239
|
---
|
|
19331
20240
|
name: Progressbar
|
|
@@ -19905,6 +20814,7 @@ tag:
|
|
|
19905
20814
|
.gn-tab > ul {
|
|
19906
20815
|
display: flex;
|
|
19907
20816
|
border-bottom: 1px solid #bebebe;
|
|
20817
|
+
padding-bottom: 0px;
|
|
19908
20818
|
}
|
|
19909
20819
|
.gn-tab.is-center > ul {
|
|
19910
20820
|
justify-content: center;
|
|
@@ -21054,7 +21964,7 @@ Gn.create('tree', {
|
|
|
21054
21964
|
}
|
|
21055
21965
|
.gn-tree li .tree-item .is-toggler::before {
|
|
21056
21966
|
content: "\f0da";
|
|
21057
|
-
font-family: "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21967
|
+
font-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
|
|
21058
21968
|
font-weight: 900;
|
|
21059
21969
|
}
|
|
21060
21970
|
.gn-tree li .tree-item + ul {
|