renusify 1.0.6 → 1.0.9

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 (55) hide show
  1. package/components/app/index.vue +23 -32
  2. package/components/app/style.scss +7 -18
  3. package/components/bar/bottomNavigationCircle.vue +75 -81
  4. package/components/bar/scss/bottomNav.scss +4 -13
  5. package/components/bar/scss/toolbar.scss +4 -9
  6. package/components/breadcrumb/style.scss +3 -9
  7. package/components/button/buttonConfirm.vue +44 -0
  8. package/components/button/style.scss +13 -38
  9. package/components/calendar/index.vue +5 -35
  10. package/components/card/style.scss +8 -17
  11. package/components/chat/chatInput.vue +4 -10
  12. package/components/chat/chatMsg.vue +222 -225
  13. package/components/chat/index.vue +104 -109
  14. package/components/chip/style.scss +27 -33
  15. package/components/container/style.scss +9 -11
  16. package/components/form/camInput.vue +1 -1
  17. package/components/form/checkbox.vue +115 -121
  18. package/components/form/colorPicker/picker.vue +9 -24
  19. package/components/form/datePicker/index.vue +9 -42
  20. package/components/form/fileUploader/index.vue +4 -1
  21. package/components/form/fileUploader/single.vue +197 -197
  22. package/components/form/inputTel/index.vue +3 -7
  23. package/components/form/radioInput.vue +3 -9
  24. package/components/form/scss/input.scss +4 -29
  25. package/components/form/scss/rating.scss +1 -6
  26. package/components/form/scss/switch.scss +1 -6
  27. package/components/form/text-editor/style.scss +4 -22
  28. package/components/form/timepicker/timepicker.vue +11 -16
  29. package/components/form/unit-input.vue +98 -101
  30. package/components/icon/style.scss +2 -6
  31. package/components/img/index.vue +192 -175
  32. package/components/index.js +3 -1
  33. package/components/infinite/index.vue +1 -1
  34. package/components/list/style.scss +2 -16
  35. package/components/map/route.vue +1 -1
  36. package/components/menu/index.vue +4 -15
  37. package/components/modal/style.scss +3 -12
  38. package/components/progress/circular.vue +1 -1
  39. package/components/progress/style.scss +5 -21
  40. package/components/skeleton/index.vue +77 -0
  41. package/components/swiper/index.vue +8 -4
  42. package/components/table/style.scss +19 -111
  43. package/components/tabs/index.vue +116 -130
  44. package/components/timeline/index.vue +13 -18
  45. package/components/tree/index.vue +11 -15
  46. package/directive/intersect/index.js +23 -20
  47. package/index.js +0 -1
  48. package/package.json +1 -1
  49. package/plugins/trans/Translate.js +1 -0
  50. package/style/app.scss +7 -71
  51. package/style/colors.scss +49 -73
  52. package/style/mixins/index.scss +0 -12
  53. package/style/variables/color.scss +8 -9
  54. package/tools/helper.js +15 -1
  55. package/components/skeletonLoader/index.vue +0 -42
@@ -482,23 +482,18 @@
482
482
  @import "../../../style/include";
483
483
 
484
484
  .#{$prefix}timepicker-clock {
485
- @include light() {
486
- --color-timepicker: var(--color-one-light);
487
- }
488
-
489
- @include dark() {
490
- --color-timepicker: var(--color-one-dark);
491
- }
492
485
 
