@ninebone/table 0.0.1

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.
Files changed (63) hide show
  1. package/dist/css/_common.css +11 -0
  2. package/dist/css/ai.css +609 -0
  3. package/dist/css/aiMessage.css +18 -0
  4. package/dist/css/ideAssi.css +616 -0
  5. package/dist/css/ideDiff.css +124 -0
  6. package/dist/css/ngButton.css +40 -0
  7. package/dist/css/ngCheckBox.css +81 -0
  8. package/dist/css/ngColExpand.css +17 -0
  9. package/dist/css/ngCombo.css +75 -0
  10. package/dist/css/ngComboPanel.css +102 -0
  11. package/dist/css/ngExpandButton.css +71 -0
  12. package/dist/css/ngExpandCheck.css +34 -0
  13. package/dist/css/ngExpandIcon.css +36 -0
  14. package/dist/css/ngFilterPanel.css +94 -0
  15. package/dist/css/ngFlexBox.css +7 -0
  16. package/dist/css/ngFoot.css +109 -0
  17. package/dist/css/ngHScrollBar.css +85 -0
  18. package/dist/css/ngHead.css +86 -0
  19. package/dist/css/ngImg.css +22 -0
  20. package/dist/css/ngInfo.css +54 -0
  21. package/dist/css/ngInputColor.css +77 -0
  22. package/dist/css/ngInputDate.css +74 -0
  23. package/dist/css/ngInputText.css +65 -0
  24. package/dist/css/ngMaximize.css +26 -0
  25. package/dist/css/ngProgress.css +40 -0
  26. package/dist/css/ngRadio.css +61 -0
  27. package/dist/css/ngRenderer.css +59 -0
  28. package/dist/css/ngRowDetail.css +26 -0
  29. package/dist/css/ngRowDrag.css +13 -0
  30. package/dist/css/ngRowExpand.css +20 -0
  31. package/dist/css/ngRowIndicator.css +111 -0
  32. package/dist/css/ngRowPin.css +30 -0
  33. package/dist/css/ngRowState.css +16 -0
  34. package/dist/css/ngSvg.css +22 -0
  35. package/dist/css/ngTextArea.css +64 -0
  36. package/dist/css/ngTreeItem.css +133 -0
  37. package/dist/css/ngVScrollBar.css +85 -0
  38. package/dist/css/ninegrid.css +1212 -0
  39. package/dist/css/nxAlert.css +142 -0
  40. package/dist/css/nxButtons.css +33 -0
  41. package/dist/css/nxCollapse.css +67 -0
  42. package/dist/css/nxConfirm.css +143 -0
  43. package/dist/css/nxDialog.css +606 -0
  44. package/dist/css/nxDiv.css +120 -0
  45. package/dist/css/nxEditor.css +171 -0
  46. package/dist/css/nxForm.css +67 -0
  47. package/dist/css/nxModal.css +627 -0
  48. package/dist/css/nxPanel.css +129 -0
  49. package/dist/css/nxSideMenu.css +62 -0
  50. package/dist/css/nxSideMenuBody.css +8 -0
  51. package/dist/css/nxSideMenuFoot.css +78 -0
  52. package/dist/css/nxSideMenuHead.css +82 -0
  53. package/dist/css/nxSideMenuItem.css +203 -0
  54. package/dist/css/nxSplitter.css +63 -0
  55. package/dist/css/nxTab.css +193 -0
  56. package/dist/css/nxTitle.css +210 -0
  57. package/dist/css/nxTitle2.css +33 -0
  58. package/dist/index.html +60 -0
  59. package/dist/nine-table.js +141 -0
  60. package/dist/nine-table.js.map +1 -0
  61. package/dist/nine-table.umd.js +47 -0
  62. package/dist/nine-table.umd.js.map +1 -0
  63. package/package.json +34 -0
