@vue-interface/select-field 1.0.0-beta.1 → 1.0.0-beta.3

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.
@@ -0,0 +1,130 @@
1
+ import { ActivityIndicator as g } from "@vue-interface/activity-indicator";
2
+ import { FormControl as S } from "@vue-interface/form-control";
3
+ import { defineComponent as z, resolveComponent as m, resolveDirective as E, openBlock as t, createElementBlock as l, normalizeClass as b, renderSlot as o, toDisplayString as i, createCommentVNode as n, createElementVNode as a, normalizeProps as c, guardReactiveProps as f, withDirectives as V, mergeProps as A, vModelSelect as N, createVNode as C, Transition as T, withCtx as p, createBlock as k, createTextVNode as B } from "vue";
4
+ const D = z({
5
+ name: "SelectField",
6
+ components: {
7
+ ActivityIndicator: g
8
+ },
9
+ extends: S,
10
+ props: {
11
+ /**
12
+ * The default class name assigned to the control element
13
+ *
14
+ * @param {String}
15
+ * @default 'form-select'
16
+ */
17
+ formControlClass: {
18
+ type: String,
19
+ default: "form-select"
20
+ }
21
+ },
22
+ computed: {
23
+ controlClass() {
24
+ return this.plaintext ? `${this.defaultControlClass}-plaintext` : this.defaultControlClass;
25
+ }
26
+ },
27
+ methods: {
28
+ shouldChangeOnFocus() {
29
+ return !1;
30
+ }
31
+ }
32
+ });
33
+ const O = (e, s) => {
34
+ const d = e.__vccOpts || e;
35
+ for (const [u, v] of s)
36
+ d[u] = v;
37
+ return d;
38
+ }, P = ["for"], w = { class: "form-group-inner" }, j = {
39
+ invalid: "",
40
+ class: "invalid-feedback"
41
+ }, G = /* @__PURE__ */ a("br", null, null, -1), I = {
42
+ valid: "",
43
+ class: "valid-feedback"
44
+ };
45
+ function M(e, s, d, u, v, R) {
46
+ const y = m("activity-indicator"), $ = m("FormControlErrors"), h = m("FormControlFeedback"), F = E("bind-events");
47
+ return t(), l("div", {
48
+ class: b(e.formGroupClasses)
49
+ }, [
50
+ o(e.$slots, "label", {}, () => [
51
+ e.label ? (t(), l("label", {
52
+ key: 0,
53
+ ref: "label",
54
+ for: e.id,
55
+ class: b(e.labelClass)
56
+ }, i(e.label), 11, P)) : n("", !0)
57
+ ]),
58
+ a("div", w, [
59
+ o(e.$slots, "control", c(f({ bindEvents: e.bindEvents, controlAttributes: e.controlAttributes })), () => [
60
+ e.$slots.icon ? (t(), l("div", {
61
+ key: 0,
62
+ class: "form-group-inner-icon",
63
+ onClick: s[0] || (s[0] = (...r) => e.focus && e.focus(...r))
64
+ }, [
65
+ o(e.$slots, "icon")
66
+ ])) : n("", !0),
67
+ V((t(), l("select", A({
68
+ ref: "field",
69
+ "onUpdate:modelValue": s[1] || (s[1] = (r) => e.model = r)
70
+ }, Object.assign({
71
+ disabled: e.$attrs.readonly
72
+ }, e.controlAttributes)), [
73
+ o(e.$slots, "default")
74
+ ], 16)), [
75
+ [N, e.model],
76
+ [F]
77
+ ])
78
+ ]),
79
+ o(e.$slots, "activity", {}, () => [
80
+ C(T, { name: "select-field-fade" }, {
81
+ default: p(() => [
82
+ e.activity ? (t(), k(y, {
83
+ key: "activity",
84
+ ref: "activity",
85
+ type: e.indicator,
86
+ size: e.indicatorSize || e.size
87
+ }, null, 8, ["type", "size"])) : n("", !0)
88
+ ]),
89
+ _: 1
90
+ })
91
+ ])
92
+ ]),
93
+ o(e.$slots, "errors", c(f({ error: e.error, errors: e.errors, id: e.$attrs.id, name: e.$attrs.name })), () => [
94
+ e.error || e.errors ? (t(), k($, {
95
+ key: 0,
96
+ id: e.$attrs.id,
97
+ name: e.$attrs.name,
98
+ error: e.error,
99
+ errors: e.errors
100
+ }, {
101
+ default: p(({ error: r }) => [
102
+ a("div", j, [
103
+ B(i(r), 1),
104
+ G
105
+ ])
106
+ ]),
107
+ _: 1
108
+ }, 8, ["id", "name", "error", "errors"])) : n("", !0)
109
+ ]),
110
+ o(e.$slots, "feedback", c(f({ feedback: e.feedback })), () => [
111
+ C(h, { feedback: e.feedback }, {
112
+ default: p(({ feedback: r }) => [
113
+ a("div", I, i(r), 1)
114
+ ]),
115
+ _: 1
116
+ }, 8, ["feedback"])
117
+ ]),
118
+ o(e.$slots, "help", {}, () => [
119
+ e.helpText ? (t(), l("small", {
120
+ key: 0,
121
+ ref: "help"
122
+ }, i(e.helpText), 513)) : n("", !0)
123
+ ])
124
+ ], 2);
125
+ }
126
+ const J = /* @__PURE__ */ O(D, [["render", M]]);
127
+ export {
128
+ J as SelectField
129
+ };
130
+ //# sourceMappingURL=select-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-field.js","sources":["../src/SelectField.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { ActivityIndicator } from '@vue-interface/activity-indicator';\nimport { FormControl } from '@vue-interface/form-control';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n name: 'SelectField',\n\n components: {\n ActivityIndicator,\n },\n\n extends: FormControl,\n\n props: {\n /**\n * The default class name assigned to the control element\n *\n * @param {String}\n * @default 'form-select'\n */\n formControlClass: {\n type: String,\n default: 'form-select'\n } \n },\n\n computed: {\n\n controlClass() {\n return this.plaintext ?\n `${this.defaultControlClass}-plaintext`\n : this.defaultControlClass;\n },\n },\n\n methods: {\n shouldChangeOnFocus() {\n return false;\n }\n }\n\n});\n</script>\n\n<template>\n <div :class=\"formGroupClasses\">\n <slot name=\"label\">\n <label\n v-if=\"label\"\n ref=\"label\"\n :for=\"id\"\n :class=\"labelClass\">\n {{ label }}\n </label>\n </slot>\n\n <div class=\"form-group-inner\">\n <slot\n name=\"control\"\n v-bind=\"{ bindEvents, controlAttributes }\">\n <div\n v-if=\"$slots.icon\"\n class=\"form-group-inner-icon\"\n @click=\"focus\">\n <slot name=\"icon\" />\n </div>\n <select\n ref=\"field\"\n v-model=\"model\"\n v-bind-events\n v-bind=\"Object.assign({\n ['disabled']: $attrs.readonly\n }, controlAttributes)\">\n <slot />\n </select>\n </slot>\n\n <slot name=\"activity\">\n <transition name=\"select-field-fade\">\n <activity-indicator\n v-if=\"activity\"\n key=\"activity\"\n ref=\"activity\"\n :type=\"indicator\"\n :size=\"indicatorSize || size\" />\n </transition>\n </slot>\n </div>\n\n <slot\n name=\"errors\"\n v-bind=\"{ error, errors, id: $attrs.id, name: $attrs.name }\"> \n <FormControlErrors\n v-if=\"!!(error || errors)\"\n :id=\"$attrs.id\"\n v-slot=\"{ error }\"\n :name=\"$attrs.name\"\n :error=\"error\"\n :errors=\"errors\">\n <div\n invalid\n class=\"invalid-feedback\">\n {{ error }}<br>\n </div>\n </FormControlErrors>\n </slot>\n \n <slot\n name=\"feedback\"\n v-bind=\"{ feedback }\">\n <FormControlFeedback\n v-slot=\"{ feedback }\"\n :feedback=\"feedback\">\n <div\n valid\n class=\"valid-feedback\">\n {{ feedback }}\n </div>\n </FormControlFeedback>\n </slot>\n\n <slot name=\"help\">\n <small\n v-if=\"helpText\"\n ref=\"help\">\n {{ helpText }}\n </small>\n </slot>\n </div>\n</template>\n\n<style>\n.select-field,\n.select-field .form-group-inner {\n position: relative;\n transition: all .25s ease-in-out;\n}\n\n.select-field .activity-indicator {\n position: absolute;\n right: 1.25em;\n top: 50%;\n transform: translate(-1rem, -50%);\n transition: all .15s ease-in;\n}\n\n.select-field .activity-indicator-xs {\n font-size: .5em;\n right: 2em;\n}\n\n.select-field.has-activity .form-control-xs {\n padding-right: 3.75em;\n}\n\n.select-field .activity-indicator-sm {\n font-size: .5em;\n right: 2em;\n}\n\n.select-field.has-activity .form-control-sm {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-md {\n font-size: .666em;\n}\n\n.select-field.has-activity .form-control-md {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-lg {\n font-size: .75em;\n}\n\n.select-field.has-activity .form-control-lg {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-xl {\n font-size: 1em;\n}\n\n.select-field.has-activity .activity-indicator-xl ~ .form-control-xl {\n padding-right: 3.75em;\n}\n\n.select-field .activity-indicator {\n opacity: 1;\n}\n\n.select-field .select-field-fade-enter,\n.select-field .select-field-fade-leave-to {\n opacity: 0;\n}\n\n.select-field.is-valid .valid-feedback,\n.select-field.is-invalid .invalid-feedback {\n display: flex;\n}\n\n.select-field .form-control-icon {\n padding-left: 2em;\n}\n\n.select-field .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666em;\n width: 1rem;\n font-size: 1em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field-sm .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666rem;\n width: .75em;\n font-size: 1.5em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field-lg .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666rem;\n width: 1.25em;\n font-size: 1em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field .activity-indicator {\n opacity: 1;\n}\n\n.select-field .select-field-fade-enter,\n.select-field .select-field-fade-leave-to {\n opacity: 0;\n}\n</style>\n\n"],"names":["_sfc_main","defineComponent","ActivityIndicator","FormControl","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_resolveDirective","_normalizeClass","_ctx","_openBlock","_createElementBlock","_toDisplayString","_hoisted_1","_createCommentVNode","_renderSlot","_normalizeProps","_guardReactiveProps","_cache","args","_withDirectives","_mergeProps","$event","_createVNode","_Transition","_withCtx","_createBlock","_component_activity_indicator","_component_FormControlErrors","_createTextVNode","error","_component_FormControlFeedback","feedback"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ (function(r,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@vue-interface/activity-indicator"),require("@vue-interface/form-control"),require("vue")):typeof define=="function"&&define.amd?define(["exports","@vue-interface/activity-indicator","@vue-interface/form-control","vue"],l):(r=typeof globalThis<"u"?globalThis:r||self,l(r.SelectField={},r.ActivityIndicator,r.FormControl,r.Vue))})(this,function(r,l,d,e){"use strict";const c=e.defineComponent({name:"SelectField",components:{ActivityIndicator:l.ActivityIndicator},extends:d.FormControl,props:{formControlClass:{type:String,default:"form-select"}},computed:{controlClass(){return this.plaintext?`${this.defaultControlClass}-plaintext`:this.defaultControlClass}},methods:{shouldChangeOnFocus(){return!1}}}),F="",m=(o,n)=>{const i=o.__vccOpts||o;for(const[s,a]of n)i[s]=a;return i},f=["for"],p={class:"form-group-inner"},k={invalid:"",class:"invalid-feedback"},y=e.createElementVNode("br",null,null,-1),C={valid:"",class:"valid-feedback"};function b(o,n,i,s,a,V){const h=e.resolveComponent("activity-indicator"),$=e.resolveComponent("FormControlErrors"),g=e.resolveComponent("FormControlFeedback"),B=e.resolveDirective("bind-events");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.formGroupClasses)},[e.renderSlot(o.$slots,"label",{},()=>[o.label?(e.openBlock(),e.createElementBlock("label",{key:0,ref:"label",for:o.id,class:e.normalizeClass(o.labelClass)},e.toDisplayString(o.label),11,f)):e.createCommentVNode("",!0)]),e.createElementVNode("div",p,[e.renderSlot(o.$slots,"control",e.normalizeProps(e.guardReactiveProps({bindEvents:o.bindEvents,controlAttributes:o.controlAttributes})),()=>[o.$slots.icon?(e.openBlock(),e.createElementBlock("div",{key:0,class:"form-group-inner-icon",onClick:n[0]||(n[0]=(...t)=>o.focus&&o.focus(...t))},[e.renderSlot(o.$slots,"icon")])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps({ref:"field","onUpdate:modelValue":n[1]||(n[1]=t=>o.model=t)},Object.assign({disabled:o.$attrs.readonly},o.controlAttributes)),[e.renderSlot(o.$slots,"default")],16)),[[e.vModelSelect,o.model],[B]])]),e.renderSlot(o.$slots,"activity",{},()=>[e.createVNode(e.Transition,{name:"select-field-fade"},{default:e.withCtx(()=>[o.activity?(e.openBlock(),e.createBlock(h,{key:"activity",ref:"activity",type:o.indicator,size:o.indicatorSize||o.size},null,8,["type","size"])):e.createCommentVNode("",!0)]),_:1})])]),e.renderSlot(o.$slots,"errors",e.normalizeProps(e.guardReactiveProps({error:o.error,errors:o.errors,id:o.$attrs.id,name:o.$attrs.name})),()=>[o.error||o.errors?(e.openBlock(),e.createBlock($,{key:0,id:o.$attrs.id,name:o.$attrs.name,error:o.error,errors:o.errors},{default:e.withCtx(({error:t})=>[e.createElementVNode("div",k,[e.createTextVNode(e.toDisplayString(t),1),y])]),_:1},8,["id","name","error","errors"])):e.createCommentVNode("",!0)]),e.renderSlot(o.$slots,"feedback",e.normalizeProps(e.guardReactiveProps({feedback:o.feedback})),()=>[e.createVNode(g,{feedback:o.feedback},{default:e.withCtx(({feedback:t})=>[e.createElementVNode("div",C,e.toDisplayString(t),1)]),_:1},8,["feedback"])]),e.renderSlot(o.$slots,"help",{},()=>[o.helpText?(e.openBlock(),e.createElementBlock("small",{key:0,ref:"help"},e.toDisplayString(o.helpText),513)):e.createCommentVNode("",!0)])],2)}const S=m(c,[["render",b]]);r.SelectField=S,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=select-field.umd.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-field.umd.cjs","sources":["../src/SelectField.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { ActivityIndicator } from '@vue-interface/activity-indicator';\nimport { FormControl } from '@vue-interface/form-control';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n name: 'SelectField',\n\n components: {\n ActivityIndicator,\n },\n\n extends: FormControl,\n\n props: {\n /**\n * The default class name assigned to the control element\n *\n * @param {String}\n * @default 'form-select'\n */\n formControlClass: {\n type: String,\n default: 'form-select'\n } \n },\n\n computed: {\n\n controlClass() {\n return this.plaintext ?\n `${this.defaultControlClass}-plaintext`\n : this.defaultControlClass;\n },\n },\n\n methods: {\n shouldChangeOnFocus() {\n return false;\n }\n }\n\n});\n</script>\n\n<template>\n <div :class=\"formGroupClasses\">\n <slot name=\"label\">\n <label\n v-if=\"label\"\n ref=\"label\"\n :for=\"id\"\n :class=\"labelClass\">\n {{ label }}\n </label>\n </slot>\n\n <div class=\"form-group-inner\">\n <slot\n name=\"control\"\n v-bind=\"{ bindEvents, controlAttributes }\">\n <div\n v-if=\"$slots.icon\"\n class=\"form-group-inner-icon\"\n @click=\"focus\">\n <slot name=\"icon\" />\n </div>\n <select\n ref=\"field\"\n v-model=\"model\"\n v-bind-events\n v-bind=\"Object.assign({\n ['disabled']: $attrs.readonly\n }, controlAttributes)\">\n <slot />\n </select>\n </slot>\n\n <slot name=\"activity\">\n <transition name=\"select-field-fade\">\n <activity-indicator\n v-if=\"activity\"\n key=\"activity\"\n ref=\"activity\"\n :type=\"indicator\"\n :size=\"indicatorSize || size\" />\n </transition>\n </slot>\n </div>\n\n <slot\n name=\"errors\"\n v-bind=\"{ error, errors, id: $attrs.id, name: $attrs.name }\"> \n <FormControlErrors\n v-if=\"!!(error || errors)\"\n :id=\"$attrs.id\"\n v-slot=\"{ error }\"\n :name=\"$attrs.name\"\n :error=\"error\"\n :errors=\"errors\">\n <div\n invalid\n class=\"invalid-feedback\">\n {{ error }}<br>\n </div>\n </FormControlErrors>\n </slot>\n \n <slot\n name=\"feedback\"\n v-bind=\"{ feedback }\">\n <FormControlFeedback\n v-slot=\"{ feedback }\"\n :feedback=\"feedback\">\n <div\n valid\n class=\"valid-feedback\">\n {{ feedback }}\n </div>\n </FormControlFeedback>\n </slot>\n\n <slot name=\"help\">\n <small\n v-if=\"helpText\"\n ref=\"help\">\n {{ helpText }}\n </small>\n </slot>\n </div>\n</template>\n\n<style>\n.select-field,\n.select-field .form-group-inner {\n position: relative;\n transition: all .25s ease-in-out;\n}\n\n.select-field .activity-indicator {\n position: absolute;\n right: 1.25em;\n top: 50%;\n transform: translate(-1rem, -50%);\n transition: all .15s ease-in;\n}\n\n.select-field .activity-indicator-xs {\n font-size: .5em;\n right: 2em;\n}\n\n.select-field.has-activity .form-control-xs {\n padding-right: 3.75em;\n}\n\n.select-field .activity-indicator-sm {\n font-size: .5em;\n right: 2em;\n}\n\n.select-field.has-activity .form-control-sm {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-md {\n font-size: .666em;\n}\n\n.select-field.has-activity .form-control-md {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-lg {\n font-size: .75em;\n}\n\n.select-field.has-activity .form-control-lg {\n padding-right: 3em;\n}\n\n.select-field .activity-indicator-xl {\n font-size: 1em;\n}\n\n.select-field.has-activity .activity-indicator-xl ~ .form-control-xl {\n padding-right: 3.75em;\n}\n\n.select-field .activity-indicator {\n opacity: 1;\n}\n\n.select-field .select-field-fade-enter,\n.select-field .select-field-fade-leave-to {\n opacity: 0;\n}\n\n.select-field.is-valid .valid-feedback,\n.select-field.is-invalid .invalid-feedback {\n display: flex;\n}\n\n.select-field .form-control-icon {\n padding-left: 2em;\n}\n\n.select-field .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666em;\n width: 1rem;\n font-size: 1em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field-sm .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666rem;\n width: .75em;\n font-size: 1.5em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field-lg .form-group-inner-icon {\n position: absolute;\n top: 50%;\n left: .666rem;\n width: 1.25em;\n font-size: 1em;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.select-field .activity-indicator {\n opacity: 1;\n}\n\n.select-field .select-field-fade-enter,\n.select-field .select-field-fade-leave-to {\n opacity: 0;\n}\n</style>\n\n"],"names":["_sfc_main","defineComponent","ActivityIndicator","FormControl","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_resolveDirective","_normalizeClass","_ctx","_openBlock","_createElementBlock","_toDisplayString","_hoisted_1","_createCommentVNode","_renderSlot","_normalizeProps","_guardReactiveProps","_cache","args","_withDirectives","_mergeProps","$event","_createVNode","_Transition","_withCtx","_createBlock","_component_activity_indicator","_component_FormControlErrors","_createTextVNode","error","_component_FormControlFeedback","feedback"],"mappings":"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"}
@@ -5,7 +5,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
5
5
  * @param {String}
