Skip to content

Commit 88fac0c

Browse files
Fixing global options
1 parent 5e7849a commit 88fac0c

13 files changed

+392
-242
lines changed

Diff for: src/playground/configs/playground.ts

+27-15
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,44 @@ import { registerPlugins } from '../../plugins';
66
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
77
import { makeServer } from '../../server';
88
import { createVInlineFields } from '../../plugin/index';
9-
// import {
10-
// VInlineCheckbox,
11-
// VInlineCustomField,
12-
// VInlineSelect,
13-
// VInlineSwitch,
14-
// VInlineTextField,
15-
// VInlineTextarea,
16-
// } from '../../plugin/index';
9+
1710

1811
makeServer({ environment: 'playground' });
1912

2013
const app = createApp(PlaygroundApp);
2114
app.use(createVInlineFields({
15+
// cancelButtonColor: 'yellow',
16+
// cancelButtonSize: 'x-small',
17+
// cancelButtonTitle: 'xxxxxxxxxxx',
18+
// cancelButtonVariant: 'outlined',
19+
// cancelIcon: 'mdi:mdi-cog',
20+
// cancelIconColor: 'purple',
21+
// cardField: true,
22+
// cardOffsetX: 100,
23+
// cardOffsetY: 100,
2224
// cell: true,
25+
// cellUnderlineFullWidth: true,
26+
// closeSiblings: false,
27+
// color: 'orange',
28+
// disabled: false,
29+
// emptyText: 'xxxxxxxxxxxx',
30+
// fieldOnly: true,
31+
// hideCancelIcon: true,
32+
// hideDetails: true,
33+
// hideSaveIcon: true,
34+
// hideSaveIcon: true,
35+
// loadingWait: true,
36+
// tableField: false,
37+
// underlineColor: 'red',
38+
// underlineStyle: 'dashed',
39+
// underlineWidth: '10px',
40+
// underlined: false,
41+
// valueColor: 'pink',
2342
}));
2443
app.use(createPinia());
2544
app.component('font-awesome-icon', FontAwesomeIcon);
2645
app.component('FaIcon', FontAwesomeIcon);
2746

28-
// app.component('VInlineCheckbox', VInlineCheckbox);
29-
// app.component('VInlineCustomField', VInlineCustomField);
30-
// app.component('VInlineSelect', VInlineSelect);
31-
// app.component('VInlineSwitch', VInlineSwitch);
32-
// app.component('VInlineTextField', VInlineTextField);
33-
// app.component('VInlineTextarea', VInlineTextarea);
34-
3547
registerPlugins(app);
3648

3749
app.mount('#app');

Diff for: src/playground/configs/templates/PlaygroundPage.vue

+18-22
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,6 @@
66
>
77
Toggle Disabled: {{ componentOptions.disabled }}
88
</v-btn>
9-
10-
<v-btn
11-
class="me-2"
12-
@click="componentOptions.open = !componentOptions.open"
13-
>
14-
Toggle Open: {{ componentOptions.open }}
15-
</v-btn>
169
</v-col>
1710

