@g1cloud/bluesea 5.0.0-alpha.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 (69) hide show
  1. package/LICENSE +6 -0
  2. package/css/bluesea-base.scss +6 -0
  3. package/css/component.scss +164 -0
  4. package/css/font.scss +3 -0
  5. package/css/frame/default.scss +149 -0
  6. package/css/layout.scss +116 -0
  7. package/css/reset.scss +58 -0
  8. package/css/utility.scss +228 -0
  9. package/css/variable.scss +34 -0
  10. package/dist/bluesea.js +2465 -0
  11. package/dist/bluesea.umd.cjs +2466 -0
  12. package/dist/component/BSButton.vue.d.ts +15 -0
  13. package/dist/component/basic/BSPopup.vue.d.ts +9 -0
  14. package/dist/component/grid/BSDateRangeFilter.vue.d.ts +56 -0
  15. package/dist/component/grid/BSDateRangeFilters.vue.d.ts +23 -0
  16. package/dist/component/grid/BSGrid.vue.d.ts +80 -0
  17. package/dist/component/grid/BSGridCell.vue.d.ts +47 -0
  18. package/dist/component/grid/BSGridCheckboxCell.vue.d.ts +19 -0
  19. package/dist/component/grid/BSGridCheckboxHeaderCell.vue.d.ts +19 -0
  20. package/dist/component/grid/BSGridControl.vue.d.ts +53 -0
  21. package/dist/component/grid/BSGridHeaderCell.vue.d.ts +20 -0
  22. package/dist/component/grid/BSGridLookup.vue.d.ts +21 -0
  23. package/dist/component/grid/BSGridPageNavigation.vue.d.ts +51 -0
  24. package/dist/component/grid/BSTextFilter.vue.d.ts +41 -0
  25. package/dist/component/grid/DateFilterModel.d.ts +4 -0
  26. package/dist/component/grid/GridLib.d.ts +3 -0
  27. package/dist/component/grid/GridModel.d.ts +35 -0
  28. package/dist/component/input/BSCheckbox.vue.d.ts +50 -0
  29. package/dist/component/input/BSCheckboxGroup.vue.d.ts +43 -0
  30. package/dist/component/input/BSDateInput.vue.d.ts +56 -0
  31. package/dist/component/input/BSMultiSelect.vue.d.ts +43 -0
  32. package/dist/component/input/BSNumberInput.vue.d.ts +49 -0
  33. package/dist/component/input/BSRadioButton.vue.d.ts +61 -0
  34. package/dist/component/input/BSRadioButtonGroup.vue.d.ts +43 -0
  35. package/dist/component/input/BSSelect.vue.d.ts +43 -0
  36. package/dist/component/input/BSSelectModel.d.ts +0 -0
  37. package/dist/component/input/BSSelectPopup.vue.d.ts +55 -0
  38. package/dist/component/input/BSTextArea.vue.d.ts +49 -0
  39. package/dist/component/input/BSTextInput.vue.d.ts +49 -0
  40. package/dist/component/input/BSTreeSelect.vue.d.ts +43 -0
  41. package/dist/component/input/InternalDateInput.vue.d.ts +36 -0
  42. package/dist/component/layout/BSTabSheet.vue.d.ts +37 -0
  43. package/dist/component/layout/TabSheetModel.d.ts +5 -0
  44. package/dist/component/tree/BSTree.vue.d.ts +63 -0
  45. package/dist/component/tree/BSTreeRow.vue.d.ts +54 -0
  46. package/dist/component/tree/TreeLib.d.ts +5 -0
  47. package/dist/component/tree/TreeModel.d.ts +2 -0
  48. package/dist/directive/vClickOutside.d.ts +11 -0
  49. package/dist/frame/FrameModel.d.ts +23 -0
  50. package/dist/frame/default/DefaultBody.vue.d.ts +2 -0
  51. package/dist/frame/default/DefaultFrameModel.d.ts +35 -0
  52. package/dist/frame/default/DefaultHeader.vue.d.ts +2 -0
  53. package/dist/frame/default/HeaderLogo.vue.d.ts +2 -0
  54. package/dist/frame/default/HeaderTab.vue.d.ts +16 -0
  55. package/dist/frame/default/HeaderTabs.vue.d.ts +2 -0
  56. package/dist/frame/default/SidebarMenu.vue.d.ts +2 -0
  57. package/dist/frame/default/SidebarMenuItem.vue.d.ts +16 -0
  58. package/dist/frame/default/SidebarMenuLink.vue.d.ts +20 -0
  59. package/dist/index.d.ts +35 -0
  60. package/dist/model/CommonTypes.d.ts +8 -0
  61. package/dist/model/FilterModel.d.ts +69 -0
  62. package/dist/model/SearchModel.d.ts +16 -0
  63. package/dist/style.css +3665 -0
  64. package/dist/util/componentUtil.d.ts +7 -0
  65. package/dist/util/formatUtil.d.ts +61 -0
  66. package/dist/util/routeUtil.d.ts +2 -0
  67. package/dist/util/typeUtil.d.ts +18 -0
  68. package/dist/util/waitUtil.d.ts +19 -0
  69. package/package.json +48 -0
