{"version":3,"sources":["webpack:///./node_modules/vuetify/lib/components/VForm/VForm.js","webpack:///./src/pages/account/login.vue?9e71","webpack:///./src/pages/account/login.vue?a8ea","webpack:///./src/pages/account/login.vue?5b36","webpack:///./src/pages/account/login.vue"],"names":["extend","name","form","this","inheritAttrs","props","disabled","Boolean","lazyValidation","readonly","value","data","inputs","watchers","errorBag","watch","val","errors","Object","values","includes","$emit","deep","immediate","methods","input","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","filter","validate","length","forEach","reset","resetErrorBag","setTimeout","resetValidation","push","watchInput","found","find","i","unwatch","$delete","h","staticClass","attrs","novalidate","attrs$","on","submit","e","$slots","default","render","_vm","_h","$createElement","_c","_self","staticStyle","_v","_s","$t","model","state","callback","$$v","expression","alas","rules","loading","confirm","staticRenderFns","computed","context","t","m","root","router","$router","user","fetch","username","password","$v","logged","$o","signIn","start","location","reload","error","component","VBtn","VCard","VForm","VRow","VTextField"],"mappings":"kHAAA,wCAMe,sBAAO,OAAY,eAAmB,SAEnDA,OAAO,CACPC,KAAM,SAEN,UACE,MAAO,CACLC,KAAMC,OAIVC,cAAc,EACdC,MAAO,CACLC,SAAUC,QACVC,eAAgBD,QAChBE,SAAUF,QACVG,MAAOH,SAETI,KAAM,KAAM,CACVC,OAAQ,GACRC,SAAU,GACVC,SAAU,KAEZC,MAAO,CACLD,SAAU,CACR,QAAQE,GACN,MAAMC,EAASC,OAAOC,OAAOH,GAAKI,UAAS,GAC3CjB,KAAKkB,MAAM,SAAUJ,IAGvBK,MAAM,EACNC,WAAW,IAGfC,QAAS,CACP,WAAWC,GACT,MAAMC,EAAUD,GACPA,EAAME,OAAO,WAAYX,IAC9Bb,KAAKyB,KAAKzB,KAAKW,SAAUW,EAAMI,KAAMb,IACpC,CACDO,WAAW,IAITV,EAAW,CACfgB,KAAMJ,EAAMI,KACZC,MAAO,OACPC,eAAgB,QAelB,OAZI5B,KAAKK,eAEPK,EAASkB,eAAiBN,EAAME,OAAO,iBAAkBX,IAClDA,IAEDb,KAAKW,SAASkB,eAAeP,EAAMI,QACvChB,EAASiB,MAAQJ,EAAQD,OAG3BZ,EAASiB,MAAQJ,EAAQD,GAGpBZ,GAIT,WACE,OAAqE,IAA9DV,KAAKS,OAAOqB,OAAOR,IAAUA,EAAMS,UAAS,IAAOC,QAI5D,QACEhC,KAAKS,OAAOwB,QAAQX,GAASA,EAAMY,SACnClC,KAAKmC,iBAGP,gBACMnC,KAAKK,gBAEP+B,WAAW,KACTpC,KAAKW,SAAW,IACf,IAKP,kBACEX,KAAKS,OAAOwB,QAAQX,GAASA,EAAMe,mBACnCrC,KAAKmC,iBAGP,SAASb,GACPtB,KAAKS,OAAO6B,KAAKhB,GACjBtB,KAAKU,SAAS4B,KAAKtC,KAAKuC,WAAWjB,KAGrC,WAAWA,GACT,MAAMkB,EAAQxC,KAAKS,OAAOgC,KAAKC,GAAKA,EAAEhB,OAASJ,EAAMI,MACrD,IAAKc,EAAO,OACZ,MAAMG,EAAU3C,KAAKU,SAAS+B,KAAKC,GAAKA,EAAEhB,OAASc,EAAMd,MAErDiB,IACFA,EAAQhB,QACRgB,EAAQf,kBAGV5B,KAAKU,SAAWV,KAAKU,SAASoB,OAAOY,GAAKA,EAAEhB,OAASc,EAAMd,MAC3D1B,KAAKS,OAAST,KAAKS,OAAOqB,OAAOY,GAAKA,EAAEhB,OAASc,EAAMd,MACvD1B,KAAK4C,QAAQ5C,KAAKW,SAAU6B,EAAMd,QAKtC,OAAOmB,GACL,OAAOA,EAAE,OAAQ,CACfC,YAAa,SACbC,MAAO,CACLC,YAAY,KACThD,KAAKiD,QAEVC,GAAI,CACFC,OAAQC,GAAKpD,KAAKkB,MAAM,SAAUkC,KAEnCpD,KAAKqD,OAAOC,a,2CCjInB,IAAIC,EAAS,WAAa,IAAIC,EAAIxD,KAASyD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACb,YAAY,uBAAuBe,YAAY,CAAC,mBAAmB,gCAAgCd,MAAM,CAAC,MAAQ,WAAW,CAACY,EAAG,MAAM,CAACb,YAAY,WAAW,CAACa,EAAG,SAAS,CAACb,YAAY,mBAAmBC,MAAM,CAAC,YAAY,OAAO,MAAQ,UAAU,CAACY,EAAG,MAAM,CAACb,YAAY,OAAOC,MAAM,CAAC,MAAQ,OAAO,IAAM,sBAAsBY,EAAG,MAAM,CAACb,YAAY,cAAc,CAACU,EAAIM,GAAGN,EAAIO,GAAGP,EAAIQ,GAAG,cAAcL,EAAG,SAAS,CAACM,MAAM,CAAC1D,MAAOiD,EAAIU,MAAc,SAAEC,SAAS,SAAUC,GAAMZ,EAAI/B,KAAK+B,EAAIU,MAAO,WAAYE,IAAMC,WAAW,mBAAmB,CAACV,EAAG,eAAe,CAACZ,MAAM,CAAC,KAAO,qBAAqB,SAAW,GAAG,MAAQS,EAAIc,KAAKC,MAAM,CAAC,iBAAiB,MAAQf,EAAIQ,GAAG,OAAOC,MAAM,CAAC1D,MAAOiD,EAAIU,MAAc,SAAEC,SAAS,SAAUC,GAAMZ,EAAI/B,KAAK+B,EAAIU,MAAO,WAAYE,IAAMC,WAAW,oBAAoBV,EAAG,eAAe,CAACZ,MAAM,CAAC,KAAO,qBAAqB,KAAO,WAAW,SAAW,GAAG,MAAQS,EAAIc,KAAKC,MAAM,CAAC,iBAAiB,MAAQf,EAAIQ,GAAG,OAAOC,MAAM,CAAC1D,MAAOiD,EAAIU,MAAc,SAAEC,SAAS,SAAUC,GAAMZ,EAAI/B,KAAK+B,EAAIU,MAAO,WAAYE,IAAMC,WAAW,qBAAqB,GAAGV,EAAG,MAAM,CAACb,YAAY,eAAe,CAACa,EAAG,QAAQ,CAACZ,MAAM,CAAC,MAAQ,UAAU,QAAUS,EAAIU,MAAMM,QAAQ,UAAYhB,EAAIU,MAAMnC,SAAS,MAAQ,IAAImB,GAAG,CAAC,MAAQM,EAAIiB,UAAU,CAACjB,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,OAAO,QAAQ,GAAGL,EAAG,MAAM,CAACb,YAAY,QAAQ,CAACa,EAAG,QAAQ,CAACZ,MAAM,CAAC,MAAQ,GAAG,KAAO,GAAG,GAAK,CAAEjD,KAAM,kBAAmB,CAAC0D,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,SAAS,OAAOL,EAAG,OAAO,CAACb,YAAY,OAAOe,YAAY,CAAC,OAAS,OAAO,cAAc,oBAAoBF,EAAG,QAAQ,CAACZ,MAAM,CAAC,MAAQ,GAAG,KAAO,GAAG,GAAK,CAAEjD,KAAM,6BAA8B,CAAC0D,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,SAAS,QAAQ,IAAI,IAAI,MAC7uDU,EAAkB,G,gDCGP,iBAAgB,CAC3BC,SAAU,CACNL,KAAM,IAAMA,EAAA,MAEhB,MAAMpE,EAAO0E,GACT,IAAIC,EAAIC,GAAKF,EAAQG,KAAKf,GAAGc,GACzBE,EAASJ,EAAQG,KAAKE,QAKtBC,EAAO,eAAI,OAAOC,MAAM,SAKxBjB,EAAQ,eAAS,CACjBM,SAAS,EACTY,SAAU,GACVC,SAAU,GACVtD,UAAU,IAMd,eAAU,KACFmD,EAAK3E,MAAM+E,GAAGC,QACdP,EAAO1C,KAAK,CACRxC,KAAM,WAQlB,IAAI2E,EAAU,IAAM,eAAUzE,UAAM,OAAQ,GAAQ,YAChDkE,EAAMM,SAAU,EAChB,UACUU,EAAK3E,MAAMiF,GAAGC,OAAOC,MAAM,CAC7BN,SAAUlB,EAAMkB,SAChBC,SAAUnB,EAAMmB,WAEpBM,SAASC,SAEb,MAAOC,GACH,MAAc,8BAAVA,EACO,eAAUhB,EAAE,oBAET,2BAAVgB,EACO,eAAUhB,EAAE,YAEhB,eAAUgB,GAErB,QACI3B,EAAMM,SAAU,MAOxB,MAAO,CACHN,QACAO,cCrEsV,I,6FCO9VqB,EAAY,eACd,EACAvC,EACAmB,GACA,EACA,KACA,KACA,MAIa,aAAAoB,EAAiB,QAShC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,QAAA,KAAMC,QAAA,KAAMC,OAAA,KAAKC,aAAA","file":"js/chunk-8e1139c4.50284c85.js","sourcesContent":["// Mixins\nimport mixins from '../../util/mixins';\nimport BindsAttrs from '../../mixins/binds-attrs';\nimport { provide as RegistrableProvide } from '../../mixins/registrable';\n/* @vue/component */\n\nexport default mixins(BindsAttrs, RegistrableProvide('form')\n/* @vue/component */\n).extend({\n name: 'v-form',\n\n provide() {\n return {\n form: this\n };\n },\n\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean\n },\n data: () => ({\n inputs: [],\n watchers: [],\n errorBag: {}\n }),\n watch: {\n errorBag: {\n handler(val) {\n const errors = Object.values(val).includes(true);\n this.$emit('input', !errors);\n },\n\n deep: true,\n immediate: true\n }\n },\n methods: {\n watchInput(input) {\n const watcher = input => {\n return input.$watch('hasError', val => {\n this.$set(this.errorBag, input._uid, val);\n }, {\n immediate: true\n });\n };\n\n const 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 => {\n if (!val) return; // Only watch if we're not already doing it\n\n if (this.errorBag.hasOwnProperty(input._uid)) return;\n watchers.valid = watcher(input);\n });\n } else {\n watchers.valid = watcher(input);\n }\n\n return watchers;\n },\n\n /** @public */\n validate() {\n return this.inputs.filter(input => !input.validate(true)).length === 0;\n },\n\n /** @public */\n reset() {\n this.inputs.forEach(input => input.reset());\n this.resetErrorBag();\n },\n\n resetErrorBag() {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {};\n }, 0);\n }\n },\n\n /** @public */\n resetValidation() {\n this.inputs.forEach(input => input.resetValidation());\n this.resetErrorBag();\n },\n\n register(input) {\n this.inputs.push(input);\n this.watchers.push(this.watchInput(input));\n },\n\n unregister(input) {\n const found = this.inputs.find(i => i._uid === input._uid);\n if (!found) return;\n const unwatch = this.watchers.find(i => i._uid === found._uid);\n\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\n render(h) {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$\n },\n on: {\n submit: e => this.$emit('submit', e)\n }\n }, this.$slots.default);\n }\n\n});\n//# sourceMappingURL=VForm.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"pa-5 full-background\",staticStyle:{\"background-image\":\"url('/images/farm-load.jpg')\"},attrs:{\"align\":\"center\"}},[_c('div',{staticClass:\"mx-auto\"},[_c('v-card',{staticClass:\"pa-5 text-center\",attrs:{\"max-width\":\"90vw\",\"width\":\"300px\"}},[_c('img',{staticClass:\"mb-2\",attrs:{\"width\":\"35px\",\"src\":\"/images/logo.png\"}}),_c('div',{staticClass:\"title mb-5\"},[_vm._v(_vm._s(_vm.$t('登入農業日誌')))]),_c('v-form',{model:{value:(_vm.state.validate),callback:function ($$v) {_vm.$set(_vm.state, \"validate\", $$v)},expression:\"state.validate\"}},[_c('v-text-field',{attrs:{\"name\":\"auth.login.account\",\"outlined\":\"\",\"rules\":_vm.alas.rules(['#ms.required']),\"label\":_vm.$t('帳號')},model:{value:(_vm.state.username),callback:function ($$v) {_vm.$set(_vm.state, \"username\", $$v)},expression:\"state.username\"}}),_c('v-text-field',{attrs:{\"name\":\"auth.login.account\",\"type\":\"password\",\"outlined\":\"\",\"rules\":_vm.alas.rules(['#ms.required']),\"label\":_vm.$t('密碼')},model:{value:(_vm.state.password),callback:function ($$v) {_vm.$set(_vm.state, \"password\", $$v)},expression:\"state.password\"}})],1),_c('div',{staticClass:\"text-center\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.state.loading,\"disabled\":!_vm.state.validate,\"block\":\"\"},on:{\"click\":_vm.confirm}},[_vm._v(\" \"+_vm._s(_vm.$t('登入'))+\" \")])],1),_c('div',{staticClass:\"mt-4\"},[_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"to\":{ name: 'account.join' }}},[_vm._v(\" \"+_vm._s(_vm.$t('註冊會員'))+\" \")]),_c('span',{staticClass:\"pb-1\",staticStyle:{\"height\":\"100%\",\"border-left\":\"1px #CCC solid\"}}),_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"to\":{ name: 'account.forget-password' }}},[_vm._v(\" \"+_vm._s(_vm.$t('忘記密碼'))+\" \")])],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __awaiter } from \"tslib\";\r\nimport { showError } from '@/store';\r\nimport { alas, status } from '@/alas';\r\nimport { defineComponent, reactive, onMounted, ref } from '@vue/composition-api';\r\nexport default defineComponent({\r\n computed: {\r\n alas: () => alas\r\n },\r\n setup(props, context) {\r\n let t = m => context.root.$t(m);\r\n let router = context.root.$router;\r\n // ================\r\n //\r\n // refs\r\n //\r\n let user = ref(status.fetch('user'));\r\n // ================\r\n //\r\n // state\r\n //\r\n let state = reactive({\r\n loading: false,\r\n username: '',\r\n password: '',\r\n validate: false\r\n });\r\n // ================\r\n //\r\n // mounted\r\n //\r\n onMounted(() => {\r\n if (user.value.$v.logged) {\r\n router.push({\r\n name: 'home'\r\n });\r\n }\r\n });\r\n // ================\r\n //\r\n // methods\r\n //\r\n let confirm = () => __awaiter(this, void 0, void 0, function* () {\r\n state.loading = true;\r\n try {\r\n yield user.value.$o.signIn.start({\r\n username: state.username,\r\n password: state.password\r\n });\r\n location.reload();\r\n }\r\n catch (error) {\r\n if (error === 'UserNotConfirmedException') {\r\n return showError(t('帳號未驗證,請聯絡我們啟用帳號'));\r\n }\r\n if (error === 'NotAuthorizedException') {\r\n return showError(t('帳號或密碼錯誤'));\r\n }\r\n return showError(error);\r\n }\r\n finally {\r\n state.loading = false;\r\n }\r\n });\r\n // ================\r\n //\r\n // done\r\n //\r\n return {\r\n state,\r\n confirm\r\n };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/ts-loader/index.js??ref--12-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/ts-loader/index.js??ref--12-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./login.vue?vue&type=template&id=516606da&\"\nimport script from \"./login.vue?vue&type=script&lang=ts&\"\nexport * from \"./login.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VForm,VRow,VTextField})\n"],"sourceRoot":""}