This commit is contained in:
2022-07-21 03:28:35 +00:00
parent d7c883d6df
commit 51b34b0e1d
30103 changed files with 4152204 additions and 23 deletions
+103
View File
@@ -0,0 +1,103 @@
// Styles
import "../../../src/components/VCheckbox/VCheckbox.sass";
import "../../../src/styles/components/_selection-controls.sass"; // Components
import VIcon from '../VIcon';
import VInput from '../VInput'; // Mixins
import Selectable from '../../mixins/selectable';
/* @vue/component */
export default Selectable.extend({
name: 'v-checkbox',
props: {
indeterminate: Boolean,
indeterminateIcon: {
type: String,
default: '$checkboxIndeterminate'
},
offIcon: {
type: String,
default: '$checkboxOff'
},
onIcon: {
type: String,
default: '$checkboxOn'
}
},
data() {
return {
inputIndeterminate: this.indeterminate
};
},
computed: {
classes() {
return { ...VInput.options.computed.classes.call(this),
'v-input--selection-controls': true,
'v-input--checkbox': true,
'v-input--indeterminate': this.inputIndeterminate
};
},
computedIcon() {
if (this.inputIndeterminate) {
return this.indeterminateIcon;
} else if (this.isActive) {
return this.onIcon;
} else {
return this.offIcon;
}
},
// Do not return undefined if disabled,
// according to spec, should still show
// a color when disabled and active
validationState() {
if (this.isDisabled && !this.inputIndeterminate) return undefined;
if (this.hasError && this.shouldValidate) return 'error';
if (this.hasSuccess) return 'success';
if (this.hasColor !== null) return this.computedColor;
return undefined;
}
},
watch: {
indeterminate(val) {
// https://github.com/vuetifyjs/vuetify/issues/8270
this.$nextTick(() => this.inputIndeterminate = val);
},
inputIndeterminate(val) {
this.$emit('update:indeterminate', val);
},
isActive() {
if (!this.indeterminate) return;
this.inputIndeterminate = false;
}
},
methods: {
genCheckbox() {
return this.$createElement('div', {
staticClass: 'v-input--selection-controls__input'
}, [this.$createElement(VIcon, this.setTextColor(this.validationState, {
props: {
dense: this.dense,
dark: this.dark,
light: this.light
}
}), this.computedIcon), this.genInput('checkbox', { ...this.attrs$,
'aria-checked': this.inputIndeterminate ? 'mixed' : this.isActive.toString()
}), this.genRipple(this.setTextColor(this.rippleState))]);
},
genDefaultSlot() {
return [this.genCheckbox(), this.genLabel()];
}
}
});
//# sourceMappingURL=VCheckbox.js.map
File diff suppressed because one or more lines are too long
+88
View File
@@ -0,0 +1,88 @@
import "../../../src/components/VCheckbox/VSimpleCheckbox.sass";
import ripple from '../../directives/ripple';
import Vue from 'vue';
import { VIcon } from '../VIcon'; // Mixins
import Colorable from '../../mixins/colorable';
import Themeable from '../../mixins/themeable'; // Utilities
import { mergeListeners } from '../../util/mergeData';
import { wrapInArray } from '../../util/helpers';
export default Vue.extend({
name: 'v-simple-checkbox',
functional: true,
directives: {
ripple
},
props: { ...Colorable.options.props,
...Themeable.options.props,
disabled: Boolean,
ripple: {
type: Boolean,
default: true
},
value: Boolean,
indeterminate: Boolean,
indeterminateIcon: {
type: String,
default: '$checkboxIndeterminate'
},
onIcon: {
type: String,
default: '$checkboxOn'
},
offIcon: {
type: String,
default: '$checkboxOff'
}
},
render(h, {
props,
data,
listeners
}) {
const children = [];
if (props.ripple && !props.disabled) {
const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {
staticClass: 'v-input--selection-controls__ripple',
directives: [{
name: 'ripple',
value: {
center: true
}
}]
}));
children.push(ripple);
}
let icon = props.offIcon;
if (props.indeterminate) icon = props.indeterminateIcon;else if (props.value) icon = props.onIcon;
children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {
props: {
disabled: props.disabled,
dark: props.dark,
light: props.light
}
}), icon));
const classes = {
'v-simple-checkbox': true,
'v-simple-checkbox--disabled': props.disabled
};
return h('div', { ...data,
class: classes,
on: mergeListeners({
click: e => {
e.stopPropagation();
if (data.on && data.on.input && !props.disabled) {
wrapInArray(data.on.input).forEach(f => f(!props.value));
}
}
}, listeners)
}, children);
}
});
//# sourceMappingURL=VSimpleCheckbox.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VCheckbox/VSimpleCheckbox.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSimpleCheckbox.sass'\n\nimport ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { mergeListeners } from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n const classes = {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n }\n\n return h('div', {\n ...data,\n class: classes,\n on: mergeListeners({\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n }, listeners),\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VSimpleCheckbox.js"}
+10
View File
@@ -0,0 +1,10 @@
import VCheckbox from './VCheckbox';
import VSimpleCheckbox from './VSimpleCheckbox';
export { VCheckbox, VSimpleCheckbox };
export default {
$_vuetify_subcomponents: {
VCheckbox,
VSimpleCheckbox
}
};
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VCheckbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AACA,OAAO,eAAP,MAA4B,mBAA5B;AAEA,SAAS,SAAT,EAAoB,eAApB;AACA,eAAe;AACb,EAAA,uBAAuB,EAAE;AACvB,IAAA,SADuB;AAEvB,IAAA;AAFuB;AADZ,CAAf","sourcesContent":["import VCheckbox from './VCheckbox'\nimport VSimpleCheckbox from './VSimpleCheckbox'\n\nexport { VCheckbox, VSimpleCheckbox }\nexport default {\n $_vuetify_subcomponents: {\n VCheckbox,\n VSimpleCheckbox,\n },\n}\n"],"sourceRoot":"","file":"index.js"}