@@ -0,0 +1,124 @@
1
+ :host(ide-diff) {
2
+ width: 100%;
3
+ height: 100%;
4
+
5
+ .wrapper {
6
+ display: flex;
7
+ position: relative;
8
+ --gap: 8px;
9
+ --font-family: monospace;
10
+ height: 100%;
11
+ }
12
+ .panel {
13
+ width: 50%;
14
+ border: 1px solid #ccc;
15
+ --padding: 8px;
16
+ overflow: auto;
17
+ white-space: pre-wrap;
18
+ text-align: left;
19
+ display: flex;
20
+ justify-content: flex-start; /* 좌측 정렬 */
21
+ align-items: flex-start; /* 상단 정렬 */
22
+ flex-direction: column;
23
+ box-sizing: border-box;
24
+ }
25
+ .panel pre {
26
+ margin: 0;
27
+ --padding: 8px;
28
+ text-align: left;
29
+ white-space: pre-wrap;
30
+ word-break: break-word;
31
+ }
32
+
33
+ .cm-editor {
34
+ height: 100%;
35
+ width: 100%;
36
+ --padding-left: 80px;
37
+ }
38
+ .cm-content { /* CodeMirror 텍스트 내용을 감싸는 내부 div */
39
+ }
40
+ /* 각 라인에 버튼 공간 확보 */
41
+
42
+ /* ideDiff.css */
43
+
44
+ /* 기본적인 CodeMirror 라인 포지셔닝 */
45
+ .cm-line {
46
+ position: relative;
47
+ --display: flex;
48
+ padding-left: 18px;
49
+ }
50
+
51
+ /* 병합 버튼 컨테이너 */
52
+ .cm-merge-button-container {
53
+ position: absolute;
54
+ height: 16px;
55
+ width: 16px; /* 버튼 너비 고정으로 겹침 방지 */
56
+ left: 2px; /* 라인 번호 영역 바로 옆에 배치. 필요에 따라 조절하세요. */
57
+ top: 50%;
58
+ transform: translateY(-50%);
59
+ --z-index: 1; /* 다른 요소 위에 표시되도록 Z-index를 높게 설정 */
60
+ display: flex;
61
+ --gap: 5px;
62
+ justify-content: center; /* 버튼 중앙 정렬 */
63
+ }
64
+
65
+ /* 병합 버튼 기본 스타일 */
66
+ .cm-merge-button {
67
+ --margin: 2px 0;
68
+ width: 100%;
69
+ border: none;
70
+ border-radius: 3px;
71
+ cursor: pointer;
72
+ opacity: 0.7; /* 기본적으로 약간 투명하게 */
73
+ transition: opacity 0.2s ease-in-out; /* 호버 시 부드러운 전환 */
74
+ background-repeat: no-repeat;
75
+ background-position: center;
76
+ background-size: auto;
77
+ }
78
+
79
+ /* 호버 시 버튼 불투명도 증가 */
80
+ .cm-merge-button:hover {
81
+ opacity: 1;
82
+ background-color: #e0e0e0;
83
+ }
84
+
85
+ /* AI 추천을 현재 소스에 '적용'하는 버튼 (오른쪽 TOBE 에디터에 붙음) */
86
+ .cm-merge-button.accept {
87
+ background-color: #4CAF50; /* 녹색 */
88
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="white" class="bi bi-arrow-left-short" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5"/></svg>');
89
+ }
90
+
91
+ /* AI의 삭제를 현재 소스 기준으로 '되돌리는' 버튼 (왼쪽 ASIS 에디터에 붙음) */
92
+ .cm-merge-button.revert {
93
+ background-color: #f44336; /* 빨간색 */
94
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="white" class="bi bi-x" viewBox="0 0 16 16"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/></svg>');
95
+ }
96
+
97
+ /* 삽입된 라인 (AI 추천 소스에 새로 추가된 라인) 배경색 및 경계선 */
98
+ .cm-inserted-line-bg {
99
+ background-color: #e6ffed; /* 연한 녹색 */
100
+ --border-left: 3px solid #66bb6a; /* 진한 녹색 */
101
+ }
102
+
103
+ /* 삭제된 라인 (현재 소스에서 AI가 삭제한 것으로 판단된 라인) 배경색 및 경계선 */
104
+ .cm-deleted-line-bg {
105
+ background-color: #ffebe9; /* 연한 빨간색 */
106
+ --border-left: 3px solid #ef5350; /* 진한 빨간색 */
107
+ }
108
+
109
+ /* CodeMirror 선택 영역 배경색 */
110
+ .cm-selectionBackground {
111
+ background-color: #d7d4f9 !important; /* 보라색 계열 */
112
+ }
113
+
114
+ /* 텍스트 선택 시 배경색 (브라우저 기본 선택색 재정의) */
115
+ .cm-editor ::selection {
116
+ background-color: #d7d4f9 !important;
117
+ color: inherit !important; /* 텍스트 색상은 유지 */
118
+ }
119
+ .cm-editor::-moz-selection { /* Firefox를 위한 접두사 */
120
+ background-color: #d7d4f9 !important;
121
+ color: inherit !important;
122
+ }
123
+ }
124
+
@@ -0,0 +1,40 @@
1
+ :host {
2
+ height: 100%;
3
+ width: calc(100% - 8px);
4
+ display: flex;
5
+ align-items: center;
6
+ margin-left: 4px;
7
+ margin-right: 4px;
8
+ }
9
+
10
+ button {
11
+ height: calc(100% - 4px);
12
+ width: 100%;
13
+ margin-left: unset;
14
+ margin-right: unset;
15
+ border: 1px solid #ddd;
16
+ border-radius: 3px;
17
+ background-color: #f0f0f0;
18
+ outline: none;
19
+ cursor: pointer;
20
+ color: #333;
21
+ overflow: hidden;
22
+ text-overflow: ellipsis;
23
+ white-space: nowrap;
24
+ font: inherit;
25
+ }
26
+ button:hover:not(:disabled) {
27
+ border-color: #999;
28
+ --box-shadow: 0 0 1px rgba(0, 0, 0, 0.5);
29
+ }
30
+ button:focus:not(:disabled) {
31
+ border-color: #999;
32
+ }
33
+ button:active:not(:disabled) {
34
+ border-color: #333;
35
+ filter: brightness(80%);
36
+ }
37
+ button:disabled {
38
+ opacity: 0.5;
39
+ cursor: unset;
40
+ }
@@ -0,0 +1,81 @@
1
+ :host {
2
+ height: 100%;
3
+ width: calc(100% - 8px);
4
+ display: flex;
5
+ align-items: center;
6
+ margin-left: 4px;
7
+ margin-right: 4px;
8
+ }
9
+
10
+ :host(.invalid)::after {
11
+ content: '';
12
+ margin-left: 4px;
13
+ width: 16px;
14
+ height: 16px;
15
+ border: none;
16
+ background-repeat: no-repeat;
17
+ background-position: center;
18
+ background-size: auto;
19
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" style="fill: none; stroke-width: 2px; stroke: darkgoldenrod;" viewBox="0 0 16 16"><path d="m8 1 7 14H1L8 1z"></path><path d="M7.99 12H8v.01h-.01zM8 6v4"></path></svg>');
20
+ }
21
+
22
+ :host-context(.selected) input {
23
+ }
24
+
25
+ input {
26
+ flex-shrink: 0;
27
+ width: 14px;
28
+ height: 14px;
29
+ -webkit-appearance: none;
30
+ -moz-appearance: none;
31
+ appearance: none;
32
+ background-repeat: no-repeat;
33
+ background-position: center;
34
+ background-size: contain;
35
+ border: 1px solid dimgray;
36
+ outline: 0;
37
+ margin-top: 0;
38
+ margin-bottom: 0;
39
+ }
40
+
41
+ input[type=checkbox] {
42
+ }
43
+ input[type=checkbox]:checked {
44
+ background-image: url('data:image/svg+xml;utf8,<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><polyline points="2.5,7 6,10 11,3" style="fill:none;stroke:dimgray;stroke-width:2" /></svg>');
45
+ }
46
+ input[type=radio] {
47
+ border-radius: 50%;
48
+ }
49
+ input[type=radio]:checked {
50
+ background-image: url('data:image/svg+xml;utf8,<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><circle r="3" cx="50%" cy="50%" fill="dimgray" /></svg>');
51
+ }
52
+
53
+ input:disabled {
54
+ opacity: 0.3;
55
+ }
56
+
57
+ label {
58
+ display: flex;
59
+ align-items: center;
60
+ }
61
+
62
+ label.disabled {
63
+ pointer-events: none;
64
+ opacity: 0.5;
65
+ }
66
+
67
+ span {
68
+ margin-left: 2px;
69
+ align-items: center;
70
+ width: 100%;
71
+ line-height: 100%;
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ div.ng-wrap {
78
+ display: flex;
79
+ align-items: center;
80
+ width: 100%;
81
+ }
@@ -0,0 +1,17 @@
1
+ :host {
2
+ position: absolute;
3
+ top: 1px;
4
+ right: 4px;
5
+ width: 12px;
6
+ height: 100%;
7
+ cursor: pointer;
8
+ background-repeat: no-repeat;
9
+ background-position: center;
10
+ background-size: auto;
11
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="black" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M6 8a.5.5 0 0 0 .5.5h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 0 0-.708.708L12.293 7.5H6.5A.5.5 0 0 0 6 8m-2.5 7a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5"/></svg>');
12
+ }
13
+
14
+ :host(.expand) {
15
+ right: 8px;
16
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="black" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12.5 15a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5M10 8a.5.5 0 0 1-.5.5H3.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L3.707 7.5H9.5a.5.5 0 0 1 .5.5"/></svg>');
17
+ }
@@ -0,0 +1,75 @@
1
+ :host {
2
+ height: 100%;
3
+ width: calc(100% - 8px);
4
+ display: flex;
5
+ align-items: center;
6
+ margin-left: 4px;
7
+ margin-right: 4px;
8
+ }
9
+
10
+ :host(.invalid) .btn2::after {
11
+ content: '';
12
+ width: 16px;
13
+ height: 16px;
14
+ border: none;
15
+ background-repeat: no-repeat;
16
+ background-position: center;
17
+ background-size: auto;
18
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" style="fill: none; stroke-width: 2px; stroke: darkgoldenrod;" viewBox="0 0 16 16"><path d="m8 1 7 14H1L8 1z"></path><path d="M7.99 12H8v.01h-.01zM8 6v4"></path></svg>');
19
+ }
20
+
21
+ :host:hover {
22
+ --border-color: #28a745;
23
+ --box-shadow: 0 0 0 .2rem rgba(40, 167, 69, 0.25);
24
+ border-color: unset;
25
+ box-shadow: unset;
26
+ }
27
+
28
+ button {
29
+ outline: none;
30
+ }
31
+ button:hover {
32
+ filter: brightness(95%);
33
+ }
34
+ button:focus {
35
+ --border-color: transparent;
36
+ --outline: 0;
37
+ }
38
+ button:disabled {
39
+ filter: brightness(95%);
40
+ }
41
+
42
+ button.btn1 {
43
+ width: 100%;
44
+ height: 26px;
45
+ margin-left: unset;
46
+ border: 1px solid #eee;
47
+ border-right: none;
48
+ border-top-left-radius: 3px;
49
+ border-bottom-left-radius: 3px;
50
+ text-align: left;
51
+ background-color: white;
52
+ overflow: hidden;
53
+ text-overflow: ellipsis;
54
+ white-space: nowrap;
55
+ font: inherit;
56
+ }
57
+ button.btn2 {
58
+ padding: 3px;
59
+ width: 24px;
60
+ height: 26px;
61
+ margin-right: unset;
62
+ border: 1px solid #eee;
63
+ border-top-right-radius: 3px;
64
+ border-bottom-right-radius: 3px;
65
+ background-color: #f9f9f9;
66
+ }
67
+
68
+ button.btn2:after {
69
+ display: inline-flex;
70
+ content: "";
71
+ border-top: 0.3em solid;
72
+ border-right: 0.3em solid transparent;
73
+ border-bottom: 0;
74
+ border-left: 0.3em solid transparent;
75
+ }
@@ -0,0 +1,102 @@
1
+ :host {
2
+ z-index: 3;
3
+ position: absolute;
4
+ width: 250px;
5
+ height: 300px;
6
+ border: 1px solid #999;
7
+ background-color: white;
8
+ overflow: hidden;
9
+ resize: both;
10
+ box-shadow: 0 0 9px 0 #999;
11
+ display: flex;
12
+ flex-direction : column;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+
17
+ div.head {
18
+ display: none;
19
+ width: 100%;
20
+ }
21
+
22
+ div.head input[type=text] {
23
+ width: 100%;
24
+ --height: 100%;
25
+ outline: none;
26
+ }
27
+
28
+ :host(.expand) {
29
+ padding: 8px;
30
+ }
31
+ :host(.expand) div.head {
32
+ position: relative;
33
+ display: flex;
34
+ height: 32px;
35
+ }
36
+ :host(.expand) div:last-child {
37
+ margin-top: 3px;
38
+ background-color: unset;
39
+ }
40
+ div:last-child {
41
+ background-color: #f0f0f0;
42
+ margin-top: 0;
43
+ height: 28px;
44
+ }
45
+
46
+ nine-grid {
47
+ width: 100%;
48
+ height: 100%;
49
+ border: none;
50
+ }
51
+ :host(.expand) nine-grid {
52
+ margin-top: 4px;
53
+ border: 1px solid #ccc;
54
+ --border-top: 3px solid #ccc;
55
+ }
56
+
57
+ div:last-child {
58
+ position: relative;
59
+ display: none;
60
+ width: 100%;
61
+ height: 24px;
62
+ min-height: 24px;
63
+ bottom: 0;
64
+ }
65
+ div:last-child button {
66
+ width: 100%;
67
+ height: 100%;
68
+ cursor: pointer;
69
+ }
70
+
71
+ :host(.multi) div:last-child {
72
+ display: flex;
73
+ align-items: center;
74
+ }
75
+
76
+ div:last-child input[type=checkbox] {
77
+ position: relative;
78
+ width: 22px;
79
+ }
80
+ div:last-child label {
81
+ margin-left: 3px;
82
+ white-space: nowrap;
83
+ }
84
+ div:last-child label:hover {
85
+ color: cornflowerblue;
86
+ text-decoration: underline;
87
+ height: 18px;
88
+ }
89
+ div:last-child button {
90
+ margin-left: 12px;
91
+ height: 24px;
92
+ outline: none;
93
+ border: 1px solid #ccc;
94
+ border-radius: 3px;
95
+ background-color: #f0f0f0;
96
+ }
97
+ div:last-child button:hover {
98
+ filter: brightness(95%);
99
+ }
100
+ div:last-child button:active {
101
+ filter: brightness(90%);
102
+ }
@@ -0,0 +1,71 @@
1
+ :host {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ height: 26px;
6
+ }
7
+ :host(.ng-left) {
8
+ margin-right: 2px;
9
+ }
10
+ :host(.ng-right) {
11
+ margin-left: 2px;
12
+ }
13
+ :host(.ng-first) {
14
+ margin-left: -2px;
15
+ }
16
+ :host(.ng-last) {
17
+ margin-right: -2px;
18
+ }
19
+
20
+ :host(.border-left-none) {
21
+ margin-left: 0;
22
+ }
23
+ :host(.border-right-none) {
24
+ margin-right: 0;
25
+ }
26
+
27
+ :host(.border-left-none) button {
28
+ border-left: 0;
29
+ border-top-left-radius: 0;
30
+ border-bottom-left-radius: 0;
31
+ }
32
+ :host(.border-right-none) button {
33
+ border-right: 0;
34
+ border-top-right-radius: 0;
35
+ border-bottom-right-radius: 0;
36
+ }
37
+
38
+ button {
39
+ padding: 0;
40
+ --line-height: calc(100% - 2px);
41
+ height: 100%;
42
+ --max-height: 26px;
43
+ padding-left: 4px;
44
+ padding-right: 4px;
45
+ margin-right: unset;
46
+ border: 1px solid #eee;
47
+ border-radius: 3px;
48
+ background-color: #f0f0f0;
49
+ background-repeat: no-repeat;
50
+ background-position: center center;
51
+ background-size: auto;
52
+ outline: none;
53
+ cursor: pointer;
54
+ color: #333;
55
+ --position: sticky;
56
+ right: unset;
57
+ }
58
+ button:hover:not(:disabled) {
59
+ border-color: #999;
60
+ }
61
+ button:focus:not(:disabled) {
62
+ border-color: #999;
63
+ }
64
+ button:active:not(:disabled) {
65
+ border-color: #333;
66
+ filter: brightness(80%);
67
+ }
68
+ button:disabled {
69
+ opacity: 0.5;
70
+ cursor: unset;
71
+ }
@@ -0,0 +1,34 @@
1
+ :host {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ width: 15px;
6
+ }
7
+ :host(.ng-left) {
8
+ margin-right: 2px;
9
+ }
10
+ :host(.ng-right) {
11
+ margin-left: 2px;
12
+ }
13
+ input {
14
+ flex-shrink: 0;
15
+ width: 14px;
16
+ height: 14px;
17
+ -webkit-appearance: none;
18
+ -moz-appearance: none;
19
+ appearance: none;
20
+ background-repeat: no-repeat;
21
+ background-position: center;
22
+ background-size: contain;
23
+ border: 1px solid dimgray;
24
+ outline: 0;
25
+ margin-top: 0;
26
+ margin-bottom: 0;
27
+ background-image: unset;
28
+ }
29
+ input:checked {
30
+ background-image: url('data:image/svg+xml;utf8,<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><polyline points="2.5,7 6,10 11,3" style="fill:none;stroke:dimgray;stroke-width:2" /></svg>');
31
+ }
32
+ input:disabled {
33
+ opacity: 0.3;
34
+ }
@@ -0,0 +1,36 @@
1
+ :host {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ }
6
+ :host(.ng-left) {
7
+ margin-right: 2px;
8
+ }
9
+ :host(.ng-right) {
10
+ margin-left: 2px;
11
+ }
12
+
13
+ svg {
14
+ display: flex;
15
+ justify-content: center;
16
+ align-items: center;
17
+ }
18
+
19
+ div.ng-expand-icon-sphere {
20
+ border-radius: 50%;
21
+ }
22
+
23
+ svg.ng-expand-icon-circle {
24
+ }
25
+
26
+ svg.ng-expand-icon-rect {
27
+ }
28
+
29
+ svg.ng-expand-icon-check {
30
+ }
31
+
32
+ div.ng-expand-icon-svg {
33
+ }
34
+
35
+ img.ng-expand-icon-img {
36
+ }
@@ -0,0 +1,94 @@
1
+ @keyframes loading{to{transform:rotate(360deg)}}
2
+ :host(.loading) {
3
+ filter: brightness(90%);
4
+ --filter: brightness(90%);
5
+ }
6
+ :host(.loading)::after {
7
+ width: 2rem;
8
+ height: 2rem;
9
+ content:'';
10
+ position: absolute;
11
+ top: calc(50% - 16px);
12
+ left: calc(50% - 16px);
13
+ display: inline-block;
14
+ border-radius: 50%;
15
+ border: 0.25em solid green;
16
+ border-right-color:transparent;
17
+ animation: 0.75s linear infinite loading;
18
+ }
19
+
20
+ :host {
21
+ z-index: 3;
22
+ position: absolute;
23
+ width: 250px;
24
+ height: 300px;
25
+ border: 1px solid #999;
26
+ background-color: white;
27
+ overflow: hidden;
28
+ resize: both;
29
+ box-shadow: 0 0 9px 0 #999;
30
+ display: flex;
31
+ flex-direction: column;
32
+ padding: 8px;
33
+ }
34
+
35
+ nine-grid {
36
+ margin-top: 4px;
37
+ }
38
+
39
+ div.head {
40
+ position: relative;
41
+ display: flex;
42
+ width: 100%;
43
+ height: 32px;
44
+ }
45
+ div:last-child {
46
+ position: relative;
47
+ width: 100%;
48
+ height: 26px;
49
+ display: flex;
50
+ align-items: end;
51
+ margin-top: 8px;
52
+ }
53
+
54
+ input[type=text] {
55
+ --width: -webkit-fill-available;
56
+ --height: -webkit-fill-available;
57
+ width: 100%;
58
+ --height: 100%;
59
+ outline: none;
60
+ background-color: white;
61
+ color: #333;
62
+ border: 1px solid #666;
63
+ }
64
+
65
+ input[type=checkbox] {
66
+ --margin-right: 4px;
67
+ }
68
+
69
+ label {
70
+ display: flex;
71
+ align-items: center;
72
+ }
73
+ label:hover {
74
+ color: cornflowerblue;
75
+ text-decoration: underline;
76
+ }
77
+ label > input {
78
+ --position: relative;
79
+ --margin-right: 4px;
80
+ }
81
+ button {
82
+ position: absolute;
83
+ width: 60px;
84
+ height: 24px;
85
+ border: 1px solid #999;
86
+ }
87
+
88
+ #btnOk {
89
+ right: 66px;
90
+ }
91
+
92
+ #btnCancel {
93
+ right: 0px;
94
+ }
@@ -0,0 +1,7 @@
1
+ ng-flex-box {
2
+ position: relative;
3
+ display: flex;
4
+ width: 100%;
5
+ height: 100%;
6
+ border: 1px solid red;
7
+ }