goodteditor-ui 1.0.77 → 1.0.78

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": "goodteditor-ui",
3
- "version": "1.0.77",
3
+ "version": "1.0.78",
4
4
  "main": "index.js",
5
5
  "homepage": "https://goodt-ui.netlify.app/",
6
6
  "scripts": {
@@ -31,7 +31,7 @@
31
31
  :color="previewRgbaString"
32
32
  :width="previewWidth"
33
33
  :height="previewHeight" />
34
- <div class="d-flex mar-top-2">
34
+ <div class="footer d-flex mar-top-2">
35
35
  <input
36
36
  class="input input-small text-xsmall flex-grow"
37
37
  type="text"
@@ -44,12 +44,12 @@
44
44
  :value="modelHex"
45
45
  @input="({ target }) => inputHex(target.value)"
46
46
  v-else />
47
- <div class="btn btn-outline btn-small mar-left-2" @click="toggleModelMode">
48
- <span class="text-xsmall text-upper">{{ nextModelMode }}</span>
49
- </div>
50
- <div class="btn btn-outline btn-small mar-left-2" @click="submit" v-if="showSubmit">
47
+ <button class="btn btn-outline btn-small" :title="nextModelMode" @click="toggleModelMode">
48
+ <span class="text-xsmall text-upper">{{ nextModelMode[0] }}</span>
49
+ </button>
50
+ <button class="btn btn-outline btn-small" @click="submit" v-if="showSubmit">
51
51
  <i class="mdi mdi-check"></i>
52
- </div>
52
+ </button>
53
53
  </div>
54
54
  <cp-colors
55
55
  class="mar-top-2"
@@ -72,6 +72,10 @@
72
72
  min-width: 0;
73
73
  }
74
74
 
75
+ .footer {
76
+ gap: var(--spacer2);
77
+ }
78
+
75
79
  .btn {
76
80
  min-height: 0;
77
81
  width: 2.25em;
@@ -153,16 +157,28 @@ export default {
153
157
  };
154
158
  },
