renusify 1.1.5 → 1.2.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 (79) hide show
  1. package/components/app/notify/notification.vue +2 -1
  2. package/components/app/toast/index.vue +7 -2
  3. package/components/app/toast/toast.vue +2 -0
  4. package/components/bar/bottomNavigationCircle.vue +1 -0
  5. package/components/bar/scss/bottomNav.scss +1 -1
  6. package/components/bar/toolbar/laptop.vue +4 -4
  7. package/components/bar/toolbar/mixin.js +1 -2
  8. package/components/bar/toolbar/mobile.vue +5 -4
  9. package/components/breadcrumb/index.vue +1 -0
  10. package/components/button/buttonConfirm.vue +1 -1
  11. package/components/button/buttonGroup.vue +1 -0
  12. package/components/button/style.scss +1 -0
  13. package/components/calendar/index.vue +1 -0
  14. package/components/calendar/month.vue +1 -0
  15. package/components/calendar/year.vue +1 -0
  16. package/components/chat/chatInput.vue +1 -0
  17. package/components/chat/chatMsg.vue +1 -0
  18. package/components/chat/index.vue +1 -0
  19. package/components/chip/index.vue +1 -0
  20. package/components/codeEditor/index.vue +0 -2
  21. package/components/codeEditor/run.vue +1 -58
  22. package/components/confirm/index.vue +1 -0
  23. package/components/countdown/index.vue +1 -0
  24. package/components/float/index.vue +1 -0
  25. package/components/form/address.vue +2 -1
  26. package/components/form/camInput.vue +2 -1
  27. package/components/form/check-input.vue +1 -1
  28. package/components/form/checkbox.vue +1 -1
  29. package/components/form/colorPicker/index.vue +1 -0
  30. package/components/form/colorPicker/picker.vue +1 -0
  31. package/components/form/datePicker/index.vue +349 -348
  32. package/components/form/datePicker/month.vue +1 -0
  33. package/components/form/datePicker/year.vue +1 -0
  34. package/components/form/fileUploader/index.vue +1 -0
  35. package/components/form/fileUploader/single.vue +1 -0
  36. package/components/form/form.vue +1 -0
  37. package/components/form/group-input.vue +5 -4
  38. package/components/form/input.vue +253 -1
  39. package/components/form/inputTel/index.vue +1 -0
  40. package/components/form/json/JsonView.vue +95 -94
  41. package/components/form/json/index.vue +2 -0
  42. package/components/form/mask-input.vue +1 -0
  43. package/components/form/number.vue +1 -0
  44. package/components/form/password.vue +121 -121
  45. package/components/form/radioInput.vue +1 -0
  46. package/components/form/range.vue +1 -0
  47. package/components/form/rating.vue +13 -1
  48. package/components/form/select.vue +61 -2
  49. package/components/form/switch.vue +64 -2
  50. package/components/form/text-area.vue +1 -1
  51. package/components/form/text-editor/index.vue +5 -2
  52. package/components/form/text-input.vue +1 -1
  53. package/components/form/timepicker/index.vue +2 -1
  54. package/components/form/timepicker/range.vue +2 -1
  55. package/components/form/timepicker/timepicker.vue +2 -1
  56. package/components/form/unique/index.vue +1 -0
  57. package/components/form/unit-input.vue +2 -1
  58. package/components/formCreator/index.vue +5 -4
  59. package/components/html2pdf/index.vue +1 -0
  60. package/components/list/index.vue +3 -2
  61. package/components/map/index.vue +1 -0
  62. package/components/map/route.vue +1 -0
  63. package/components/map/select.vue +1 -0
  64. package/components/menu/index.vue +1 -0
  65. package/components/modal/index.vue +1 -0
  66. package/components/searchBox/index.vue +1 -1
  67. package/components/slider/index.vue +1 -0
  68. package/components/table/crud/footer.vue +1 -1
  69. package/components/table/crud/header.vue +10 -4
  70. package/components/table/crud/index.vue +1 -0
  71. package/components/tabs/index.vue +1 -0
  72. package/components/tree/index.vue +2 -1
  73. package/components/tree/tree-element.vue +3 -2
  74. package/package.json +1 -1
  75. package/style/colors.scss +1 -1
  76. package/components/form/scss/input.scss +0 -249
  77. package/components/form/scss/rating.scss +0 -9
  78. package/components/form/scss/select.scss +0 -55
  79. package/components/form/scss/switch.scss +0 -68