package/LICENSE ADDED
@@ -0,0 +1,6 @@
1
+ (c) Copyright 2023 UZEN, all rights reserved.
2
+
3
+ This software is the confidential and proprietary information of
4
+ UZEN Co.,Ltd., Inc. You shall not disclose such Confidential
5
+ Information and shall use it only in accordance with the terms of the
6
+ license agreement you entered into with UZEN.
@@ -0,0 +1,6 @@
1
+ @import "./reset";
2
+ @import "./font";
3
+ @import "./utility";
4
+ @import "./layout";
5
+ @import "./frame/default";
6
+ @import "../dist/style";
@@ -0,0 +1,164 @@
1
+ @import "./variable";
2
+
3
+ // box-shape component (BSTextInput, BSSelect...)
4
+ .bs-box-component-wrap {
5
+ display: inline-flex;
6
+ flex-direction: column;
7
+ align-items: flex-start;
8
+ justify-content: left;
9
+
10
+ .message {
11
+ margin-top: 4px;
12
+ font-size: 0.9em;
13
+ }
14
+ }
15
+
16
+ .bs-box-component-base {
17
+ border: 1px solid $color-border-light;
18
+ border-radius: 4px;
19
+ height: 28px;
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: left;
23
+ }
24
+
25
+ // input component
26
+ .bs-input-wrap {
27
+ @extend .bs-box-component-wrap
28
+ }
29
+
30
+ .bs-input-base {
31
+ @extend .bs-box-component-base;
32
+
33
+ input {
34
+ border: 0;
35
+ outline: 0;
36
+ align-self: stretch;
37
+ flex-grow: 1;
38
+ padding: 0 8px;
39
+ background-color: transparent;
40
+ }
41
+
42
+ textarea {
43
+ border: 0;
44
+ border-radius: 4px;
45
+ outline: 0;
46
+ align-self: stretch;
47
+ flex-grow: 1;
48
+ padding: 8px;
49
+ line-height: 1.4;
50
+ font-family: sans-serif;
51
+ }
52
+
53
+ &:has(:focus) {
54
+ border-color: $color-focus;
55
+ }
56
+ }
57
+
58
+ // checkbox, radio-button component
59
+ .bs-checkbox-base {
60
+ display: inline-block;
61
+ color: $color-text;
62
+
63
+ input {
64
+ appearance: none;
65
+ margin: 0;
66
+ outline: 0;
67
+
68
+ &::before {
69
+ font-family: $icon-font-family;
70
+ font-size: 20px;
71
+ vertical-align: middle;
72
+ cursor: pointer;
73
+ color: $color-text;
74
+ }
75
+
76
+ &:focus::before {
77
+ color: $color-focus;
78
+ }
79
+ }
80
+
81
+ label {
82
+ display: inline-block;
83
+ vertical-align: middle;
84
+ padding: 4px 2px;
85
+ cursor: pointer;
86
+ }
87
+ }
88
+
89
+ // select, multi-select, tree-select
90
+ .bs-select-wrap {
91
+ @extend .bs-box-component-wrap;
92
+ position: relative;
93
+ outline: 0;
94
+
95
+ &:focus > .selected {
96
+ border-color: $color-focus;
97
+ }
98
+
99
+ .selected {
100
+ @extend .bs-box-component-base;
101
+ padding: 0 8px;
102
+ min-width: 50px;
103
+ cursor: pointer;
104
+ display: flex;
105
+
106
+ .label {
107
+ flex-grow: 1;
108
+ white-space: nowrap;
109
+ }
110
+
111
+ .dropdown-btn {
112
+ font-family: $icon-font-family;
113
+ margin-right: -4px;
114
+ margin-left: 4px;
115
+ user-select: none;
116
+ transition: transform 0.2s linear;
117
+ }
118
+ }
119
+
120
+ &.popup-open .dropdown-btn {
121
+ transform: rotate(180deg);
122
+ }
123
+ }
124
+
125
+ // button style
126
+ .bs-clickable {
127
+ user-select: none;
128
+ cursor: pointer;
129
+
130
+ &:hover {
131
+ filter: opacity(75%);
132
+ }
133
+
134
+ &:active {
135
+ filter: opacity(50%);
136
+ }
137
+
138
+ &.disabled {
139
+ filter: opacity(40%)
140
+ }
141
+ }
142
+
143
+ // utility
144
+ .component-shadow-base {
145
+ box-shadow: 2px 2px 8px #eee;
146
+ }
147
+
148
+ .font-icon {
149
+ font-family: $icon-font-family;
150
+ font-size: 1rem;
151
+ }
152
+
153
+ // transition
154
+
155
+ .fade-enter-active,
156
+ .fade-leave-active {
157
+ transition: opacity .3s;
158
+ }
159
+
160
+ .fade-enter,
161
+ .fade-leave-to {
162
+ opacity: 0;
163
+ }
164
+
package/css/font.scss ADDED
@@ -0,0 +1,3 @@
1
+ body, input, textarea {
2
+ font-family: 'Noto Sans', 'Noto Sans KR', 'Noto Sans JP', 'Arial', sans-serif;
3
+ }
@@ -0,0 +1,149 @@
1
+ @import "../variable";
2
+ @import "../component";
3
+
4
+ $color-header-bg: #464854 !default;
5
+ $color-header-text: #FFFFFF !default;
6
+ $color-menu-bg: #464854 !default;
7
+ $color-menu-border: #2D2E36;
8
+
9
+ $header-height: 44px !default;
10
+
11
+ header.default-header {
12
+ height: $header-height;
13
+ background-color: $color-header-bg;
14
+ display: flex;
15
+ align-items: center;
16
+ position: fixed;
17
+ width: 100%;
18
+ top: 0;
19
+ z-index: 100;
20
+
21
+ .header-logo {
22
+ @extend .bs-clickable;
23
+ color: $color-header-text;
24
+ font-size: 20px;
25
+ font-weight: bold;
26
+ margin-bottom: -2px;
27
+ }
28
+
29
+ .sidebar-menu {
30
+ align-self: stretch;
31
+
32
+ .menu-btn {
33
+ @extend .bs-clickable;
34
+ font-size: 28px;
35
+ height: $header-height;
36
+ line-height: $header-height;
37
+ color: $color-header-text;
38
+ padding: 0 8px;
39
+ }
40
+
41
+ .menu-container {
42
+ position: absolute;
43
+ background-color: $color-menu-bg;
44
+ height: calc(100vh - $header-height);
45
+ min-width: 200px;
46
+ }
47
+
48
+ .sidebar-menu-item {
49
+ border-top: 1px solid $color-menu-border;
50
+ color: $color-header-text;
51
+
52
+ a.sidebar-menu-link, div.sidebar-menu-link {
53
+ @extend .bs-clickable;
54
+ display: block;
55
+ padding: 12px 16px;
56
+ color: $color-header-text;
57
+ text-decoration: none;
58
+ }
59
+
60
+ .sidebar-submenu {
61
+ padding: 8px 24px 8px 8px;
62
+ background-color: $color-menu-border;
63
+
64
+ a.sidebar-menu-link, div.sidebar-menu-link {
65
+ padding: 8px 16px;
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ .header-tabs {
72
+ margin: 0 12px;
73
+ display: flex;
74
+ align-items: end;
75
+ gap: 1px;
76
+ flex-grow: 1;
77
+ align-self: end;
78
+
79
+ .header-tab {
80
+ background-color: #747787;
81
+ padding: 0 12px;
82
+ height: 32px;
83
+ border-top-left-radius: 4px;
84
+ border-top-right-radius: 4px;
85
+ display: flex;
86
+ align-items: center;
87
+ flex-grow: 1;
88
+ position: relative;
89
+ max-width: 160px;
90
+ min-width: 100px;
91
+ color: $color-header-text;
92
+
93
+ .header-title {
94
+ padding-right: 6px;
95
+ flex-grow: 1;
96
+ width: 50px;
97
+ flex-basis: 80px;
98
+ overflow: hidden;
99
+ text-overflow: ellipsis;
100
+ white-space: nowrap;
101
+ cursor: default;
102
+ }
103
+
104
+ .close-btn {
105
+ @extend .bs-clickable;
106
+ right: 4px;
107
+ padding: 4px;
108
+ border-radius: 4px;
109
+ display: none;
110
+ margin-right: -8px;
111
+ }
112
+
113
+ &:hover {
114
+ .close-btn {
115
+ display: block;
116
+ }
117
+ }
118
+
119
+ &.selected {
120
+ color: $color-text;
121
+ background-color: white; //#E5E5E5;
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ .default-body {
128
+ margin-top: $header-height;
129
+ min-height: calc(100vh - $header-height);
130
+
131
+ .body-tab:has(>div.h-full) {
132
+ height: calc(100vh - $header-height);
133
+ }
134
+ }
135
+
136
+ .menu-slide-enter-active,
137
+ .menu-slide-leave-active {
138
+ transition: all 0.2s ease-out;
139
+ }
140
+
141
+ .menu-slide-enter-from {
142
+ transform: translateX(-100%);
143
+ }
144
+
145
+ .menu-slide-leave-to {
146
+ transform: translateX(-100%);
147
+ opacity: 0;
148
+ }
149
+
@@ -0,0 +1,116 @@
1
+ @import "./variable";
2
+
3
+ /* Layout Utility */
4
+
5
+ .flex-row {
6
+ display: flex;
7
+ flex-direction: row;
8
+ }
9
+
10
+ .flex-column {
11
+ display: flex;
12
+ flex-direction: column;
13
+ }
14
+
15
+ .flex-wrap {
16
+ flex-wrap: wrap;
17
+ }
18
+
19
+ @for $index from 0 through 8 {
20
+ .flex-grow-#{$index} {
21
+ flex-grow: $index;
22
+ }
23
+ .flex-shrink-#{$index} {
24
+ flex-shrink: $index;
25
+ }
26
+ }
27
+
28
+ @for $index from 0 through 64 {
29
+ .gap-#{$index} {
30
+ gap: 1px * $index;
31
+ }
32
+ }
33
+
34
+ .flex-align-start {
35
+ align-items: flex-start;
36
+ }
37
+
38
+ .flex-align-center {
39
+ align-items: center;
40
+ }
41
+
42
+ .flex-align-end {
43
+ align-items: flex-end;
44
+ }
45
+
46
+ .flex-content-start {
47
+ justify-content: flex-start;
48
+ }
49
+
50
+ .flex-content-center {
51
+ justify-content: center;
52
+ }
53
+
54
+ .flex-content-end {
55
+ justify-content: flex-end;
56
+ }
57
+
58
+ /* Bluesea Layout */
59
+
60
+ .bs-layout-horizontal {
61
+ @extend .flex-row;
62
+
63
+ > * {
64
+
65
+ }
66
+ }
67
+
68
+ .bs-layout-horizontal-wrap {
69
+ @extend .bs-layout-horizontal;
70
+ @extend .flex-wrap;
71
+ }
72
+
73
+ .bs-layout-vertical {
74
+ @extend .flex-column;
75
+
76
+ > * {
77
+
78
+ }
79
+ }
80
+
81
+ .bs-layout-vertical-wrap {
82
+ @extend .bs-layout-vertical;
83
+ @extend .flex-wrap;
84
+ }
85
+
86
+ .bs-layout-form {
87
+
88
+ > div {
89
+ display: flex;
90
+ align-items: center;
91
+ border-bottom: 0.8px solid $color-border-light;
92
+
93
+ > .title {
94
+ padding: 8px 8px 8px 0;
95
+ width: 10em;
96
+ font-weight: 500;
97
+ line-height: 1.2em;
98
+ }
99
+
100
+ > :not(.title) {
101
+ padding: 8px;
102
+ width: 10em;
103
+ flex-grow: 1;
104
+ }
105
+ }
106
+ }
107
+
108
+ .bs-layout-card {
109
+
110
+ > .card-title {
111
+ padding: 16px 0;
112
+ border-bottom: 0.8px solid $color-darkblue;
113
+ font-size: 1.2em;
114
+ font-weight: 500;
115
+ }
116
+ }
package/css/reset.scss ADDED
@@ -0,0 +1,58 @@
1
+ /* http://meyerweb.com/eric/tools/css/reset/
2
+ v2.0 | 20110126
3
+ License: none (public domain)
4
+ */
5
+
6
+ html, body, div, span, applet, object, iframe,
7
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
+ a, abbr, acronym, address, big, cite, code,
9
+ del, dfn, em, img, ins, kbd, q, s, samp,
10
+ small, strike, strong, sub, sup, tt, var,
11
+ b, u, i, center,
12
+ dl, dt, dd, ol, ul, li,
13
+ fieldset, form, label, legend,
14
+ table, caption, tbody, tfoot, thead, tr, th, td,
15
+ article, aside, canvas, details, embed,
16
+ figure, figcaption, footer, header, hgroup,
17
+ menu, nav, output, ruby, section, summary,
18
+ time, mark, audio, video {
19
+ margin: 0;
20
+ padding: 0;
21
+ border: 0;
22
+ font-size: 100%;
23
+ font: inherit;
24
+ vertical-align: baseline;
25
+ }
26
+
27
+ /* HTML5 display-role reset for older browsers */
28
+ article, aside, details, figcaption, figure,
29
+ footer, header, hgroup, menu, nav, section {
30
+ display: block;
31
+ }
32
+
33
+ body {
34
+ line-height: 1;
35
+ }
36
+
37
+ ol, ul {
38
+ list-style: none;
39
+ }
40
+
41
+ blockquote, q {
42
+ quotes: none;
43
+ }
44
+
45
+ blockquote:before, blockquote:after,
46
+ q:before, q:after {
47
+ content: '';
48
+ content: none;
49
+ }
50
+
51
+ table {
52
+ border-collapse: collapse;
53
+ border-spacing: 0;
54
+ }
55
+
56
+ * {
57
+ box-sizing: border-box;
58
+ }