jobdone-shared-files 1.0.16 → 1.0.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/README.md CHANGED
@@ -93,7 +93,14 @@ import OOXX from '../../node_modules/jobdone-shared-files/OOXX.vue';
93
93
  ### 範例
94
94
  ```
95
95
  <template>
96
- <tree :items="items" :click-item="clickItem" size="sm"></tree>
96
+ <tree :items="items" :click-item="clickItem" size="sm">
97
+ <template v-slot:icon-start>
98
+ // 前方箭頭後的 slot 插槽
99
+ </template>
100
+ <template v-slot:icon>
101
+ // 後方的 slot 插槽,預設為 radio icon
102
+ </template>
103
+ </tree>
97
104
  </template>
98
105
 
99
106
  <script setup>
@@ -394,7 +401,6 @@ import OOXX from '../../node_modules/jobdone-shared-files/OOXX.vue';
394
401
  | LayoutProject | Project 使用的共用樣式,含開合雙欄樣式 | 是 |
395
402
  | LayoutSinglePage | 單頁版面的樣式,如:登入、錯誤頁、條款等 | 是 |
396
403
  | LayoutTwoColumn | 雙欄可開合樣式 | 是 |
397
- | LayoutMobile | 針對 (底層) 手機的共用樣式 | 是 |
398
404
  | LayoutDocs | 針對條文調整的樣式 | 否 |
399
405
  | LayoutInnerColumn | 針對 Project 雙欄樣式內的雙欄樣式 | 否 |
400
406
  | LayoutOutside | 針對 (底層) Project 外的共用樣式 | 否 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jobdone-shared-files",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "Shared JS and SCSS for Jobdone Enterprise.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -3,7 +3,6 @@
3
3
  @import "../../../../bootstrap/scss/mixins";
4
4
  @import "../Settings/custom-variables";
5
5
  @import "../Settings/Mixins";
6
-
7
6
  th.bg-secondary{
8
7
  position: relative;
9
8
  &:after{
@@ -21,9 +20,12 @@ th.bg-secondary{
21
20
  background-color: $white;
22
21
  }
23
22
 
24
- tr:has(input[type="checkbox"]:checked) > td:not([scope="col"]){
23
+ tr:has(.tr-check:checked) > td:not([scope="col"]){
24
+ --active-bg: #f0f1fe;
25
+
25
26
  --bs-table-accent-bg: transparent;
26
- --bs-table-bg: rgba(var(--bs-primary-rgb), .1);
27
+ --bs-table-bg: transparent;
28
+ --bs-table-bg-type: var(--active-bg);
27
29
  color: var(--bs-table-hover-color);
28
30
  }
29
31
 
package/tree.vue CHANGED
@@ -1,6 +1,9 @@
1
1
  <template>
2
2
  <form ref="form">
3
3
  <tree-item v-for="(item, index) in items" :key="item.id" :item="item" :index="index" :click-item="clickItem" :active-id="activeId" :tree-item-class="treeItemClass">
4
+ <template v-slot:icon-start>
5
+ <slot name="icon-start"></slot>
6
+ </template>
4
7
  <template v-slot:icon>
5
8
  <slot name="icon"></slot>
6
9
  </template>
package/treeItem.vue CHANGED
@@ -3,6 +3,7 @@
3
3
  <div class="card flex-row d-flex input-group flex-nowrap">
4
4
  <button type="button" class="btn text-primary border-end px-1" :disabled="!item.children" data-bs-toggle="collapse" :data-bs-target="'#collapse-'+item.id">
5
5
  <span class="material-icons">arrow_drop_down</span>
6
+ <slot name="icon-start"></slot>
6
7
  </button>
7
8
  <div class="btn-title d-flex text-start rounded-0 flex-grow-1"
8
9
  :for="item.id" @click="clickItem(item)">
@@ -23,6 +24,9 @@
23
24
  :click-item="clickItem"
24
25
  :active-id="activeId"
25
26
  :tree-item-class="treeItemClass">
27
+ <template v-slot:icon-start>
28
+ <slot name="icon-start"></slot>
29
+ </template>
26
30
  <template v-slot:icon>
27
31
  <slot name="icon">
28
32
  <div class="btn d-flex align-items-center border-start rounded-0 text-primary h-100 ms-auto">
@@ -1,207 +0,0 @@
1
- @import "../../../../bootstrap/scss/functions";
2
- @import "../Settings/bs-variables";
3
- @import "../../../../bootstrap/scss/mixins";
4
- @import "../Settings/custom-variables";
5
- @import "../Settings/Mixins";
6
- @import "../Common/Animation.scss";
7
- @import "../Settings/MobileVariables";
8
-
9
- @media only screen and (max-width: 768px) {
10
- // default layout ---------------------------------------------
11
-
12
- html, body, #app{
13
- min-height: 100%;
14
- }
15
-
16
- html{
17
- position: relative;
18
- &:before{
19
- content: "";
20
- position: fixed;
21
- top: 0;
22
- left: 0;
23
- right: 0;
24
- bottom: 0;
25
- z-index: -1;
26
- background: $gradient-bg;
27
- background-repeat: no-repeat;
28
- pointer-events: none;
29
- }
30
- }
31
-
32
- body{
33
- background: transparent;
34
- scroll-behavior: smooth;
35
- }
36
-
37
- #app{
38
- width: 100%;
39
- max-width: 767px;
40
- transition: 1s;
41
- }
42
-
43
- // background ---------------------------------------------
44
-
45
- .bg-gradient-main, .bg-gradient-main-translucent{
46
- color: rgba( $white, .7 );
47
- .text-emphasis{
48
- color: $white;
49
- }
50
- }
51
-
52
- .bg-gradient-main{
53
- background: $gradient-main;
54
- }
55
-
56
- .bg-gradient-main-translucent{
57
- background: $gradient-main-translucent;
58
- backdrop-filter: $backdrop-blur-base;
59
- }
60
-
61
- .bg-dark-translucent{
62
- background-color: rgba( 0, 22, 44, .8 );
63
- backdrop-filter: $backdrop-blur-base;
64
- }
65
-
66
- .bg-light-translucent{
67
- background-color: rgba( $white, .5 );
68
- backdrop-filter: $backdrop-blur-base;
69
- }
70
-
71
- .bg-extend{
72
- position: relative;
73
- &:before{
74
- content: "";
75
- position: absolute;
76
- top: 0;
77
- left: 0;
78
- right: 0;
79
- z-index: -1;
80
- height: 3rem;
81
- }
82
- }
83
-
84
- .bg-extend-gradient-main-translucent{
85
- &:before{
86
- background: $gradient-main-translucent;
87
- }
88
- }
89
-
90
- // navbar ---------------------------------------------
91
-
92
- .navbar-main{
93
- color: $gray-500;
94
- }
95
-
96
- // width ---------------------------------------------
97
-
98
- .w-85{
99
- width: 85% !important;
100
- }
101
-
102
- .w-min-3rem{
103
- min-width: 3rem;
104
- }
105
-
106
- // font size ---------------------------------------------
107
-
108
- .fs-min{
109
- font-size: 12px;
110
- }
111
-
112
- // button ---------------------------------------------
113
-
114
- .btn-glow{
115
- background-image: $gradient-glow;
116
- }
117
-
118
- .btn-glow-2end{
119
- --bs-btn-color: #fff;
120
- --bs-btn-hover-color: #fff;
121
- --bs-btn-border-color: rgba(255, 255, 255, 0.5);
122
- --bs-btn-hover-border-color: rgba(255, 255, 255, 0.3);
123
- background: $gradient-glow-2end;
124
- }
125
-
126
- // input ---------------------------------------------
127
-
128
-
129
- // input-group-icon
130
- .input-group-icon{
131
- $padding-left: 2rem;
132
-
133
- position: relative;
134
- .material-icons, .input-group-placeholder{
135
- position: absolute;
136
- top: 50%;
137
- transform: translateY(-50%);
138
- z-index: 6;
139
- }
140
- .material-icons{
141
- left: 0.6rem;
142
- }
143
- .input-group-placeholder{
144
- left: $padding-left;
145
- }
146
- .form-control{
147
- &:-webkit-date-and-time-value{
148
- text-align: left;
149
- }
150
- &:nth-child(1){
151
- padding-left: $padding-left;
152
- }
153
- }
154
- }
155
-
156
-
157
- // animation ---------------------------------------------
158
-
159
- .fadeIn{
160
- animation-name: fadeIn;
161
- animation-duration: 1s;
162
- }
163
-
164
- // image ---------------------------------------------
165
-
166
- .thumbnail-circle{
167
- border: 3px solid rgba($white, .3);
168
- border-radius: 50%;
169
- &-sm{
170
- border-width: 2px;
171
- }
172
- }
173
-
174
-
175
- // scroll ---------------------------------------------
176
-
177
- .overflow-y-auto{
178
- overscroll-behavior: contain;
179
- }
180
-
181
- .body-opened-modal{
182
- // position: fixed;
183
- overflow: hidden;
184
- .bg-gradient-main-translucent, .bg-dark-translucent, .bg-light-translucent{
185
- backdrop-filter: unset;
186
- }
187
- }
188
-
189
- .backdrop-filter-none{
190
- backdrop-filter: unset;
191
- }
192
-
193
- // list-group-item ---------------------------------------------
194
-
195
- .list-group-item{
196
- outline: none !important;
197
- }
198
-
199
-
200
- // reset ---------------------------------------------
201
-
202
- @media only screen and (max-width: 992px) {
203
- body{
204
- overflow: visible;
205
- }
206
- }
207
- }