{"version":3,"sources":["webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["name","provide","form","this","inheritAttrs","props","disabled","lazyValidation","readonly","value","Boolean","data","inputs","watchers","errorBag","watch","handler","errors","Object","deep","immediate","methods","watchInput","watcher","input","val","_uid","valid","shouldValidate","validate","filter","reset","resetErrorBag","setTimeout","resetValidation","register","unregister","found","find","i","unwatch","render","h","staticClass","attrs","novalidate","attrs$","on","submit","e","$slots","directives","ripple","type","default","genRipple","center","$createElement","valueComparator","model","prop","event","id","inputValue","falseValue","trueValue","multiple","label","String","hasColor","lazyValue","computed","computedColor","isDark","isMultiple","Array","isActive","item","undefined","isDirty","rippleState","genLabel","click","prevent","genInput","role","domProps","checked","blur","change","focus","keydown","ref","onBlur","onClick","onChange","length","onFocus","onKeydown"],"mappings":"q4BAoBe,sBAAO,EAAD,KAEnB,eAAmB,SAFN,OAIN,CACPA,KADO,SAGPC,QAHO,WAIL,MAAO,CAAEC,KAAMC,OAGjBC,cAPO,EASPC,MAAO,CACLC,SADK,QAELC,eAFK,QAGLC,SAHK,QAILC,MAAOC,SAGTC,KAAM,iBAAO,CACXC,OADW,GAEXC,SAFW,GAGXC,SAAU,KAGZC,MAAO,CACLD,SAAU,CACRE,QADQ,SACD,GACL,IAAMC,EAASC,OAAA,oBAAf,GAEAf,KAAA,mBAEFgB,MANQ,EAORC,WAAW,IAIfC,QAAS,CACPC,WADO,SACG,GAAY,WACdC,EAAW,SAAAC,GACf,OAAOA,EAAA,mBAA0B,SAAAC,GAC/B,OAAU,EAAV,SAAyBD,EAAzB,UACC,CAAEJ,WAAW,KAGZP,EAAqB,CACzBa,KAAMF,EADmB,KAEzBG,MAAO,aACPC,eAAgB,cAiBlB,OAdIzB,KAAJ,eAEEU,EAAA,eAA0BW,EAAA,yBAAgC,SAAAC,GACxD,IAGI,0BAA6BD,EAAjC,QAEAX,EAAA,MAAiBU,EAAjB,QAGFV,EAAA,MAAiBU,EAAjB,GAGF,GAGFM,SA/BO,WAgCL,WAAO1B,KAAKS,OAAOkB,QAAO,SAAAN,GAAK,OAAKA,EAAA,UAA7B,cAGTO,MAnCO,WAoCL5B,KAAA,gBAAoB,SAAAqB,GAAK,OAAIA,EAA7B,WACArB,KAAA,iBAEF6B,cAvCO,WAuCM,WACP7B,KAAJ,gBAEE8B,YAAW,WACT,gBADF,IAMJC,gBAhDO,WAiDL/B,KAAA,gBAAoB,SAAAqB,GAAK,OAAIA,EAA7B,qBACArB,KAAA,iBAEFgC,SApDO,SAoDC,GACNhC,KAAA,eACAA,KAAA,cAAmBA,KAAKmB,WAAxB,KAEFc,WAxDO,SAwDG,GACR,IAAMC,EAAQlC,KAAKS,OAAO0B,MAAK,SAAAC,GAAC,OAAIA,EAAA,OAAWf,EAA/C,QAEA,MAEA,IAAMgB,EAAUrC,KAAKU,SAASyB,MAAK,SAAAC,GAAC,OAAIA,EAAA,OAAWF,EAAnD,QACA,IACEG,EAAA,QACAA,EAAA,kBAGFrC,KAAA,SAAgBA,KAAKU,SAASiB,QAAO,SAAAS,GAAC,OAAIA,EAAA,OAAWF,EAArD,QACAlC,KAAA,OAAcA,KAAKS,OAAOkB,QAAO,SAAAS,GAAC,OAAIA,EAAA,OAAWF,EAAjD,QACAlC,KAAA,QAAaA,KAAb,SAA4BkC,EAA5B,SAIJI,OA3GO,SA2GD,GAAG,WACP,OAAOC,EAAE,OAAQ,CACfC,YADe,SAEfC,MAAO,EAAF,CACHC,YADK,GAEF1C,KAAK2C,QAEVC,GAAI,CACFC,OAAS,SAAAC,GAAD,OAAc,uBAEvB9C,KAAK+C,OATR,a,kCCpIJ,4BAMe,qBAAW,CACxBlD,KADwB,aAGxBmD,WAAY,CAAEC,OAAA,QAEd/C,MAAO,CACL+C,OAAQ,CACNC,KAAM,CAAC3C,QADD,QAEN4C,SAAS,IAIbjC,QAAS,CACPkC,UADO,WACwB,IAApB5C,EAAoB,uDAAtB,GACP,OAAKR,KAAL,QAEAQ,EAAA,kDAEAA,EAAA,WAAkBA,EAAA,YAAlB,GACAA,EAAA,gBAAqB,CACnBX,KADmB,SAEnBS,MAAO,CAAE+C,QAAQ,KAGZrD,KAAKsD,eAAe,MAA3B,IAVyB,U,kCCpB/B,4BAIe,qBAAW,CACxBzD,KADwB,aAExBK,MAAO,CACLqD,gBAAiB,CACfL,KADe,SAEfC,QAAS,Y,yJCCT,cACJL,EAAA,iBAIa,sBAAO,EAAD,YAAN,eAIN,CACPjD,KADO,aAGP2D,MAAO,CACLC,KADK,aAELC,MAAO,UAGTxD,MAAO,CACLyD,GADK,OAELC,WAFK,KAGLC,WAHK,KAILC,UAJK,KAKLC,SAAU,CACRb,KADQ,QAERC,QAAS,MAEXa,MAAOC,QAGTzD,KApBO,WAqBL,MAAO,CACL0D,SAAUlE,KADL,WAELmE,UAAWnE,KAAK4D,aAIpBQ,SAAU,CACRC,cADQ,WAEN,GAAKrE,KAAL,SACA,OAAIA,KAAJ,MAAuBA,KAAP,MACZA,KAAKsE,SAAWtE,KAApB,UAA2C,QAC3C,WAEFuE,WAPQ,WAQN,OAAyB,IAAlBvE,KAAK+D,UAAwC,OAAlB/D,KAAK+D,UAAqBS,MAAA,QAAcxE,KAA1E,gBAEFyE,SAVQ,WAUA,WACAnE,EAAQN,KAAd,MACMqB,EAAQrB,KAAd,cAEA,OAAIA,KAAJ,aACOwE,MAAA,QAAL,IAEOnD,EAAA,MAAW,SAAAqD,GAAI,OAAI,oBAA1B,WAGqBC,IAAnB3E,KAAK8D,gBAAT,IAAoC9D,KAAK6D,WAChCvD,EACHN,KAAKuD,gBAAgBjD,EADb,GAERC,QAFJ,GAKKP,KAAKuD,gBAAgBlC,EAAOrB,KAAnC,YAEF4E,QA5BQ,WA6BN,OAAO5E,KAAP,UAEF6E,YA/BQ,WAgCN,OAAQ7E,KAAD,YAAqBA,KAArB,gBAEHA,KAFJ,qBAAO,IAMXY,MAAO,CACLgD,WADK,SACK,GACR5D,KAAA,YACAA,KAAA,aAIJkB,QAAS,CACP4D,SADO,WAEL,IAAMd,EAAQ,qCAAd,MAEA,UAEAA,EAAA,QAAkB,CAEhBe,MAAOC,GAGT,GAPmBhB,GASrBiB,SAbO,SAaC,KACN,OAAOjF,KAAKsD,eAAe,QAAS,CAClCb,MAAO1B,OAAA,OAAc,CACnB,eAAgBf,KAAKyE,SADF,WAEnBtE,SAAUH,KAFS,WAGnB2D,GAAI3D,KAHe,WAInBkF,KAJmB,EAKnBhC,QANgC,GAQlCiC,SAAU,CACR7E,MAAON,KADC,MAERoF,QAASpF,KAAKyE,UAEhB7B,GAAI,CACFyC,KAAMrF,KADJ,OAEFsF,OAAQtF,KAFN,SAGFuF,MAAOvF,KAHL,QAIFwF,QAASxF,KAJP,UAKF+E,MAAOC,GAETS,IAAK,WAGTC,OApCO,WAqCL1F,KAAA,cAEF2F,QAvCO,SAuCA,GACL3F,KAAA,WACAA,KAAA,kBAEF4F,SA3CO,WA2CC,WACN,GAAK5F,KAAL,eAEA,IAAMM,EAAQN,KAAd,MACIqB,EAAQrB,KAAZ,cAEA,GAAIA,KAAJ,WAAqB,CACdwE,MAAA,QAAL,KACEnD,EAAA,IAGF,IAAMwE,EAASxE,EAAf,OAEAA,EAAQA,EAAA,QAAc,SAAAqD,GAAD,OAAgB,oBAArC,MAEIrD,EAAA,SAAJ,GACEA,EAAA,aAGFA,OAD4BsD,IAAnB3E,KAAK8D,gBAAT,IAAoC9D,KAAK6D,WACtC7D,KAAKuD,gBAAgBlC,EAAOrB,KAA5B,WAA8CA,KAA9C,WAAgEA,KAAxE,UACSM,EACDN,KAAKuD,gBAAgBlC,EAAOf,GAAS,KAA7C,GAEAe,EAGFrB,KAAA,eACAA,KAAA,gBACAA,KAAA,aAEF8F,QAzEO,WA0EL9F,KAAA,cAGF+F,UA7EO,SA6EE","file":"js/appointments~consults~day~hsdq~information~isi~login~meq~profile~register~report~dde583c9.fc97c339.js","sourcesContent":["// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}