@@ -21,6 +21,7 @@ export default {
21
21
  locale: String,
22
22
  year: Number
23
23
  },
24
+ emits:['update:modelValue'],
24
25
  data() {
25
26
  return {
26
27
  p: 0
@@ -21,6 +21,7 @@ export default {
21
21
  locale: String,
22
22
  month: Number
23
23
  },
24
+ emits:['update:modelValue'],
24
25
  methods: {
25
26
  emit(n) {
26
27
  this.$emit('update:model-value', n)
@@ -64,6 +64,7 @@ export default {
64
64
  meta: Array,
65
65
  metaRequired: {type: Boolean, default: true}
66
66
  },
67
+ emits:['update:modelValue','add'],
67
68
  components: {
68
69
  single
69
70
  },
@@ -70,6 +70,7 @@ export default {
70
70
  },
71
71
  metaRequired: Boolean
72
72
  },
73
+ emits:['file-link','select'],
73
74
  data() {
74
75
  return {
75
76
  showAdd: true,
@@ -18,6 +18,7 @@ export default {
18
18
  props: {
19
19
  modelValue: Boolean
20
20
  },
21
+ emits:['update:modelValue'],
21
22
  data: () => ({
22
23
  inputs: [],
23
24
  watchers: [],
@@ -54,6 +54,7 @@ export default {
54
54
  template: Object,
55
55
  addBtnClass: {'type': String, default: 'text-center'}
56
56
  },
57
+ emits:['update:modelValue','add','delete'],
57
58
  data() {
58
59
  return {
59
60
  disabledDel: {}
@@ -86,14 +87,14 @@ export default {
86
87
  let a = this.modelValue || []
87
88
  a.push(this.$helper.clearProxy(this.template))
88
89
  this.$emit('add', true)
89
- this.$emit('update:model-value', a)
90
+ this.$emit('update:modelValue', a)
90
91
  }
91
92
  },
92
93
  del(i) {
93
94
  let a = this.modelValue || []
94
95
  a.splice(i, 1)
95
96
  this.$emit('delete', i)
96
- this.$emit('update:model-value', a)
97
+ this.$emit('update:modelValue', a)
97
98
  },
98
99
  up(i) {
99
100
  if (i === 0) {
@@ -101,7 +102,7 @@ export default {
101
102
  }
102
103
  let a = this.modelValue || []
103
104
  a = this.array_move(a, i, i - 1)
104
- this.$emit('update:model-value', a)
105
+ this.$emit('update:modelValue', a)
105
106
  },
106
107
  down(i) {
107
108
  if (i === this.modelValue.length - 1) {
@@ -109,7 +110,7 @@ export default {
109
110
  }
110
111
  let a = this.modelValue || []
111
112
  a = this.array_move(a, i, i + 1)
112
- this.$emit('update:model-value', a)
113
+ this.$emit('update:modelValue', a)
113
114
  },
114
115
  array_move(arr, old_index, new_index) {
115
116
  if (new_index >= arr.length) {
@@ -34,7 +34,6 @@
34
34
  </div>
35
35
  </template>
36
36
  <script>
37
- import './scss/input.scss'
38
37
 
39
38
  export default {
40
39
  name: 'r-input',
@@ -67,6 +66,7 @@ export default {
67
66
  },
68
67
  validateOnBlur: {type: Boolean, default: undefined}
69
68
  },
69
+ emits:['pre-icon','icon','update:modelValue'],
70
70
  data() {
71
71
  return {
72
72
  uid: 'input_' + this.$helper.uniqueId(),
@@ -283,3 +283,255 @@ export default {
283
283
  }
284
284
 
285
285
  </script>
286
+ <style lang="scss">
287
+ @import '../../style/include';
288
+
289
+
290
+ .#{$prefix}input-container {
291
+ position: relative;
292
+ align-items: flex-start;
293
+ display: flex;
294
+ flex: 1 1 auto;
295
+ flex-direction: column;
296
+ line-height: 24px;
297
+ font-size: 1rem;
298
+ letter-spacing: normal;
299
+ margin-top: 20px;
300
+
301
+ &.input-ltr {
302
+ input {
303
+ direction: ltr;
304
+ }
305
+ }
306
+
307
+ &:not(.input-disabled) {
308
+ input,
309
+ textarea, .label, .#{$prefix}icon, .#{$prefix}btn {
310
+ color: var(--color-text-primary)
311
+ }
312
+ }
313
+
314
+ input::placeholder,
315
+ textarea::placeholder {
316
+ color: var(--color-text-disabled)
317
+ }
318
+
319
+ &.input-disabled {
320
+ * {
321
+ color: var(--color-text-disabled)
322
+ }
323
+ }
324
+
325
+ .input-control {
326
+ border: solid 1px var(--color-border)
327
+ }
328
+
329
+ &.input-disabled {
330
+ pointer-events: none;
331
+ }
332
+
333
+ input {
334
+ max-height: 32px
335
+ }
336
+
337
+ input,
338
+ textarea {
339
+ flex: 1 1 auto;
340
+ line-height: 20px;
341
+ padding: 8px 0 8px;
342
+ max-width: 100%;
343
+ min-width: 0px;
344
+ width: 100%;
345
+ outline: none;
346
+ position: relative;
347
+
348
+ &[type=text ]::-ms-clear {
349
+ display: none
350
+ }
351
+
352
+ &:invalid {
353
+ box-shadow: none
354
+ }
355
+
356
+ &:focus,
357
+ &:active {
358
+ outline: none
359
+ }
360
+ }
361
+
362
+ .input-control {
363
+ display: flex;
364
+ flex-direction: column;
365
+ height: 40px;
366
+ flex-grow: 1;
367
+ flex-wrap: wrap;
368
+ width: 100%;
369
+ align-items: flex-start;
370
+ justify-content: center;
371
+ position: relative;
372
+ .after-icon {
373
+ position: absolute;
374
+ cursor: pointer;
375
+ @include ltr() {
376
+ right: 5px;
377
+ }
378
+ @include rtl() {
379
+ left: 5px;
380
+ }
381
+
382
+ }
383
+ .pre-icon {
384
+ position: absolute;
385
+ cursor: pointer;
386
+ @include ltr() {
387
+ left: 5px;
388
+ }
389
+ @include rtl() {
390
+ right: 5px;
391
+ }
392
+
393
+ }
394
+
395
+ &:not(.input-tile) {
396
+ padding: 0 16px;
397
+ border-radius: 20px;
398
+ }
399
+
400
+ &.input-tile {
401
+ padding: 0 8px;
402
+ border-radius: 4px;
403
+ }
404
+ }
405
+
406
+ &.hide-detail {
407
+
408
+ > .input-control {
409
+ border: unset !important;
410
+ height: auto;
411
+ padding: 0;
412
+ }
413
+ }
414
+
415
+ .label {
416
+ white-space: nowrap;
417
+ position: absolute;
418
+ z-index: 0;
419
+ top: 8px;
420
+ transition: $primary-transition;
421
+
422
+ @include ltr() {
423
+ left: 15px;
424
+ transform-origin: top left;
425
+ }
426
+
427
+ @include rtl() {
428
+ right: 15px;
429
+ transform-origin: top right;
430
+ }
431
+ }
432
+
433
+ :not(.input-tile) {
434
+ .label-active {
435
+ @include ltr() {
436
+ transform: translateY(-27px) translateX(5px) scale(.9);
437
+ }
438
+ @include rtl() {
439
+ transform: translateY(-27px) translateX(-5px) scale(.9);
440
+ }
441
+ transition: $primary-transition
442
+ }
443
+ }
444
+
445
+ .label-fixed {
446
+ transform: none !important;
447
+ top: -20px !important;
448
+ @include ltr() {
449
+ left: 0 !important;
450
+ }
451
+ @include rtl() {
452
+ right: 0 !important;
453
+ }
454
+ }
455
+
456
+ .input-tile {
457
+ .label-active {
458
+ @include ltr() {
459
+ transform: translateY(-27px) translateX(-8px) scale(.9);
460
+ }
461
+ @include rtl() {
462
+ transform: translateY(-27px) translateX(8px) scale(.9);
463
+ }
464
+ transition: $primary-transition
465
+ }
466
+ }
467
+
468
+ &.input-focused {
469
+ .input-control {
470
+ border: solid 1px currentColor;
471
+ }
472
+
473
+ .#{$prefix}icon, .#{$prefix}btn {
474
+ color: currentColor !important;
475
+ }
476
+
477
+ :not(.input-tile) {
478
+ .label {
479
+ color: currentColor !important;
480
+ @include ltr() {
481
+ transform: translateY(-27px) translateX(5px) scale(.9);
482
+ }
483
+ @include rtl() {
484
+ transform: translateY(-27px) translateX(-5px) scale(.9);
485
+ }
486
+ transition: $primary-transition
487
+ }
488
+ }
489
+
490
+ .input-tile {
491
+ .label {
492
+ color: currentColor !important;
493
+ @include ltr() {
494
+ transform: translateY(-27px) translateX(-8px) scale(.9);
495
+ }
496
+ @include rtl() {
497
+ transform: translateY(-27px) translateX(8px) scale(.9);
498
+ }
499
+ transition: $primary-transition
500
+ }
501
+ }
502
+ }
503
+
504
+ .massage {
505
+ display: none;
506
+ margin-left: 10px;
507
+
508
+ &-active {
509
+ display: block;
510
+ }
511
+ }
512
+
513
+
514
+ &.color-error-text {
515
+ .label {
516
+ color: currentColor;
517
+ }
518
+
519
+ .input-control {
520
+ border: solid 1px currentColor;
521
+ }
522
+ }
523
+
524
+ &.text-area {
525
+ .input-control {
526
+ height: auto;
527
+
528
+ &:not(.input-tile) {
529
+ border-radius: 15px;
530
+ }
531
+ }
532
+
533
+ }
534
+ }
535
+
536
+
537
+ </style>
@@ -65,6 +65,7 @@ export default {
65
65
  }
66
66
 
67
67
  },
68
+ emits:['update:modelValue'],
68
69
  data() {
69
70
  return {
70
71
  tel: {
@@ -1,107 +1,108 @@
1
1
  <template>
2
- <div :class="`${$r.prefix}json-view d-flex v-baseline flex-wrap`"
3
- v-for="(value,key) in modelValue"
4
- :key="key">
5
- <div class="key d-flex v-baseline me-1" :style="{'max-width': keyWidth}">
6
- <r-btn v-if="!disableDel" icon class="color-error-text" text @click="del(key)">
7
- <r-icon v-html="$r.icons.delete"></r-icon>
8
- </r-btn>
9
- <template v-if="!is_array">
10
- <r-text-input :tile="tile" :readonly="disableEditKey" :model-value="key"
11
- @update:model-value="emitkey(key,$event)"></r-text-input>
12
- :
13
- </template>
14
- </div>
15
- <div v-if="typeof value==='object'" class="flex-grow-1 w-full ps-10">
16
- <r-json-input :tile="tile"
17
- :model-value="value"
18
- @update:model-value="emit(key,$event)"
19
- :disableAdd="disableAdd||template!==undefined"
20
- :disableDel="disableDel||template!==undefined"
21
- :disableEditKey="disableEditKey"
22
- :keyWidth="keyWidth"
23
- :valueWidth="valueWidth"
24
- ></r-json-input>
25
- </div>
26
- <div v-else class="mb-1" :style="{'max-width': valueWidth}">
27
- <r-text-input v-if="typeof value==='string'"
2
+ <div :class="`${$r.prefix}json-view d-flex v-baseline flex-wrap`"
3
+ v-for="(value,key) in modelValue"
4
+ :key="key">
5
+ <div class="key d-flex v-baseline me-1" :style="{'max-width': keyWidth}">
6
+ <r-btn v-if="!disableDel" icon class="color-error-text" text @click="del(key)">
7
+ <r-icon v-html="$r.icons.delete"></r-icon>
8
+ </r-btn>
9
+ <template v-if="!is_array">
10
+ <r-text-input :tile="tile" :readonly="disableEditKey" :model-value="key"
11
+ @update:model-value="emitkey(key,$event)"></r-text-input>
12
+ :
13
+ </template>
14
+ </div>
15
+ <div v-if="typeof value==='object'" class="flex-grow-1 w-full ps-10">
16
+ <r-json-input :tile="tile"
17
+ :model-value="value"
18
+ @update:model-value="emit(key,$event)"
19
+ :disableAdd="disableAdd||template!==undefined"
20
+ :disableDel="disableDel||template!==undefined"
21
+ :disableEditKey="disableEditKey"
22
+ :keyWidth="keyWidth"
23
+ :valueWidth="valueWidth"
24
+ ></r-json-input>
25
+ </div>
26
+ <div v-else class="mb-1" :style="{'max-width': valueWidth}">
27
+ <r-text-input v-if="typeof value==='string'"
28
+ :tile="tile"
29
+ :model-value="value" @update:model-value="emit(key,$event)"></r-text-input>
30
+ <r-number-input v-else-if="typeof value==='number'"
28
31
  :tile="tile"
29
- :model-value="value" @update:model-value="emit(key,$event)"></r-text-input>
30
- <r-number-input v-else-if="typeof value==='number'"
31
- :tile="tile"
32
- :model-value="value" @update:model-value="emit(key,$event)"></r-number-input>
33
- <r-switch-input v-else-if="typeof value==='boolean'"
34
- :tile="tile"
35
- :model-value="value" @update:model-value="emit(key,$event)"></r-switch-input>
36
-
37
- </div>
32
+ :model-value="value" @update:model-value="emit(key,$event)"></r-number-input>
33
+ <r-switch-input v-else-if="typeof value==='boolean'"
34
+ :tile="tile"
35
+ :model-value="value" @update:model-value="emit(key,$event)"></r-switch-input>
38
36
 
39
37
  </div>
38
+
39
+ </div>
40
40
  </template>
41
41
  <script>
42
- export default {
43
- name: 'jsonView',
44
- props: {
45
- modelValue: Object,
46
- template: Object,
47
- disableEditKey: Boolean,
48
- disableAdd: Boolean,
49
- disableDel: Boolean,
50
- tile: Boolean,
51
- keyWidth: {
52
- type: String,
53
- default: '140px'
54
- }, valueWidth: {
55
- type: String,
56
- default: '300px'
57
- }
58
- },
59
- data() {
60
- return {
61
- time_id: null
62
- }
63
- },
64
- computed:{
65
- is_array(){
66
- return Array.isArray(this.modelValue)
67
- }
68
- },
69
- methods: {
70
- del(key) {
71
- let o = this.modelValue
72
- if (this.is_array) {
73
- o.splice(key, 1)
74
- } else {
75
- delete o[key]
76
- }
77
- this.$emit('update:model-value', o)
78
- },
79
- emitkey(oldKey, newKey) {
80
- clearTimeout(this.time_id)
81
- let o = this.modelValue
82
- let n = {};
42
+ export default {
43
+ name: 'jsonView',
44
+ props: {
45
+ modelValue: Object,
46
+ template: Object,
47
+ disableEditKey: Boolean,
48
+ disableAdd: Boolean,
49
+ disableDel: Boolean,
50
+ tile: Boolean,
51
+ keyWidth: {
52
+ type: String,
53
+ default: '140px'
54
+ }, valueWidth: {
55
+ type: String,
56
+ default: '300px'
57
+ }
58
+ },
59
+ emits: ['update:model-value'],
60
+ data() {
61
+ return {
62
+ time_id: null
63
+ }
64
+ },
65
+ computed: {
66
+ is_array() {
67
+ return Array.isArray(this.modelValue)
68
+ }
69
+ },
70
+ methods: {
71
+ del(key) {
72
+ let o = this.modelValue
73
+ if (this.is_array) {
74
+ o.splice(key, 1)
75
+ } else {
76
+ delete o[key]
77
+ }
78
+ this.$emit('update:model-value', o)
79
+ },
80
+ emitkey(oldKey, newKey) {
81
+ clearTimeout(this.time_id)
82
+ let o = this.modelValue
83
+ let n = {};
83
84
 
84
- Object.keys(o).forEach(key => {
85
- if (key === oldKey) {
86
- let newPair = {[newKey]: o[oldKey]};
87
- n = {...n, ...newPair}
88
- } else {
89
- n = {...n, [key]: o[key]}
90
- }
91
- });
92
- this.time_id = setTimeout(() => {
93
- this.$emit('update:model-value', n)
94
- }, 1000)
95
- },
96
- emit(k, v) {
97
- let d = this.modelValue
98
- d[k] = v
99
- this.$emit('update:model-value', d)
100
- }
85
+ Object.keys(o).forEach(key => {
86
+ if (key === oldKey) {
87
+ let newPair = {[newKey]: o[oldKey]};
88
+ n = {...n, ...newPair}
89
+ } else {
90
+ n = {...n, [key]: o[key]}
101
91
  }
92
+ });
93
+ this.time_id = setTimeout(() => {
94
+ this.$emit('update:model-value', n)
95
+ }, 1000)
96
+ },
97
+ emit(k, v) {
98
+ let d = this.modelValue
99
+ d[k] = v
100
+ this.$emit('update:model-value', d)
102
101
  }
102
+ }
103
+ }
103
104
  </script>
104
105
  <style lang="scss">
105
- @import "../../../style/include";
106
+ @import "../../../style/include";
106
107
 
107
108
  </style>
@@ -42,6 +42,7 @@
42
42
  class="me-1"
43
43
  :items="['text','number','boolean','json','array']"
44
44
  just-value
45
+ disableSearch
45
46
  @update:model-value="info.value=null"
46
47
  firstSelect></r-select-input>
47
48
  </div>
@@ -100,6 +101,7 @@ export default {
100
101
  disableEditKey: Boolean,
101
102
  disableDel: Boolean
102
103
  },
104
+ emits:['update:modelValue'],
103
105
  data() {
104
106
  return {
105
107
  show: false,
@@ -34,6 +34,7 @@
34
34
  type: Boolean
35
35
  },
36
36
  },
37
+ emits:['update:modelValue','complete'],
37
38
  data() {
38
39
  return {
39
40
  lazyVal: this.modelValue?this.build_mask(this.modelValue, this.mask):null,
@@ -41,6 +41,7 @@ export default {
41
41
  },
42
42
  btnText: Boolean
43
43
  },
44
+ emits:['update:modelValue'],
44
45
  data() {
45
46
  return {
46
47
  number: this.setSplit(this.modelValue),