493
- .text-time {
494
- display: flex;
495
- justify-content: center;
496
- align-content: center;
497
- margin-top: 40px;
498
- width: 260px;
499
- height: 60px;
500
- color: #818181;
501
- font-size: 30px;
486
+ --color-timepicker: var(--color-one);
487
+
488
+ .text-time {
489
+ display: flex;
490
+ justify-content: center;
491
+ align-content: center;
492
+ margin-top: 40px;
493
+ width: 260px;
494
+ height: 60px;
495
+ color: #818181;
496
+ font-size: 30px;
502
497
  }
503
498
 
504
499
  .text-time > .time-show {
@@ -1,121 +1,118 @@
1
1
  <template>
2
- <r-input :class="`${$r.prefix}unit-input`" :active="active"
3
- :model-value="lazyValue"
4
- @click.prevent="handleClick">
5
- <input :autofocus="autofocus"
6
- :type="type"
7
- @focusin="active=true"
8
- @focusout="active=false"
9
- @input="emit"
10
- autocomplete="no"
11
- ref="input"
12
- v-model="lazyValue"
13
- :readonly="disableInput"
14
- :class="{'input-shadow':disableInput}"
15
- class="me-1"
16
- />
17
- <div class="select-unit" :class="{'input-shadow':disableUnit}">
18
- <r-select :readonly="disableUnit" :items="units" v-model="unit"
19
- @update:model-value="emit" hide justValue :translate="translate"
20
- class="mt-0"
21
- firstSelect></r-select>
22
- </div>
23
- </r-input>
2
+ <r-input :class="`${$r.prefix}unit-input`" :active="active"
3
+ :model-value="lazyValue"
4
+ @click.prevent="handleClick">
5
+ <input :autofocus="autofocus"
6
+ :type="type"
7
+ @focusin="active=true"
8
+ @focusout="active=false"
9
+ @input="emit"
10
+ autocomplete="no"
11
+ ref="input"
12
+ v-model="lazyValue"
13
+ :readonly="disableInput"
14
+ :class="{'input-shadow':disableInput}"
15
+ class="me-1"
16
+ />
17
+ <div class="select-unit" :class="{'input-shadow':disableUnit}">
18
+ <r-select :readonly="disableUnit" :items="units" v-model="unit"
19
+ @update:model-value="emit" hide justValue :translate="translate"
20
+ class="mt-0"
21
+ firstSelect></r-select>
22
+ </div>
23
+ </r-input>
24
24
  </template>
25
25
  <script>
26
- export default {
27
- name: 'r-unit-input',
28
- props: {
29
- type: {
30
- type: String,
31
- default: 'text'
32
- },
33
- units: {
34
- type: Array,
35
- required: true
36
- },
37
- modelValue: {
38
- type: Object, default: () => {
39
- return {
40
- value: null,
41
- unit: null
42
- }
43
- }
44
- },
45
- disableInput: Boolean,
46
- disableUnit: Boolean,
47
- autofocus: Boolean,
48
- translate: Boolean
49
- },
50
-
51
- data() {
52
- return {
53
- lazyValue: this.modelValue.value,
54
- active: false,
55
- unit: this.modelValue.unit
56
- }
57
- },
58
- watch: {
59
- modelValue() {
60
- this.lazyValue = this.modelValue.value
61
- this.unit = this.modelValue.unit
62
- }
63
- },
64
- methods: {
65
- handleClick(e) {
66
- this.$refs.input.focus()
67
- },
68
- emit() {
69
- this.$emit('update:modelValue', {value: this.lazyValue, unit: this.unit})
70
- }
26
+ export default {
27
+ name: 'r-unit-input',
28
+ props: {
29
+ type: {
30
+ type: String,
31
+ default: 'text'
32
+ },
33
+ units: {
34
+ type: Array,
35
+ required: true
36
+ },
37
+ modelValue: {
38
+ type: Object, default: () => {
39
+ return {
40
+ value: null,
41
+ unit: null
71
42
  }
43
+ }
44
+ },
45
+ disableInput: Boolean,
46
+ disableUnit: Boolean,
47
+ autofocus: Boolean,
48
+ translate: Boolean
49
+ },
50
+
51
+ data() {
52
+ return {
53
+ lazyValue: this.modelValue.value,
54
+ active: false,
55
+ unit: this.modelValue.unit
56
+ }
57
+ },
58
+ watch: {
59
+ modelValue() {
60
+ this.lazyValue = this.modelValue.value
61
+ this.unit = this.modelValue.unit
62
+ }
63
+ },
64
+ methods: {
65
+ handleClick(e) {
66
+ this.$refs.input.focus()
67
+ },
68
+ emit() {
69
+ this.$emit('update:modelValue', {value: this.lazyValue, unit: this.unit})
72
70
  }
71
+ }
72
+ }
73
73
 
74
74
  </script>
75
75
  <style lang="scss">
76
- @import "../../style/include";
76
+ @import "../../style/include";
77
77
 
78
- .#{$prefix}unit-input {
79
- .input-shadow, .input-shadow * {
80
- color: var(--color-text-disabled-light) !important
81
- }
78
+ .#{$prefix}unit-input {
79
+ .input-shadow, .input-shadow * {
80
+ color: var(--color-text-disabled) !important
81
+ }
82
82
 
83
- input {
84
- width: calc(65% - 4px);
85
- }
83
+ input {
84
+ width: calc(65% - 4px);
85
+ }
86
86
 
87
- @include dark() {
88
- --c-unit: var(--color-border-dark)
89
- }
90
- @include light() {
91
- --c-unit: var(--color-border-light)
92
- }
93
87
 
94
- .select-unit {
95
- width: calc(35% + 16px);
96
- overflow-x: clip;
88
+ --c-unit: var(--color-border);
97
89
 
98
- * {
99
- font-size: map-metro-get($headings, 'overline', 'size') !important;
100
- }
101
90
 
102
- .input-control {
103
- border-radius: 0;
104
- @include rtl() {
105
- border-right: 1px solid var(--c-unit) !important;
106
- }
107
-
108
- @include ltr() {
109
- border-left: 1px solid var(--c-unit) !important;
110
- }
111
- }
91
+ .select-unit {
92
+ width: calc(35% + 16px);
93
+ overflow-x: clip;
112
94
 
95
+ * {
96
+ font-size: map-metro-get($headings, 'overline', 'size') !important;
97
+ }
113
98
 
114
- .card-select {
115
- border-top-right-radius: 0;
116
- border-top-left-radius: 0;
99
+ .input-control {
100
+ border-radius: 0;
101
+ @include rtl() {
102
+ border-right: 1px solid var(--c-unit) !important;
103
+ }
117
104
 
118
- }
105
+ @include ltr() {
106
+ border-left: 1px solid var(--c-unit) !important;
119
107
  }
120
108
  }
109
+
110
+
111
+ .card-select {
112
+ border-top-right-radius: 0;
113
+ border-top-left-radius: 0;
114
+
115
+ }
116
+ }
117
+ }
121
118
  </style>
@@ -7,12 +7,8 @@
7
7
  &.icon-disabled {
8
8
  pointer-events: none;
9
9
  opacity: .6;
10
- @include light() {
11
- color: var(--color-disabled-light) !important
12
- }
13
- @include dark() {
14
- color: var(--color-disabled-dark) !important
15
- }
10
+ color: var(--color-disabled) !important
11
+
16
12
  }
17
13
 
18
14
  @include rtl() {
@@ -1,10 +1,10 @@
1
1
  <template>
2
- <div :class="{
2
+ <div v-intersect[modifier]="check" :class="{
3
3
  [$r.prefix+'img']:true,
4
4
  'img-hoverZoom':hoverZoom,'img-hoverDark':hoverDark,'img-hoverTitle':hoverTitle}"
5
- ref="rImg">
6
- <div v-if="hoverTitle" class="title color-white-text img-title w-full"
7
- :class="{
5
+ ref="rImg">
6
+ <div v-if="hoverTitle" class="title color-white-text img-title w-full"
7
+ :class="{
8
8
  'title-hs':titleHs,
9
9
  'title-hc':titleHc,
10
10
  'title-he':titleHe,
@@ -12,193 +12,210 @@
12
12
  'title-vc':titleVc,
13
13
  'title-ve':titleVe
14
14
  }"
15
- >{{alt}}
16
- </div>
17
- <img v-if="load" ref="img" :src="link" :alt="alt" draggable="false" :width="size.width" :height="size.height"/>
15
+ >{{ alt }}
18
16
  </div>
17
+ <img v-if="load" ref="img" :src="link" :alt="alt" draggable="false" :width="size.width" :height="size.height"/>
18
+ </div>
19
19
  </template>
20
20
  <script>
21
- export default {
22
- name: 'r-img',
23
- props: {
24
- src: {
25
- type: String,
26
- required: true
27
- },
28
- alt: {
29
- type: String,
30
- required: true
31
- },
32
- width: {
33
- type: [String, Number]
34
- },
35
- height: {
36
- type: [String, Number]
37
- },
38
- query: String,
39
- autoSize: Boolean,
40
- hoverZoom: Boolean,
41
- hoverDark: Boolean,
42
- hoverTitle: Boolean,
43
- titleHs: Boolean,
44
- titleHc: Boolean,
45
- titleHe: Boolean,
46
- titleVs: Boolean,
47
- titleVc: Boolean,
48
- titleVe: Boolean,
49
- wPH: {
50
- type: Number,
51
- default: 1
52
- },
53
- },
54
- data() {
55
- return {
56
- load: false,
57
- time_id: null,
58
- size:{width:0,height:0}
59
- }
60
- },
61
- created() {
62
- this.activate()
63
- },
64
- computed: {
65
- link() {
66
- let res = this.src
67
- if (!(res.startsWith('/') || res.startsWith('http://') || res.startsWith('https://'))) {
68
- res = '/' + res
69
- }
70
- if (this.src.search('[?]') === -1) {
71
- res += '?'
72
- }
73
- if (this.query) {
74
- res += this.query
75
- }
76
- if ((this.autoSize && this.size.width > 0) || this.width) {
77
- res += `&w=${this.size.width}&h=${this.size.height}`
78
- }
79
- return res
80
- }
81
- },
82
- methods: {
83
- getSize() {
84
- let res = {width: 0, height: 0}
85
- if (this.width) {
86
- res["width"] = this.width
87
- }
88
- if (this.height) {
89
- res["height"] = this.height
90
- }
91
- if (res['width'] !== 0 && res['height'] === 0) {
92
- res['height'] = res['width'] / this.wPH
93
- }
94
- if (res['width'] === 0 && res['height'] !== 0) {
95
- res['width'] = res['height'] * this.wPH
96
- }
97
- if (res['width'] !== 0) {
98
- return this.size=res
99
- }
100
-
101
- if (this.$refs.rImg && this.$refs.rImg.parentElement && this.$refs.rImg.parentElement.clientWidth > 0) {
102
- let cs=window.getComputedStyle(this.$refs.rImg.parentElement)
103
- let paddingX = parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight);
104
- let borderX = parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth);
105
- let w = parseFloat((parseFloat(cs.getPropertyValue('width'))-paddingX-borderX).toFixed(2));
106
- return this.size= {
107
- width: w,
108
- height: w / this.wPH
109
- }
110
- }
111
- return false
112
-
113
- },
114
- activate() {
115
- this.getSize()
116
- if (this.size.width!==0) {
117
- this.load = true
118
- } else {
119
- clearTimeout(this.time_id)
120
- this.time_id=setTimeout(() => {
121
- this.activate()
122
- }, 100)
123
- }
124
-
125
- }
126
- },
127
- beforeUnmount(){
128
- clearTimeout(this.time_id)
21
+ export default {
22
+ name: 'r-img',
23
+ props: {
24
+ src: {
25
+ type: String,
26
+ required: true
27
+ },
28
+ alt: {
29
+ type: String,
30
+ required: true
31
+ },
32
+ lazy: {
33
+ type: String,
34
+ default: 'create',
35
+ validator: function (value) {
36
+ return ['no', 'create'].indexOf(value) !== -1
37
+ }
38
+ },
39
+ width: {
40
+ type: [String, Number]
41
+ },
42
+ height: {
43
+ type: [String, Number]
44
+ },
45
+ query: String,
46
+ autoSize: Boolean,
47
+ hoverZoom: Boolean,
48
+ hoverDark: Boolean,
49
+ hoverTitle: Boolean,
50
+ titleHs: Boolean,
51
+ titleHc: Boolean,
52
+ titleHe: Boolean,
53
+ titleVs: Boolean,
54
+ titleVc: Boolean,
55
+ titleVe: Boolean,
56
+ wPH: {
57
+ type: Number,
58
+ default: 1
59
+ },
60
+ },
61
+ data() {
62
+ return {
63
+ load: false,
64
+ view: false,
65
+ modifier: this.lazy !== 'no' ? 'once' : 'pre',
66
+ time_id: null,
67
+ size: {width: 0, height: 0}
68
+ }
69
+ },
70
+ created() {
71
+ this.activate()
72
+ },
73
+ computed: {
74
+ link() {
75
+ if (this.lazy !== 'no' && !this.view) {
76
+ return null
77
+ }
78
+ let res = this.src
79
+ if (!(res.startsWith('/') || res.startsWith('http://') || res.startsWith('https://'))) {
80
+ res = '/' + res
81
+ }
82
+ if (this.src.search('[?]') === -1) {
83
+ res += '?'
84
+ }
85
+ if (this.query) {
86
+ res += this.query
87
+ }
88
+ if ((this.autoSize && this.size.width > 0) || this.width) {
89
+ res += `&w=${this.size.width}&h=${this.size.height}`
90
+ }
91
+ return res
92
+ }
93
+ },
94
+ methods: {
95
+ check(isIntersecting) {
96
+ if (isIntersecting) {
97
+ this.view = true
98
+ }
99
+ },
100
+ getSize() {
101
+ let res = {width: 0, height: 0}
102
+ if (this.width) {
103
+ res["width"] = this.width
104
+ }
105
+ if (this.height) {
106
+ res["height"] = this.height
107
+ }
108
+ if (res['width'] !== 0 && res['height'] === 0) {
109
+ res['height'] = res['width'] / this.wPH
110
+ }
111
+ if (res['width'] === 0 && res['height'] !== 0) {
112
+ res['width'] = res['height'] * this.wPH
113
+ }
114
+ if (res['width'] !== 0) {
115
+ return this.size = res
116
+ }
117
+
118
+ if (this.$refs.rImg && this.$refs.rImg.parentElement && this.$refs.rImg.parentElement.clientWidth > 0) {
119
+ let cs = window.getComputedStyle(this.$refs.rImg.parentElement)
120
+ let paddingX = parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight);
121
+ let borderX = parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth);
122
+ let w = parseFloat((parseFloat(cs.getPropertyValue('width')) - paddingX - borderX).toFixed(2));
123
+ return this.size = {
124
+ width: w,
125
+ height: w / this.wPH
129
126
  }
127
+ }
128
+ return false
129
+
130
+ },
131
+ activate() {
132
+ this.getSize()
133
+ if (this.size.width !== 0) {
134
+ this.load = true
135
+ } else {
136
+ clearTimeout(this.time_id)
137
+ this.time_id = setTimeout(() => {
138
+ this.activate()
139
+ }, 100)
140
+ }
141
+
130
142
  }
143
+ },
144
+ beforeUnmount() {
145
+ clearTimeout(this.time_id)
146
+ }
147
+ }
131
148
  </script>
132
149
  <style lang="scss">
133
- @import "../../style/include";
134
-
135
- .#{$prefix}img {
136
- position: relative;
137
- display: inline-flex;
138
- max-width: 100%;
139
- overflow: hidden;
140
- z-index: 0;
141
-
142
- img {
143
- transition: 0.3s all ease-in-out;
144
- }
145
-
146
- &.img-hoverZoom {
147
- &:hover {
148
- img {
149
- transform: scale(1.1);
150
- }
151
- }
152
- }
153
-
154
- &.img-hoverDark {
155
- &:hover {
156
- background-color: black;
150
+ @import "../../style/include";
151
+
152
+ .#{$prefix}img {
153
+ position: relative;
154
+ display: inline-flex;
155
+ max-width: 100%;
156
+ overflow: hidden;
157
+ z-index: 0;
158
+
159
+ img {
160
+ transition: 0.3s all ease-in-out;
161
+ }
162
+
163
+ &.img-hoverZoom {
164
+ &:hover {
165
+ img {
166
+ transform: scale(1.1);
167
+ }
168
+ }
169
+ }
157
170
 
158
- img {
159
- opacity: 0.5;
160
- }
161
- }
162
- }
171
+ &.img-hoverDark {
172
+ &:hover {
173
+ background-color: black;
163
174
 
164
- &.img-hoverTitle {
165
- &:hover {
166
- .img-title {
167
- max-width: 100%;
168
- }
169
- }
170
- }
175
+ img {
176
+ opacity: 0.5;
177
+ }
178
+ }
179
+ }
171
180
 
172
- .img-title {
173
- position: absolute;
174
- z-index: 1;
175
- max-width: 0;
176
- overflow: hidden;
181
+ &.img-hoverTitle {
182
+ &:hover {
183
+ .img-title {
184
+ max-width: 100%;
185
+ }
186
+ }
187
+ }
177
188
 
178
- &.title-hs {
179
- text-align: start;
180
- }
189
+ .img-title {
190
+ position: absolute;
191
+ z-index: 1;
192
+ max-width: 0;
193
+ overflow: hidden;
181
194
 
182
- &.title-hc {
183
- text-align: center;
184
- }
195
+ &.title-hs {
196
+ text-align: start;
197
+ }
185
198
 
186
- &.title-he {
187
- text-align: end;
188
- }
199
+ &.title-hc {
200
+ text-align: center;
201
+ }
189
202
 
190
- &.title-vs {
191
- top: 10px
192
- }
203
+ &.title-he {
204
+ text-align: end;
205
+ }
193
206
 
194
- &.title-vc {
195
- top: 50%
196
- }
207
+ &.title-vs {
208
+ top: 10px
209
+ }
197
210
 
198
- &.title-ve {
199
- bottom: 10px
200
- }
211
+ &.title-vc {
212
+ top: 50%
213
+ }
201
214
 
202
- }
215
+ &.title-ve {
216
+ bottom: 10px
203
217
  }
218
+
219
+ }
220
+ }
204
221
  </style>