6
6
  * @default 'form-select'
7
7
  */
8
- defaultControlClass: {
8
+ formControlClass: {
9
9
  type: StringConstructor;
10
10
  default: string;
11
11
  };
@@ -13,41 +13,40 @@ declare const _sfc_main: import("vue").DefineComponent<{
13
13
  controlClass(): any;
14
14
  }, {
15
15
  shouldChangeOnFocus(): false;
16
- }, import("vue").DefineComponent<{
16
+ }, import("vue").ComponentOptionsMixin, import("vue").DefineComponent<{
17
17
  activity: {
18
18
  type: BooleanConstructor;
19
19
  default: boolean;
20
20
  };
21
21
  animated: {
22
22
  type: BooleanConstructor;
23
- default: () => any;
24
- };
25
- /**
26
- * The default class name assigned to the control element
27
- *
28
- * @param {String}
29
- * @default 'form-select'
30
- */
31
- nativeEvents: {
32
- type: ArrayConstructor;
33
- default(): string[];
34
- };
35
- defaultControlClass: {
36
- type: StringConstructor;
37
- default: () => any;
23
+ default: () => any; /**
24
+ * The default class name assigned to the control element
25
+ *
26
+ * @param {String}
27
+ * @default 'form-select'
28
+ */
29
+ };
30
+ controlClass: {
31
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
32
+ default: undefined;
38
33
  };
39
34
  error: {
40
35
  type: (BooleanConstructor | StringConstructor | ArrayConstructor)[];
41
36
  default: undefined;
42
37
  };
43
38
  errors: {
44
- type: (BooleanConstructor | ArrayConstructor | ObjectConstructor)[];
45
- default(): {};
39
+ type: (BooleanConstructor | ObjectConstructor | ArrayConstructor)[];
40
+ default: undefined;
46
41
  };
47
42
  feedback: {
48
43
  type: (StringConstructor | ArrayConstructor)[];
49
44
  default: undefined;
50
45
  };
46
+ formControlClass: {
47
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
48
+ default: () => any;
49
+ };
51
50
  group: {
52
51
  type: BooleanConstructor;
53
52
  default: () => any;
@@ -56,16 +55,14 @@ declare const _sfc_main: import("vue").DefineComponent<{
56
55
  type: (StringConstructor | NumberConstructor)[];
57
56
  default: undefined;
58
57
  };
59
- hideLabel: BooleanConstructor;
60
58
  indicator: {
61
- type: (BooleanConstructor | StringConstructor)[];
59
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor)[];
62
60
  default: () => any;
63
61
  };
64
62
  indicatorSize: {
65
63
  type: StringConstructor;
66
64
  default: undefined;
67
65
  };
68
- inline: BooleanConstructor;
69
66
  invalid: BooleanConstructor;
70
67
  label: {
71
68
  type: (StringConstructor | NumberConstructor)[];
@@ -76,61 +73,56 @@ declare const _sfc_main: import("vue").DefineComponent<{
76
73
  default: () => any;
77
74
  };
78
75
  modelValue: {
79
- default: undefined;
76
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor | ArrayConstructor)[];
77
+ default: () => undefined;
80
78
  };
81
- pill: BooleanConstructor;
82
79
  plaintext: BooleanConstructor;
83
80
  size: {
84
81
  type: StringConstructor;
85
82
  default: undefined;
86
83
  };
87
- spacing: {
88
- type: StringConstructor;
89
- default: undefined;
90
- };
91
84
  valid: BooleanConstructor;
92
85
  }, unknown, {
93
- defaultEmpty: boolean;
86
+ currentValue: null;
94
87
  hasChanged: boolean;
95
88
  hasFocus: boolean;
96
- isEmpty: boolean;
89
+ isDirty: boolean;
97
90
  }, {
98
- id(): any;
91
+ model: {
92
+ get(): any;
93
+ set(value: any): void;
94
+ };
95
+ id(): string | undefined;
96
+ isEmpty(): boolean;
97
+ isInvalid(): boolean;
98
+ isValid(): boolean;
99
99
  componentName(): any;
100
- controlAttributes(): {
101
- [k: string]: unknown;
102
- };
103
- controlClass(): any;
100
+ controlAttributes(): any;
101
+ controlClasses(): any;
104
102
  controlSizeClass(): string;
105
103
  formGroupClasses(): {
106
104
  [x: number]: boolean;
107
105
  animated: any;
108
- 'default-empty': any;
109
106
  'form-group': any;
110
107
  'has-activity': any;
111
108
  'has-changed': any;
112
109
  'has-focus': any;
113
110
  'has-icon': boolean;
111
+ 'is-dirty': any;
114
112
  'is-empty': any;
115
- 'is-invalid': boolean;
116
- 'is-valid': boolean;
113
+ 'is-invalid': any;
114
+ 'is-valid': any;
117
115
  } & (false | {
118
116
  [x: string]: boolean;
119
117
  });
120
- controlClasses(): any;
121
- hasDefaultSlot(): boolean;
122
- invalidFeedback(): any;
123
- pillClasses(): "rounded rounded-pill";
124
118
  plaintextClass(): "form-control-plaintext";
125
- validFeedback(): any;
126
119
  }, {
127
- bindEvents(el: HTMLOptionElement | HTMLSelectElement, fn: Function): void;
120
+ bindEvents(el: HTMLElement): void;
128
121
  blur(): void;
129
122
  focus(): void;
130
- getInputField(): any;
131
123
  getFieldErrors(): any;
132
- shouldChangeOnFocus(): boolean;
133
- onInput(value: any): void;
124
+ getModelValue(): any;
125
+ setModelValue(value: any): void;
134
126
  }, import("vue").DefineComponent<{
135
127
  dropShadow: {
136
128
  type: (BooleanConstructor | StringConstructor)[];
@@ -174,7 +166,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
174
166
  dropShadow: string | boolean;
175
167
  dropShadowableClassPrefix: string;
176
168
  shadowableClassPrefix: string;
177
- }>, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
169
+ }>, import("vue").ComponentOptionsMixin, ("focus" | "blur" | "change" | "click" | "keypress" | "keyup" | "keydown" | "progress" | "paste" | "update:modelValue")[], "focus" | "blur" | "change" | "click" | "keypress" | "keyup" | "keydown" | "progress" | "paste" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
178
170
  activity: {
179
171
  type: BooleanConstructor;
180
172
  default: boolean;
@@ -183,26 +175,26 @@ declare const _sfc_main: import("vue").DefineComponent<{
183
175
  type: BooleanConstructor;
184
176
  default: () => any;
185
177
  };
186
- nativeEvents: {
187
- type: ArrayConstructor;
188
- default(): string[];
189
- };
190
- defaultControlClass: {
191
- type: StringConstructor;
192
- default: () => any;
178
+ controlClass: {
179
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
180
+ default: undefined;
193
181
  };
194
182
  error: {
195
183
  type: (BooleanConstructor | StringConstructor | ArrayConstructor)[];
196
184
  default: undefined;
197
185
  };
198
186
  errors: {
199
- type: (BooleanConstructor | ArrayConstructor | ObjectConstructor)[];
200
- default(): {};
187
+ type: (BooleanConstructor | ObjectConstructor | ArrayConstructor)[];
188
+ default: undefined;
201
189
  };
202
190
  feedback: {
203
191
  type: (StringConstructor | ArrayConstructor)[];
204
192
  default: undefined;
205
193
  };
194
+ formControlClass: {
195
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
196
+ default: () => any;
197
+ };
206
198
  group: {
207
199
  type: BooleanConstructor;
208
200
  default: () => any;
@@ -211,16 +203,14 @@ declare const _sfc_main: import("vue").DefineComponent<{
211
203
  type: (StringConstructor | NumberConstructor)[];
212
204
  default: undefined;
213
205
  };
214
- hideLabel: BooleanConstructor;
215
206
  indicator: {
216
- type: (BooleanConstructor | StringConstructor)[];
207
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor)[];
217
208
  default: () => any;
218
209
  };
219
210
  indicatorSize: {
220
211
  type: StringConstructor;
221
212
  default: undefined;
222
213
  };
223
- inline: BooleanConstructor;
224
214
  invalid: BooleanConstructor;
225
215
  label: {
226
216
  type: (StringConstructor | NumberConstructor)[];
@@ -231,54 +221,57 @@ declare const _sfc_main: import("vue").DefineComponent<{
231
221
  default: () => any;
232
222
  };
233
223
  modelValue: {
234
- default: undefined;
224
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor | ArrayConstructor)[];
225
+ default: () => undefined;
235
226
  };
236
- pill: BooleanConstructor;
237
227
  plaintext: BooleanConstructor;
238
228
  size: {
239
229
  type: StringConstructor;
240
230
  default: undefined;
241
231
  };
242
- spacing: {
243
- type: StringConstructor;
244
- default: undefined;
245
- };
246
232
  valid: BooleanConstructor;
247
- }>>, {
248
- activity: boolean;
249
- animated: boolean;
250
- nativeEvents: unknown[];
251
- defaultControlClass: string;
233
+ }>> & {
234
+ onFocus?: ((...args: any[]) => any) | undefined;
235
+ onBlur?: ((...args: any[]) => any) | undefined;
236
+ onChange?: ((...args: any[]) => any) | undefined;
237
+ onClick?: ((...args: any[]) => any) | undefined;
238
+ onKeypress?: ((...args: any[]) => any) | undefined;
239
+ onKeyup?: ((...args: any[]) => any) | undefined;
240
+ onKeydown?: ((...args: any[]) => any) | undefined;
241
+ onProgress?: ((...args: any[]) => any) | undefined;
242
+ onPaste?: ((...args: any[]) => any) | undefined;
243
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
244
+ }, {
252
245
  error: string | boolean | unknown[];
253
246
  errors: boolean | unknown[] | Record<string, any>;
254
247
  feedback: string | unknown[];
248
+ activity: boolean;
249
+ animated: boolean;
250
+ controlClass: string | unknown[] | Record<string, any>;
251
+ formControlClass: string | unknown[] | Record<string, any>;
255
252
  group: boolean;
256
253
  helpText: string | number;
257
- hideLabel: boolean;
258
- indicator: string | boolean;
254
+ indicator: string | boolean | Record<string, any>;
259
255
  indicatorSize: string;
260
- inline: boolean;
261
256
  invalid: boolean;
262
257
  label: string | number;
263
258
  labelClass: string | Record<string, any>;
264
- modelValue: undefined;
265
- pill: boolean;
259
+ modelValue: string | number | boolean | unknown[] | Record<string, any>;
266
260
  plaintext: boolean;
267
261
  size: string;
268
- spacing: string;
269
262
  valid: boolean;
270
- }>, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
263
+ }>, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
271
264
  /**
272
265
  * The default class name assigned to the control element
273
266
  *
274
267
  * @param {String}
275
268
  * @default 'form-select'
276
269
  */
277
- defaultControlClass: {
270
+ formControlClass: {
278
271
  type: StringConstructor;
279
272
  default: string;
280
273
  };
281
274
  }>>, {
282
- defaultControlClass: string;
275
+ formControlClass: string;
283
276
  }>;
284
277
  export default _sfc_main;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@vue-interface/select-field",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "A Vue select field component.",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
8
+ "type": "module",
8
9
  "main": "./dist/select-field.umd.js",
9
10
  "module": "./dist/select-field.js",
10
11
  "style": "./dist/style.css",
@@ -21,12 +22,7 @@
21
22
  "scripts": {
22
23
  "dev": "vite",
23
24
  "build": "vite build",
24
- "preview": "vite preview",
25
- "pre-release": "npm run build; git add . -A; git commit -m 'pre-release commit'",
26
- "release-patch": "npm run pre-release && npm version patch -m \"%s\" && npm run release;",
27
- "release-minor": "npm run pre-release && npm version minor -m \"%s\" && npm run release;",
28
- "release-major": "npm run pre-release && npm version major -m \"%s\" && npm run release;",
29
- "release": "git add . -A; git commit; git push --tags origin; npm publish;"
25
+ "preview": "vite preview"
30
26
  },
31
27
  "repository": {
32
28
  "type": "git",
@@ -47,26 +43,23 @@
47
43
  },
48
44
  "homepage": "https://github.com/vue-interface/select-field/docs#readme",
49
45
  "dependencies": {
50
- "@vue-interface/activity-indicator": "^2.0.0-beta.0",
51
- "@vue-interface/form-control": "^1.0.0-beta.0"
46
+ "@vue-interface/activity-indicator": "^2.0.0-beta.11",
47
+ "@vue-interface/form-control": "^1.0.0-beta.15"
52
48
  },
53
49
  "peerDependencies": {
54
50
  "vue": "^3.0.0"
55
51
  },
56
52
  "devDependencies": {
57
- "@rollup/plugin-babel": "^6.0.3",
58
- "@vitejs/plugin-vue": "^3.0.1",
59
- "autoprefixer": "^10.4.2",
60
- "babel-eslint": "^10.1.0",
61
- "babel-preset-vue": "^2.0.2",
53
+ "@vitejs/plugin-vue": "^4.0.0",
54
+ "autoprefixer": "^10.4.13",
62
55
  "change-case": "^4.1.2",
63
- "eslint": "^8.29.0",
64
- "eslint-plugin-vue": "^9.8.0",
56
+ "eslint": "^8.34.0",
57
+ "eslint-plugin-vue": "^9.9.0",
65
58
  "pascalcase": "^2.0.0",
66
- "postcss": "^8.4.6",
67
- "tailwindcss": "^3.0.18",
68
- "vite": "^3.0.0",
69
- "vite-plugin-dts": "^1.7.1",
70
- "vue": "^3.2.37"
59
+ "postcss": "^8.4.21",
60
+ "tailwindcss": "^3.2.7",
61
+ "vite": "^4.1.4",
62
+ "vite-plugin-dts": "^1.7.3",
63
+ "vue": "^3.2.47"
71
64
  }
72
65
  }