1811
<v-col cols="12">
@@ -45,6 +38,7 @@
4538
:disabled="componentOptions.disabled"
4639
:field-only="componentOptions.fieldOnly"
4740
:hide-cancel-icon="componentOptions.hideCancelIcon"
41+
:hide-save-icon="componentOptions.hideSaveIcon"
4842
:icon-false="componentOptions.iconFalse"
4943
:icon-false-title="componentOptions.iconFalseTitle"
5044
:icon-true="componentOptions.iconTrue"
@@ -88,6 +82,7 @@
8882
:field-only="componentOptions.fieldOnly"
8983
:hide-cancel-icon="componentOptions.hideCancelIcon"
9084
:hide-details="componentOptions.hideDetails"
85+
:hide-save-icon="componentOptions.hideSaveIcon"
9186
:hide-selected="componentOptions.hideSelected"
9287
item-title="name"
9388
item-value="id"
@@ -137,7 +132,7 @@
137132
:display-append-inner-icon-color="componentOptions.displayAppendInnerIconColor"
138133
:empty-text="componentOptions.emptyText"
139134
:field-only="componentOptions.fieldOnly"
140-
:hide-cancel-icon="componentOptions.hideCancelIcon"
135+
141136
:hide-details="componentOptions.hideDetails"
142137
:hide-selected="componentOptions.hideSelected"
143138
item-title="name"
@@ -148,7 +143,6 @@
148143
:loading-wait="componentOptions.loadingWait"
149144
:menu="componentOptions.menu"
150145
name="userId"
151-
:open="componentOptions.open"
152146
return-object
153147
:save-button-color="componentOptions.saveButtonColor"
154148
:save-button-title="componentOptions.saveButtonTitle"
@@ -189,6 +183,7 @@
189183
:field-only="componentOptions.fieldOnly"
190184
:hide-cancel-icon="componentOptions.hideCancelIcon"
191185
:hide-details="componentOptions.hideDetails"
186+
:hide-save-icon="componentOptions.hideSaveIcon"
192187
:label="componentOptions.label"
193188
:loading="item.loading"
194189
:loading-wait="componentOptions.loadingWait"
@@ -236,6 +231,7 @@
236231
:field-only="componentOptions.fieldOnly"
237232
:hide-cancel-icon="componentOptions.hideCancelIcon"
238233
:hide-details="componentOptions.hideDetails"
234+
:hide-save-icon="componentOptions.hideSaveIcon"
239235
:label="componentOptions.label"
240236
:loading="item.loading"
241237
:loading-wait="componentOptions.loadingWait"
@@ -298,6 +294,7 @@
298294
:disabled="componentOptions.disabled"
299295
:field-only="componentOptions.fieldOnly"
300296
:hide-cancel-icon="componentOptions.hideCancelIcon"
297+
:hide-save-icon="componentOptions.hideSaveIcon"
301298
:icon-false-title="componentOptions.iconFalseTitle"
302299
:icon-true-title="componentOptions.iconTrueTitle"
303300
:label="componentOptions.label"
@@ -363,9 +360,7 @@ import type {
363360
type Headers = VDataTable['$props']['headers'];
364361
type Item = (typeof VDataTableRow)['$props']['item'];
365362
type Items = VDataTable['$props']['items'];
366-
interface Props extends SharedProps {
367-
[key: string]: any;
368-
}
363+
interface Props extends SharedProps { [key: string]: any; }
369364
370365
371366
// ? Components are already loaded via the configs/playground.ts file //
@@ -385,15 +380,6 @@ const tableOptions = reactive({
385380
});
386381
387382
388-
// ? Changes the type of field the table uses //
389-
const isCardField = ref(false);
390-
const cardFieldState = computed(() => isCardField.value);
391-
392-
watch(() => isCardField.value, () => {
393-
tableOptions.tableKey = new Date().getUTCMilliseconds();
394-
});
395-
396-
397383
// ? Use these options to play around with the component props //
398384
const componentOptions = reactive<Props>({
399385
autoSelectFirst: true,
@@ -426,8 +412,10 @@ const componentOptions = reactive<Props>({
426412
// displayPrependInnerIconSize: 'x-small',
427413
emptyText: 'empty',
428414
fieldOnly: false,
415+
// hideCancelIcon: true,
429416
hideCancelIcon: false,
430417
hideDetails: true,
418+
hideSaveIcon: false,
431419
hideSelected: false,
432420
iconFalse: undefined,
433421
iconFalseTitle: undefined,
@@ -436,7 +424,6 @@ const componentOptions = reactive<Props>({
436424
label: undefined,
437425
loadingWait: true,
438426
menu: true,
439-
open: false,
440427
rules: {
441428
minLength(value: any) {
442429
return value?.length >= 5 || 'Min 5 characters';
@@ -508,6 +495,15 @@ const headers = ref<Headers>([
508495
]);
509496
510497
498+
// ? Changes the type of field the table uses //
499+
const isCardField = ref<boolean>(false);
500+
const cardFieldState = computed<boolean>(() => isCardField.value);
501+
502+
watch(() => isCardField.value, () => {
503+
tableOptions.tableKey = new Date().getUTCMilliseconds();
504+
});
505+
506+
511507
// ? This is where you would save the item in the database. //
512508
function updatedValue(item: Item, _field?: string): void {
513509
item.loading = true;

Diff for: src/plugin/VInlineCheckbox.vue

+51-29
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
:style="inlineFieldsContainerStyle"
66
>
77
<div
8-
v-if="(!showField && !settings.fieldOnly) || settings.cardField"
8+
v-if="(!showField && !settings.fieldOnly) || cardField"
99
:class="displayContainerClass"
1010
@click="settings.cell ? toggleField() : undefined"
1111
>
@@ -44,22 +44,22 @@
4444
</div>
4545

4646
<div
47-
v-if="showField || settings.fieldOnly || settings.cardField"
47+
v-if="showField || fieldOnly || cardField"
4848
:class="fieldContainerClass"
4949
>
5050
<Teleport
51-
:disabled="!settings.cardField"
51+
:disabled="!cardField"
5252
:to="cardFieldRef"
5353
>
5454
<v-checkbox
5555
v-bind="bindingSettings"
56-
:color="settings.color"
56+
:color="color"
5757
:density="settings.density"
58-
:disabled="loadingProp || disabledProp"
58+
:disabled="loadingProp || disabled"
5959
:error="error"
6060
:false-icon="theFalseIcon"
6161
:false-value="settings.falseValue"
62-
:hide-details="settings.hideDetails"
62+
:hide-details="hideDetails"
6363
:label="settings.label"
6464
:model-value="truthyModelValue"
6565
:true-icon="theTrueIcon"
@@ -82,25 +82,25 @@
8282
#append
8383
>
8484
<SaveFieldButtons
85-
:cancel-button-color="settings.cancelButtonColor"
86-
:cancel-button-size="settings.cancelButtonSize"
87-
:cancel-button-title="settings.cancelButtonTitle"
88-
:cancel-button-variant="settings.cancelButtonVariant"
89-
:cancel-icon="settings.cancelIcon"
90-
:cancel-icon-color="settings.cancelIconColor"
85+
:cancel-button-color="cancelButtonColor"
86+
:cancel-button-size="cancelButtonSize"
87+
:cancel-button-title="cancelButtonTitle"
88+
:cancel-button-variant="cancelButtonVariant"
89+
:cancel-icon="cancelIcon"
90+
:cancel-icon-color="cancelIconColor"
9191
:error="error"
92-
:field-only="settings.fieldOnly"
93-
:hide-cancel-icon="settings.hideCancelIcon"
92+
:field-only="fieldOnly"
93+
:hide-cancel-icon="hideCancelIcon"
9494
:hide-save-icon="true"
9595
:loading="loadingProp"
96-
:loading-icon="settings.loadingIcon"
97-
:loading-icon-color="settings.loadingIconColor"
98-
:save-button-color="settings.saveButtonColor"
99-
:save-button-size="settings.saveButtonSize"
100-
:save-button-title="settings.saveButtonTitle"
101-
:save-button-variant="settings.saveButtonVariant"
102-
:save-icon="settings.saveIcon"
103-
:save-icon-color="settings.saveIconColor"
96+
:loading-icon="loadingIcon"
97+
:loading-icon-color="loadingIconColor"
98+
:save-button-color="saveButtonColor"
99+
:save-button-size="saveButtonSize"
100+
:save-button-title="saveButtonTitle"
101+
:save-button-variant="saveButtonVariant"
102+
:save-icon="saveIcon"
103+
:save-icon-color="saveIconColor"
104104
@close="closeField"
105105
@save="saveValue"
106106
/>
@@ -111,7 +111,7 @@
111111

112112
<!-- Card Field-->
113113
<div
114-
v-if="settings.cardField"
114+
v-if="cardField"
115115
:class="cardContainerClass"
116116
:style="cardContainerStyle"
117117
>
@@ -175,8 +175,30 @@ const theme = useTheme();
175175
176176
const props = withDefaults(defineProps<VInlineCheckboxProps>(), { ...checkboxProps });
177177
let settings = reactive({ ...attrs, ...props, ...injectedOptions });
178+
179+
const { cancelButtonColor,
180+
cancelButtonSize,
181+
cancelButtonTitle,
182+
cancelButtonVariant,
183+
cancelIcon,
184+
cancelIconColor,
185+
cardField,
186+
closeSiblings,
187+
color,
188+
fieldOnly,
189+
hideCancelIcon,
190+
hideDetails,
191+
loadingIcon,
192+
loadingIconColor,
193+
saveButtonColor,
194+
saveButtonSize,
195+
saveButtonTitle,
196+
saveButtonVariant,
197+
saveIcon,
198+
saveIconColor } = toRefs(settings);
199+
200+
const disabled = computed(() => props.disabled);
178201
const loadingProp = computed(() => props.loading);
179-
const disabledProp = computed(() => props.disabled);
180202
181203
const error = ref<boolean>(false);
182204
const showField = ref<boolean>(false);
@@ -231,7 +253,7 @@ const truthyModelValue = computed(() => useTruthyModelValue({
231253
const inlineFieldsContainerClass = computed(() => useInlineFieldsContainerClass({
232254
cell: settings.cell && !showField.value,
233255
density: settings.density,
234-
disabled: disabledProp.value,
256+
disabled: disabled.value,
235257
field: 'v-checkbox',
236258
loading: loadingProp.value,
237259
loadingWait: settings.loadingWait,
@@ -311,7 +333,7 @@ watch(() => windowSize, () => {
311333
312334
// ------------------------------------------------ Toggle the field //
313335
function toggleField() {
314-
if (disabledProp.value || (settings.loadingWait && loadingProp.value)) {
336+
if (disabled.value || (settings.loadingWait && loadingProp.value)) {
315337
return;
316338
}
317339
@@ -326,7 +348,7 @@ function toggleField() {
326348
327349
const response = useToggleField({
328350
attrs,
329-
closeSiblings: settings.closeSiblings,
351+
closeSiblings: closeSiblings.value,
330352
fieldOnly: settings.fieldOnly,
331353
props,
332354
showField,
@@ -337,7 +359,7 @@ function toggleField() {
337359
showField.value = response.showField;
338360
timeOpened.value = response.timeOpened;
339361
340-
if (closeSiblingsBus !== null && settings.closeSiblings && showField.value && !settings.fieldOnly) {
362+
if (closeSiblingsBus !== null && closeSiblings.value && showField.value && !settings.fieldOnly) {
341363
closeSiblingsBus.emit(response.timeOpened);
342364
}
343365
}
@@ -361,7 +383,7 @@ function saveValue(value: any) {
361383
let closeSiblingsBus: unknown | any;
362384
let unsubscribeBus: () => void;
363385
364-
if (settings.closeSiblings) {
386+
if (closeSiblings.value) {
365387
import('@vueuse/core').then(({ useEventBus }) => {
366388
closeSiblingsBus = useEventBus(CloseSiblingsBus);
367389
unsubscribeBus = closeSiblingsBus.on(closeSiblingsListener);

0 commit comments

Comments
 (0)