toggle-components-library 1.37.0-beta.3 → 1.37.0-beta.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toggle-components-library",
3
- "version": "1.37.0-beta.3",
3
+ "version": "1.37.0-beta.30",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -1,27 +1,19 @@
1
1
  <template>
2
2
  <div class="toggle-breadcrumb" v-if="breadcrumb_computed">
3
3
  <div v-for="(crumb, index) in breadcrumb_computed" :key="index">
4
- <template v-if="index === breadcrumb_computed.length - 1 && editable">
5
- <span
6
- contenteditable="true"
7
- class="toggle-breadcrumb-editable-input"
8
- @input="updateContent($event);"
9
- @keydown.enter.prevent="handleEnterKey"
10
- @paste.prevent="handlePaste"
11
- >{{ crumb.name }}</span>
12
- </template>
13
- <template v-else>
14
- <router-link :to="{ name: crumb.link}" class="back-product" v-if="crumb.link && !isNuxt">{{ crumb.name }}</router-link>
15
- <NuxtLink :to="{ name: crumb.link}" class="back-product" v-if="crumb.link && isNuxt">{{ crumb.name }}</NuxtLink>
16
- <i class="toggle-breadcrumb-arrow-right" v-if="crumb.link"></i>
17
- <h1 class="toggle-breadcrumb-h1" v-if="!crumb.link">{{ crumb.name }}</h1>
18
- </template>
4
+ <router-link :to="{ name: crumb.link}" class="back-product" v-if="crumb.link && !isNuxt">{{ crumb.name }}</router-link>
5
+ <NuxtLink :to="{ name: crumb.link}" class="back-product" v-if="crumb.link && isNuxt">{{ crumb.name }}</NuxtLink>
6
+ <i class="toggle-breadcrumb-arrow-right" v-if="crumb.link"></i>
7
+ <h1 class="toggle-breadcrumb-h1" v-if="!crumb.link">{{ crumb.name }}</h1>
19
8
  </div>
20
9
  </div>
21
10
  </template>
22
11
 
23
12
  <script>
