{"version":3,"sources":["webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts"],"names":["Vue","extend","name","props","loading","type","Boolean","String","default","loaderHeight","Number","methods","genProgress","this","getSlot","$createElement","VProgressLinear","absolute","color","height","indeterminate","mixins","Themeable","functional","value","max","render","h","ctx","parseInt","content","isGreater","staticClass","class","functionalThemeClasses","VCounter","intersectable","options","data","isIntersecting","mounted","Intersect","inserted","$el","onObserve","$vnode","destroyed","unbind","entries","observer","i","length","onVisible","callback","consoleWarn","baseMixins","VInput","Intersectable","Loadable","dirtyTypes","directives","resize","ripple","inheritAttrs","appendOuterIcon","autofocus","clearable","clearIcon","counter","counterValue","Function","filled","flat","fullWidth","label","outlined","placeholder","prefix","prependInnerIcon","persistentPlaceholder","reverse","rounded","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isBooted","isClearing","computed","classes","call","isSingle","isSolo","isEnclosed","computedColor","Validatable","isFocused","computedCounterValue","internalValue","toString","hasCounter","hasDetails","get","lazyValue","set","val","$emit","isDirty","_a","isLabelActive","includes","hasLabel","labelPosition","offset","labelValue","$vuetify","rtl","left","right","showLabel","watch","$nextTick","setLabelWidth","setPrefixWidth","created","$attrs","hasOwnProperty","breaking","$watch","tryAutofocus","requestAnimationFrame","onResize","focus","onFocus","blur","e","window","$refs","input","clearableCallback","genAppendSlot","slot","$slots","push","genIcon","genSlot","genPrependInnerSlot","genIconSlot","append","appendIcon","genInputSlot","prepend","children","unshift","genClearIcon","genCounter","attrs$","maxlength","dark","light","_c","_b","$scopedSlots","genControl","genDefaultSlot","genFieldset","genTextFieldSlot","attrs","genLegend","genLabel","validationState","disabled","isDisabled","focused","for","computedId","VLabel","width","span","domProps","innerHTML","style","undefined","convertToUnit","genInput","listeners","Object","assign","listeners$","change","title","inputAttrs","is","id","readonly","isReadonly","on","onBlur","onInput","keydown","onKeyDown","ref","modifiers","quiet","genMessages","showDetails","messagesNode","counterNode","genAffix","onClick","root","attachedRoot","activeElement","target","validity","keyCode","keyCodes","enter","onMouseDown","preventDefault","stopPropagation","onMouseUp","hasMouseDown","Math","min","scrollWidth","offsetWidth","setPrependWidth","document","updateValue","hasColor"],"mappings":"kHAAA,wCAkBeA,cAAIC,SAAoBA,OAAO,CAC5CC,KAAM,WAENC,MAAO,CACLC,QAAS,CACPC,KAAM,CAACC,QAASC,QAChBC,SAAS,GAEXC,aAAc,CACZJ,KAAM,CAACK,OAAQH,QACfC,QAAS,IAIbG,QAAS,CACPC,cACE,OAAqB,IAAjBC,KAAKT,QAA0B,KAE5BU,eAAQD,KAAM,aAAeA,KAAKE,eAAeC,OAAiB,CACvEb,MAAO,CACLc,UAAU,EACVC,OAAyB,IAAjBL,KAAKT,SAAqC,KAAjBS,KAAKT,QACjCS,KAAKK,OAAS,UACfL,KAAKT,QACTe,OAAQN,KAAKJ,aACbW,eAAe,U,oCC3CzB,gBAGeJ,e,yHCQAK,iBAAOC,QAAWrB,OAAO,CACtCC,KAAM,YAENqB,YAAY,EAEZpB,MAAO,CACLqB,MAAO,CACLnB,KAAM,CAACK,OAAQH,QACfC,QAAS,IAEXiB,IAAK,CAACf,OAAQH,SAGhBmB,OAAQC,EAAGC,GACT,MAAM,MAAEzB,GAAUyB,EACZH,EAAMI,SAAS1B,EAAMsB,IAAK,IAC1BD,EAAQK,SAAS1B,EAAMqB,MAAO,IAC9BM,EAAUL,EAAM,GAAGD,OAAWC,IAAQlB,OAAOJ,EAAMqB,OACnDO,EAAYN,GAAQD,EAAQC,EAElC,OAAOE,EAAE,MAAO,CACdK,YAAa,YACbC,MAAO,CACL,cAAeF,KACZG,eAAuBN,KAE3BE,MClCQK,I,gDCMD,SAAUC,EAAeC,GACrC,OAAOrC,OAAIC,OAAO,CAChBC,KAAM,gBAENoC,KAAMA,KAAA,CACJC,gBAAgB,IAGlBC,UACEC,OAAUC,SAAS7B,KAAK8B,IAAoB,CAC1CzC,KAAM,YACNsB,MAAOX,KAAK+B,WACX/B,KAAKgC,SAGVC,YACEL,OAAUM,OAAOlC,KAAK8B,IAAoB,CACxCzC,KAAM,YACNsB,MAAOX,KAAK+B,WACX/B,KAAKgC,SAGVlC,QAAS,CACPiC,UAAWI,EAAsCC,EAAgCV,GAG/E,GAFA1B,KAAK0B,eAAiBA,EAEjBA,EAEL,IAAK,IAAIW,EAAI,EAAGC,EAASd,EAAQe,UAAUD,OAAQD,EAAIC,EAAQD,IAAK,CAClE,MAAMG,EAAYxC,KAAawB,EAAQe,UAAUF,IAEzB,oBAAbG,EAKXC,eAAYjB,EAAQe,UAAUF,GAAK,0FAJjCG,S,4ECbZ,MAAME,EAAalC,eACjBmC,OACAC,EAAc,CACZL,UAAW,CACT,WACA,kBAGJM,QAYIC,EAAa,CAAC,QAAS,OAAQ,OAAQ,OAAQ,iBAAkB,OAAQ,SAGhEJ,SAAWtD,SAAkBA,OAAO,CACjDC,KAAM,eAEN0D,WAAY,CACVC,cACAC,eAGFC,cAAc,EAEd5D,MAAO,CACL6D,gBAAiBzD,OACjB0D,UAAW3D,QACX4D,UAAW5D,QACX6D,UAAW,CACT9D,KAAME,OACNC,QAAS,UAEX4D,QAAS,CAAC9D,QAASI,OAAQH,QAC3B8D,aAAcC,SACdC,OAAQjE,QACRkE,KAAMlE,QACNmE,UAAWnE,QACXoE,MAAOnE,OACPoE,SAAUrE,QACVsE,YAAarE,OACbsE,OAAQtE,OACRuE,iBAAkBvE,OAClBwE,sBAAuBzE,QACvB0E,QAAS1E,QACT2E,QAAS3E,QACT4E,OAAQ5E,QACR6E,WAAY7E,QACZ8E,KAAM9E,QACN+E,aAAc/E,QACdgF,OAAQ/E,OACRF,KAAM,CACJA,KAAME,OACNC,QAAS,SAIb8B,KAAMA,KAAA,CACJiD,UAAU,EACVC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,aAAc,KACdC,UAAU,EACVC,YAAY,IAGdC,SAAU,CACRC,UACE,MAAO,IACFvC,OAAOnB,QAAQyD,SAASC,QAAQC,KAAKnF,MACxC,gBAAgB,EAChB,2BAA4BA,KAAK4D,UACjC,uBAAwB5D,KAAKgE,OAC7B,4BAA6BhE,KAAKoF,SAClC,qBAAsBpF,KAAKqF,OAC3B,8BAA+BrF,KAAKwE,aACpC,0BAA2BxE,KAAK2D,KAChC,uBAAwB3D,KAAK0D,OAC7B,0BAA2B1D,KAAK+E,SAChC,yBAA0B/E,KAAKsF,WAC/B,wBAAyBtF,KAAKmE,QAC9B,yBAA0BnE,KAAK8D,SAC/B,4BAA6B9D,KAAK+D,YAClC,wBAAyB/D,KAAKoE,QAC9B,uBAAwBpE,KAAKqE,SAGjCkB,gBACE,MAAMA,EAAgBC,OAAYhE,QAAQyD,SAASM,cAAcJ,KAAKnF,MAEtE,OAAKA,KAAKwE,cAAiBxE,KAAKyF,UAEzBzF,KAAKK,OAAS,UAF6BkF,GAIpDG,uBACE,MAAiC,oBAAtB1F,KAAKwD,aACPxD,KAAKwD,aAAaxD,KAAK2F,eAEzB,KAAK3F,KAAK2F,eAAiB,IAAIC,YAAYtD,QAEpDuD,aACE,OAAwB,IAAjB7F,KAAKuD,SAAqC,MAAhBvD,KAAKuD,SAExCuC,aACE,OAAOnD,OAAOnB,QAAQyD,SAASa,WAAWX,KAAKnF,OAASA,KAAK6F,YAE/DF,cAAe,CACbI,MACE,OAAO/F,KAAKgG,WAEdC,IAAKC,GACHlG,KAAKgG,UAAYE,EACjBlG,KAAKmG,MAAM,QAASnG,KAAKgG,aAG7BI,U,MACE,OAAqB,QAAdC,EAAArG,KAAKgG,iBAAS,IAAAK,OAAA,EAAAA,EAAET,WAAWtD,QAAS,GAAKtC,KAAK0E,UAEvDY,aACE,OACEtF,KAAK0D,QACL1D,KAAKqF,QACLrF,KAAK8D,UAGTwC,gBACE,OAAOtG,KAAKoG,SAAWtD,EAAWyD,SAASvG,KAAKR,OAElD4F,WACE,OACEpF,KAAKqF,QACLrF,KAAKsE,YACLtE,KAAK4D,WAEJ5D,KAAK0D,SAAW1D,KAAKwG,UAG1BnB,SACE,OAAOrF,KAAKuE,MAAQvE,KAAKwE,cAE3BiC,gBACE,IAAIC,EAAU1G,KAAKgE,SAAWhE,KAAK2G,WAAc3G,KAAK4E,YAAc,EAIpE,OAFI5E,KAAK2G,YAAc3G,KAAK6E,eAAc6B,GAAU1G,KAAK6E,cAEjD7E,KAAK4G,SAASC,MAAQ7G,KAAKmE,QAAW,CAC5C2C,KAAMJ,EACNK,MAAO,QACL,CACFD,KAAM,OACNC,MAAOL,IAGXM,YACE,OAAOhH,KAAKwG,YAAcxG,KAAKoF,UAAYpF,KAAK2G,aAElDA,aACE,OAAO3G,KAAKyF,WAAazF,KAAKsG,eAAiBtG,KAAKkE,wBAIxD+C,MAAO,CAELnD,SAAU,gBACVD,QACE7D,KAAKkH,UAAUlH,KAAKmH,gBAEtBnD,SACEhE,KAAKkH,UAAUlH,KAAKoH,iBAEtB3B,UAAW,cACX9E,MAAOuF,GACLlG,KAAKgG,UAAYE,IAIrBmB,UAEMrH,KAAKsH,OAAOC,eAAe,QAC7BC,eAAS,MAAO,SAAUxH,MAIxBA,KAAKsH,OAAOC,eAAe,yBAC7BC,eAAS,uBAAwB,eAAgBxH,MAI/CA,KAAKqE,UAAYrE,KAAK0D,QAAU1D,KAAK8D,UAAY9D,KAAKqF,SACxD5C,eAAY,uDAAwDzC,OAIxE2B,UAEE3B,KAAKyH,OAAO,IAAMzH,KAAK2G,WAAY3G,KAAKmH,eACxCnH,KAAKoD,WAAapD,KAAK0H,eACvBC,sBAAsB,KACpB3H,KAAK+E,UAAW,EAChB4C,sBAAsB,KACf3H,KAAK0B,gBACR1B,KAAK4H,gBAMb9H,QAAS,CAEP+H,QACE7H,KAAK8H,WAGPC,KAAMC,GAGJC,OAAON,sBAAsB,KAC3B3H,KAAKkI,MAAMC,OAASnI,KAAKkI,MAAMC,MAAMJ,UAGzCK,oBACEpI,KAAKkI,MAAMC,OAASnI,KAAKkI,MAAMC,MAAMN,QACrC7H,KAAKkH,UAAU,IAAMlH,KAAK2F,cAAgB,OAE5C0C,gBACE,MAAMC,EAAO,GAQb,OANItI,KAAKuI,OAAO,gBACdD,EAAKE,KAAKxI,KAAKuI,OAAO,iBACbvI,KAAKmD,iBACdmF,EAAKE,KAAKxI,KAAKyI,QAAQ,gBAGlBzI,KAAK0I,QAAQ,SAAU,QAASJ,IAEzCK,sBACE,MAAML,EAAO,GAQb,OANItI,KAAKuI,OAAO,iBACdD,EAAKE,KAAKxI,KAAKuI,OAAO,kBACbvI,KAAKiE,kBACdqE,EAAKE,KAAKxI,KAAKyI,QAAQ,iBAGlBzI,KAAK0I,QAAQ,UAAW,QAASJ,IAE1CM,cACE,MAAMN,EAAO,GAQb,OANItI,KAAKuI,OAAOM,OACdP,EAAKE,KAAKxI,KAAKuI,OAAOM,QACb7I,KAAK8I,YACdR,EAAKE,KAAKxI,KAAKyI,QAAQ,WAGlBzI,KAAK0I,QAAQ,SAAU,QAASJ,IAEzCS,eACE,MAAMZ,EAAQxF,OAAOnB,QAAQ1B,QAAQiJ,aAAa5D,KAAKnF,MAEjDgJ,EAAUhJ,KAAK2I,sBAOrB,OALIK,IACFb,EAAMc,SAAWd,EAAMc,UAAY,GACnCd,EAAMc,SAASC,QAAQF,IAGlBb,GAETgB,eACE,OAAKnJ,KAAKqD,UAILrD,KAAKoG,QAMHpG,KAAK0I,QAAQ,SAAU,QAAS,CACrC1I,KAAKyI,QAAQ,QAASzI,KAAKoI,qBANpBpI,KAAK0I,QAAQ,SAAU,QAAS,CACrC1I,KAAKE,eAAe,SANI,MAc9BkJ,a,UACE,IAAKpJ,KAAK6F,WAAY,OAAO,KAE7B,MAAMjF,GAAuB,IAAjBZ,KAAKuD,QAAmBvD,KAAKqJ,OAAOC,UAAYtJ,KAAKuD,QAE3DjE,EAAQ,CACZiK,KAAMvJ,KAAKuJ,KACXC,MAAOxJ,KAAKwJ,MACZ5I,MACAD,MAAOX,KAAK0F,sBAGd,OAA6C,QAAtC+D,EAAyB,QAAzBC,GAAArD,EAAArG,KAAK2J,cAAapG,eAAO,IAAAmG,OAAA,EAAAA,EAAAvE,KAAAkB,EAAG,CAAE/G,iBAAQ,IAAAmK,IAAIzJ,KAAKE,eAAeoB,EAAU,CAAEhC,WAEnFsK,aACE,OAAOjH,OAAOnB,QAAQ1B,QAAQ8J,WAAWzE,KAAKnF,OAEhD6J,iBACE,MAAO,CACL7J,KAAK8J,cACL9J,KAAK+J,mBACL/J,KAAKmJ,eACLnJ,KAAK4I,cACL5I,KAAKD,gBAGT+J,cACE,OAAK9J,KAAK8D,SAEH9D,KAAKE,eAAe,WAAY,CACrC8J,MAAO,CACL,eAAe,IAEhB,CAAChK,KAAKiK,cANkB,MAQ7BC,WACE,IAAKlK,KAAKgH,UAAW,OAAO,KAE5B,MAAMvF,EAAO,CACXnC,MAAO,CACLc,UAAU,EACVC,MAAOL,KAAKmK,gBACZZ,KAAMvJ,KAAKuJ,KACXa,SAAUpK,KAAKqK,WACfC,SAAUtK,KAAKoF,WAAapF,KAAKyF,aAAezF,KAAKmK,iBACrDI,IAAKvK,KAAKwK,WACV1D,KAAM9G,KAAKyG,cAAcK,KACzB0C,MAAOxJ,KAAKwJ,MACZzC,MAAO/G,KAAKyG,cAAcM,MAC1BpG,MAAOX,KAAK2G,aAIhB,OAAO3G,KAAKE,eAAeuK,OAAQhJ,EAAMxB,eAAQD,KAAM,UAAYA,KAAK6D,QAE1EoG,YACE,MAAMS,EAAS1K,KAAKsE,aAAetE,KAAK2G,aAAc3G,KAAKoG,QAA6B,EAAlBpG,KAAK2E,WACrEgG,EAAO3K,KAAKE,eAAe,OAAQ,CACvC0K,SAAU,CAAEC,UAAW,WACvB1J,YAAa,gBAGf,OAAOnB,KAAKE,eAAe,SAAU,CACnC4K,MAAO,CACLJ,MAAQ1K,KAAKoF,cAAkC2F,EAAvBC,eAAcN,KAEvC,CAACC,KAENM,WACE,MAAMC,EAAYC,OAAOC,OAAO,GAAIpL,KAAKqL,mBAClCH,EAAUI,OACjB,MAAM,MAAEC,KAAUC,GAAexL,KAAKqJ,OAEtC,OAAOrJ,KAAKE,eAAe,QAAS,CAClC4K,MAAO,GACPF,SAAU,CACRjK,MAAsB,WAAdX,KAAKR,MAAqB2L,OAAOM,GAAGzL,KAAKgG,WAAY,GAAM,KAAOhG,KAAKgG,WAEjFgE,MAAO,IACFwB,EACHpI,UAAWpD,KAAKoD,UAChBgH,SAAUpK,KAAKqK,WACfqB,GAAI1L,KAAKwK,WACTzG,YAAa/D,KAAKkE,uBAAyBlE,KAAKyF,YAAczF,KAAKwG,SAAWxG,KAAK+D,iBAAcgH,EACjGY,SAAU3L,KAAK4L,WACfpM,KAAMQ,KAAKR,MAEbqM,GAAIV,OAAOC,OAAOF,EAAW,CAC3BnD,KAAM/H,KAAK8L,OACX3D,MAAOnI,KAAK+L,QACZlE,MAAO7H,KAAK8H,QACZkE,QAAShM,KAAKiM,YAEhBC,IAAK,QACLnJ,WAAY,CAAC,CACX1D,KAAM,SACN8M,UAAW,CAAEC,OAAO,GACpBzL,MAAOX,KAAK4H,cAIlByE,cACE,IAAKrM,KAAKsM,YAAa,OAAO,KAE9B,MAAMC,EAAe5J,OAAOnB,QAAQ1B,QAAQuM,YAAYlH,KAAKnF,MACvDwM,EAAcxM,KAAKoJ,aAEzB,OAAOpJ,KAAKE,eAAe,MAAO,CAChCiB,YAAa,yBACZ,CACDoL,EACAC,KAGJzC,mBACE,OAAO/J,KAAKE,eAAe,MAAO,CAChCiB,YAAa,sBACZ,CACDnB,KAAKkK,WACLlK,KAAKgE,OAAShE,KAAKyM,SAAS,UAAY,KACxCzM,KAAKiL,WACLjL,KAAKyE,OAASzE,KAAKyM,SAAS,UAAY,QAG5CA,SAAUjN,GACR,OAAOQ,KAAKE,eAAe,MAAO,CAChCkB,MAAO,iBAAiB5B,EACxB0M,IAAK1M,GACJQ,KAAKR,KAEVsM,OAAQ9D,GACNhI,KAAKyF,WAAY,EACjBuC,GAAKhI,KAAKkH,UAAU,IAAMlH,KAAKmG,MAAM,OAAQ6B,KAE/C0E,UACM1M,KAAKyF,WAAazF,KAAKqK,aAAerK,KAAKkI,MAAMC,OAErDnI,KAAKkI,MAAMC,MAAMN,SAEnBC,QAASE,GACP,IAAKhI,KAAKkI,MAAMC,MAAO,OAEvB,MAAMwE,EAAOC,eAAa5M,KAAK8B,KAC/B,OAAK6K,EAEDA,EAAKE,gBAAkB7M,KAAKkI,MAAMC,MAC7BnI,KAAKkI,MAAMC,MAAMN,aAGrB7H,KAAKyF,YACRzF,KAAKyF,WAAY,EACjBuC,GAAKhI,KAAKmG,MAAM,QAAS6B,UAR3B,GAWF+D,QAAS/D,GACP,MAAM8E,EAAS9E,EAAE8E,OACjB9M,KAAK2F,cAAgBmH,EAAOnM,MAC5BX,KAAK0E,SAAWoI,EAAOC,UAAYD,EAAOC,SAASrI,UAErDuH,UAAWjE,GAEPA,EAAEgF,UAAYC,OAASC,OACvBlN,KAAKgG,YAAchG,KAAK8E,eAExB9E,KAAK8E,aAAe9E,KAAKgG,UACzBhG,KAAKmG,MAAM,SAAUnG,KAAK8E,eAG5B9E,KAAKmG,MAAM,UAAW6B,IAExBmF,YAAanF,GAEPA,EAAE8E,SAAW9M,KAAKkI,MAAMC,QAC1BH,EAAEoF,iBACFpF,EAAEqF,mBAGJ1K,OAAOnB,QAAQ1B,QAAQqN,YAAYhI,KAAKnF,KAAMgI,IAEhDsF,UAAWtF,GACLhI,KAAKuN,cAAcvN,KAAK6H,QAE5BlF,OAAOnB,QAAQ1B,QAAQwN,UAAUnI,KAAKnF,KAAMgI,IAE9Cb,gBACOnH,KAAK8D,WAEV9D,KAAK2E,WAAa3E,KAAKkI,MAAMrE,MACzB2J,KAAKC,IAAmC,IAA/BzN,KAAKkI,MAAMrE,MAAM6J,YAAqB,EAAI1N,KAAK8B,IAAoB6L,YAAc,IAC1F,IAENvG,iBACOpH,KAAKkI,MAAMlE,SAEhBhE,KAAK4E,YAAc5E,KAAKkI,MAAMlE,OAAO2J,cAEvCC,kBACO5N,KAAK8D,UAAa9D,KAAKkI,MAAM,mBAElClI,KAAK6E,aAAe7E,KAAKkI,MAAM,iBAAiByF,cAElDjG,eACE,IACG1H,KAAKoD,WACc,qBAAbyK,WACN7N,KAAKkI,MAAMC,MAAO,OAAO,EAE5B,MAAMwE,EAAOC,eAAa5M,KAAK8B,KAC/B,SAAK6K,GAAQA,EAAKE,gBAAkB7M,KAAKkI,MAAMC,SAE/CnI,KAAKkI,MAAMC,MAAMN,SAEV,IAETiG,YAAa5H,GAEXlG,KAAK+N,SAAW7H,EAEZA,EACFlG,KAAK8E,aAAe9E,KAAKgG,UAChBhG,KAAK8E,eAAiB9E,KAAKgG,WACpChG,KAAKmG,MAAM,SAAUnG,KAAKgG,YAG9B4B,WACE5H,KAAKmH,gBACLnH,KAAKoH,iBACLpH,KAAK4N,uB","file":"js/chunk-28ac5e86.7eba06d8.js","sourcesContent":["import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\nimport { getSlot } from '../../util/helpers'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return getSlot(this, 'progress') || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n"],"sourceRoot":""}