155
159
  computed: {
160
+ /**
161
+ * @return {string}
162
+ */
156
163
  nextModelMode() {
157
164
  let { HEX, RGBA } = MODEL_MODE;
158
- return (this.modelMode === HEX ? RGBA : HEX)[0];
165
+ return this.modelMode === HEX ? RGBA : HEX;
159
166
  },
167
+ /**
168
+ * @return {number}
169
+ */
160
170
  totalWidth() {
161
171
  return this.hueHeight + (this.hueWidth + 4) * 2;
162
172
  },
173
+ /**
174
+ * @return {number}
175
+ */
163
176
  previewWidth() {
164
177
  return this.totalWidth;
165
178
  },
179
+ /**
180
+ * @return {{a: number, r: number, b: number, g: number}}
181
+ */
166
182
  rgba() {
167
183
  return {
168
184
  r: this.r,
@@ -171,6 +187,9 @@ export default {
171
187
  a: this.a
172
188
  };
173
189
  },
190
+ /**
191
+ * @return {{s: number, v: number, h: number}}
192
+ */
174
193
  hsv() {
175
194
  return {
176
195
  h: this.h,
@@ -178,20 +197,43 @@ export default {
178
197
  v: this.v
179
198
  };
180
199
  },
200
+ /**
201
+ * @return {string}
202
+ */
181
203
  rgbString() {
182
204
  return `rgb(${this.r}, ${this.g}, ${this.b})`;
183
205
  },
206
+ /**
207
+ * @return {string}
208
+ */
184
209
  rgbaStringShort() {
185
210
  return `${this.r}, ${this.g}, ${this.b}, ${this.a}`;
186
211
  },
212
+ /**
213
+ * @return {string}
214
+ */
187
215
  rgbaString() {
188
216
  return `rgba(${this.rgbaStringShort})`;
189
217
  },
218
+ /**
219
+ * @return {string}
220
+ */
190
221
  hexString() {
191
222
  return rgb2hex(this.rgba, true);
192
223
  },
224
+ /**
225
+ * @return {string}
226
+ */
193
227
  previewRgbaString() {
194
228
  return this.rgbaString;
229
+ },
230
+ /**
231
+ * @return {string}
232
+ */
233
+ modelModeValue() {
234
+ const { modelMode, modelHex, rgbaString } = this;
235
+ const { RGBA } = MODEL_MODE;
236
+ return modelMode === RGBA ? rgbaString : modelHex;
195
237
  }
196
238
  },
197
239
  watch: {
@@ -206,21 +248,13 @@ export default {
206
248
  },
207
249
  immediate: true
208
250
  },
209
- rgba() {
210
- /**
211
- * Triggers when the color changes
212
- * @property {Object} color color object
213
- */
214
- this.$emit('changeColor', {
215
- rgba: this.rgba,
216
- hsv: this.hsv,
217
- hex: this.modelHex
218
- });
251
+ modelModeValue() {
252
+ this.emitDetails('changeColor');
219
253
  /**
220
254
  * Triggers when the color changes
221
255
  * @property {Number} rgbaString color rgba string
222
256
  */
223
- this.$emit('input', this.rgbaString);
257
+ this.$emit('input', this.modelModeValue);
224
258
  }
225
259
  },
226
260
  created() {
@@ -230,20 +264,29 @@ export default {
230
264
  document.removeEventListener('keydown', this.onDocKeydown);
231
265
  },
232
266
  methods: {
233
- submit() {
267
+ /**
268
+ * Triggers when the color changes
269
+ * @property {Object} color color object
270
+ */
271
+ emitDetails(eventName) {
272
+ const { modelMode, modelModeValue, modelHex, rgba, hsv } = this;
234
273
  /**
235
274
  * Triggers when the color changes
236
275
  * @property {Object} color color object
237
276
  */
238
- this.$emit('submit', {
239
- rgba: this.rgba,
240
- hsv: this.hsv,
241
- hex: this.modelHex,
242
- mode: this.modelMode
277
+ this.$emit(eventName, {
278
+ value: modelModeValue,
279
+ rgba,
280
+ hsv,
281
+ hex: modelHex,
282
+ mode: modelMode
243
283
  });
244
284
  },
285
+ submit() {
286
+ this.emitDetails('submit');
287
+ },
245
288
  toggleModelMode() {
246
- let { HEX, RGBA } = MODEL_MODE;
289
+ const { HEX, RGBA } = MODEL_MODE;
247
290
  this.modelMode = this.modelMode === HEX ? RGBA : HEX;
248
291
  },
249
292
  selectSaturation(color) {
@@ -94,7 +94,7 @@
94
94
  }
95
95
  </style>
96
96
  <script>
97
- import { MODEL_MODE, isValidColorString } from './ColorPicker/utils';
97
+ import { isValidColorString } from './ColorPicker/utils';
98
98
  import ColorPicker from './ColorPicker.vue';
99
99
  import UiPopover from './Popover.vue';
100
100
  import { Key } from './utils/Helpers';
@@ -192,19 +192,10 @@ export default {
192
192
  onInputBlur(e) {
193
193
  this.rootHasFocus = false;
194
194
  },
195
- onColorPickerSubmit({ mode, ...profiles }) {
195
+ onColorPickerSubmit({ value: colorString }) {
196
196
  if (this.readonly || this.disabled) {
197
197
  return;
198
198
  }
199
- const value = profiles[mode];
200
- let colorString;
201
- if (mode === MODEL_MODE.RGBA) {
202
- let { r, g, b, a } = value;
203
- colorString = `rgba(${r}, ${g}, ${b}, ${a})`;
204
- }
205
- if (mode === MODEL_MODE.HEX) {
206
- colorString = value;
207
- }
208
199
  this.inputColor(colorString);
209
200
  this.changeColor(colorString);
210
201
  this.onColorPickerClose();