13
+
14
+
24
15
  export default {
16
+
25
17
  mixins: [],
26
18
  props: {
27
19
  isNuxt: {
@@ -31,78 +23,21 @@ export default {
31
23
  breadcrumb: {
32
24
  type: Array,
33
25
  required: false
34
- },
35
- editable: {
36
- type: Boolean,
37
- default: false,
38
- required: false
39
- },
40
- maxChars: {
41
- type: Number,
42
- default: 50,
43
- required: false
44
26
  }
45
27
  },
46
28
 
47
29
  data: function () {
48
- return {
49
- content: ''
50
- };
51
- },
52
30
 
53
- computed: {
54
- breadcrumb_computed() {
55
- return this.isNuxt ? this.breadcrumb : this.$route.meta.breadcrumb
56
- },
31
+
32
+ return {};
57
33
  },
58
34
 
59
- methods: {
60
- handlePaste(event) {
61
- // Get plain text from clipboard and clean it
62
- const text = (event.clipboardData || window.clipboardData).getData('text');
63
- const cleanText = text.replace(/[\r\n\s]+/g, ' ').trim();
64
-
65
- // Get current selection information
66
- const selection = window.getSelection();
67
- const selectionLength = selection.toString().length;
68
- const currentLength = this.content.length;
69
-
70
- // Check if adding the pasted text would exceed maxChars
71
- if (currentLength - selectionLength + cleanText.length <= this.maxChars && selection.rangeCount) {
72
- const range = selection.getRangeAt(0);
73
- range.deleteContents();
74
- range.insertNode(document.createTextNode(cleanText));
75
-
76
- // Move cursor to end of inserted text
77
- range.collapse(false);
78
- selection.removeAllRanges();
79
- selection.addRange(range);
80
-
81
- // Update content
82
- this.content = event.target.innerText;
83
- this.$emit('update:lastCrumb', this.content);
84
- }
85
- },
35
+ computed: {
86
36
 
87
- handleEnterKey(event) {
88
- event.preventDefault();
89
- event.target.blur();
37
+ breadcrumb_computed() {
38
+ return this.isNuxt ? this.breadcrumb : this.$route.meta.breadcrumb
90
39
  },
91
-
92
-
93
- updateContent(event) {
94
- // Limit the input to 50 characters
95
- if (event.target.innerText.length >= this.maxChars) {
96
- event.target.innerText = this.content;
97
-
98
- // Move the cursor to the end of the input
99
- document.getSelection().modify("move", "forward", "documentboundary");
100
-
101
- } else {
102
- this.content = event.target.innerText;
103
- this.$emit('update:lastCrumb', this.content);
104
- }
105
- }
106
40
  }
41
+
107
42
  }
108
43
  </script>
@@ -21,7 +21,8 @@
21
21
  v-model="inputVal"
22
22
  @blur="isInputActive = false"
23
23
  @focus="isInputActive = true"
24
- />
24
+ >
25
+ <div v-if="size == 'table'" class="toggle-input-currency-table-hover-pencil"></div>
25
26
  <label
26
27
  class="toggle-input-label-error"
27
28
  v-if="isInvalid"
@@ -75,7 +76,7 @@ export default {
75
76
  size: {
76
77
  type: String,
77
78
  validator: function (value) {
78
- return ['extra-small', 'small', 'medium', 'large', 'full'].indexOf(value) !== -1
79
+ return ['extra-small', 'small', 'medium', 'large', 'full', 'table'].indexOf(value) !== -1
79
80
  }
80
81
  },
81
82
  required: {
package/src/index.js CHANGED
@@ -8,7 +8,6 @@ import ToggleInputSelect from "./components/forms/ToggleInputSelect.vue";
8
8
  import ToggleInputPercentage from "./components/forms/ToggleInputPercentage.vue";
9
9
  import ToggleInputCurrency from "./components/forms/ToggleInputCurrency.vue";
10
10
  import ToggleInputRadioButtons from "./components/forms/ToggleInputRadioButtons.vue";
11
- import ToggleInputRadioButtonMini from "./components/forms/ToggleInputRadioButtonMini.vue";
12
11
  import ToggleInputTextArea from "./components/forms/ToggleInputTextArea.vue";
13
12
  import ToggleInputCheckboxContainer from "./components/forms/ToggleInputCheckboxContainer.vue";
14
13
  import ToggleInternationalPhoneInputSelect from "./components/forms/ToggleInternationalPhoneInputSelect.vue";
@@ -113,7 +112,6 @@ const Components = {
113
112
  ToggleInputPercentage,
114
113
  ToggleInputCurrency,
115
114
  ToggleInputRadioButtons,
116
- ToggleInputRadioButtonMini,
117
115
  ToggleInputTextArea,
118
116
  ToggleInputCheckboxContainer,
119
117
  ToggleInputCheckbox,
@@ -10,48 +10,6 @@
10
10
 
11
11
  }
12
12
 
13
- .toggle-breadcrumb-editable-input {
14
- font-size: $toggle-font-size-extra-large;
15
- font-family: "DIN-2014","Lato",sans-serif;
16
- color: $toggle-black;
17
- background-color: transparent;
18
- display: inline-flex;
19
- align-items: center;
20
- min-width: 5rem !important;
21
- height: 2rem;
22
- padding-right: 0.5rem;
23
- padding-left: 10px;
24
- border: none;
25
- border-radius: 4px;
26
- white-space: nowrap;
27
- line-height: 1;
28
- border: 1px solid transparent;
29
- margin: -1px 0 0 -10px;
30
- white-space: nowrap
31
- }
32
-
33
- .toggle-breadcrumb-editable-input:hover {
34
- border: 1px solid #ccc;
35
- background-color: $toggle-off-white;
36
- }
37
-
38
- .toggle-breadcrumb-editable-input:focus {
39
- border: 1px solid #ccc;
40
- background-color: $toggle-off-white;
41
- outline: none;
42
- }
43
-
44
- .toggle-breadcrumb-editable-input::after {
45
- content: '';
46
- background-image: url('../assets/icons/edit-icon.svg');
47
- background-repeat:no-repeat;
48
- background-size:contain;
49
- height: 22px;
50
- width: 22px;
51
- margin: 0 0 0 10px;
52
- cursor: text;
53
- }
54
-
55
13
  a {
56
14
 
57
15
  font-size: $toggle-font-size-extra-large;
@@ -51,8 +51,27 @@
51
51
  &.height-extra-large {
52
52
  height: 15rem;
53
53
  }
54
+ &.table {
55
+ margin-top: 0 !important;
56
+ }
57
+ &.table:focus + .toggle-input-currency-table-hover-pencil {
58
+ display:none;
59
+ }
54
60
 
55
61
  }
62
+ .toggle-input-currency-table-hover-pencil{
63
+ display: block;
64
+ background: url('../assets/icons/edit-icon.svg') no-repeat;
65
+ background-size: 1.25rem;
66
+ background-position: center;
67
+ cursor: pointer;
68
+ width: 1.25rem;
69
+ height: 1.25rem;
70
+ position: absolute;
71
+ right: 1rem;
72
+ top: 50%;
73
+ transform: translateY(-50%);
74
+ }
56
75
 
57
76
  .toggle-input-search-options-container{
58
77
  position:relative;
@@ -1218,83 +1237,4 @@ $iconWidth:20px;
1218
1237
  .drop-down-leave-to {
1219
1238
  overflow: hidden;
1220
1239
  max-height: 0;
1221
- }
1222
-
1223
- // Radio button mini
1224
-
1225
- .toggle-input-radio-button-mini-switch {
1226
- position: relative;
1227
- display: inline-block;
1228
- width: 52px;
1229
- height: 28px;
1230
- }
1231
-
1232
- .toggle-input-radio-button-mini-switch input {
1233
- opacity: 0;
1234
- width: 0;
1235
- height: 0;
1236
- }
1237
-
1238
- .toggle-input-radio-button-mini-slider {
1239
- position: absolute;
1240
- cursor: pointer;
1241
- top: 0;
1242
- left: 0;
1243
- right: 0;
1244
- bottom: 0;
1245
- background-color: #ccc;
1246
- -webkit-transition: .4s;
1247
- transition: .4s;
1248
- display: flex;
1249
- align-items: center;
1250
- border-radius: 34px;
1251
- }
1252
-
1253
- .toggle-input-radio-button-mini-slider:before {
1254
- position: absolute;
1255
- content: "";
1256
- height: 22px;
1257
- width: 22px;
1258
- left: 4px;
1259
- bottom: 3px;
1260
- background-color: white;
1261
- -webkit-transition: .4s;
1262
- transition: .4s;
1263
- border-radius: 50%;
1264
- }
1265
-
1266
- input:checked + .toggle-input-radio-button-mini-slider {
1267
- background-color: #2196F3;
1268
- }
1269
-
1270
- input:focus + .toggle-input-radio-button-mini-slider {
1271
- box-shadow: 0 0 1px #2196F3;
1272
- }
1273
-
1274
- input:checked + .toggle-input-radio-button-mini-slider:before {
1275
- -webkit-transform: translateX(22px);
1276
- -ms-transform: translateX(22px);
1277
- transform: translateX(22px);
1278
- }
1279
-
1280
- .toggle-input-radio-button-mini-text-on {
1281
- font-family: $toggle-font-family;
1282
- font-size: 12px;
1283
- color: #ffffff;
1284
- margin-left: 7px;
1285
- }
1286
- .toggle-input-radio-button-mini-text-off {
1287
- font-family: $toggle-font-family;
1288
- font-size: 12px;
1289
- color: #3A4A62;
1290
- margin-left: 6px;
1291
- }
1292
- .toggle-input-radio-button-mini-switch-disabled {
1293
- cursor: default !important;
1294
- opacity: 0.5;
1295
- }
1296
-
1297
- .toggle-input-radio-button-mini-slider-disabled {
1298
- cursor: default !important;
1299
- opacity: 0.5;
1300
1240
  }
@@ -1,38 +0,0 @@
1
- <template>
2
- <div>
3
- <label :class="['toggle-input-radio-button-mini-switch', {'toggle-input-radio-button-mini-switch-disabled': disabled}]">
4
- <input type="checkbox" :value="value" v-model="value" :disabled="disabled">
5
- <span :class="['toggle-input-radio-button-mini-slider', {'toggle-input-radio-button-mini-slider-disabled': disabled}]">
6
- <span class="toggle-input-radio-button-mini-text-on">On</span>
7
- <span class="toggle-input-radio-button-mini-text-off">Off</span>
8
- </span>
9
- </label>
10
- </div>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: 'ToggleInputRadioButtonMini',
16
- props: {
17
- disabled: {
18
- type: Boolean,
19
- default: false
20
- }
21
- },
22
- computed: {
23
- value: {
24
- get() {
25
- return this.$attrs.value
26
- },
27
- set(value) {
28
- this.$emit('input', value)
29
- }
30
- }
31
- },
32
- watch: {
33
- value: function (val) {
34
- this.$emit('input', val)
35
- }
36
- }
37
- }
38
- </script>