{"__symbolic":"module","version":4,"metadata":{"LoginComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"van-login","template":"<div class=\"container-login\">\n  <Particles\n    id=\"tsparticles\"\n    [options]=\"particlesOptions\"\n  >\n  </Particles>\n  <div class=\"login-wrapper\">\n    <h1>\n      <img src=\"assets/login.svg\" alt=\"ant-design\" />\n    </h1>\n    <form [formGroup]=\"form\" (bitFormSubmit)=\"submit($event)\">\n      <nz-form-item>\n        <nz-form-control [nzErrorTip]=\"username.ref\">\n          <nz-input-group [nzSuffix]=\"usernameSuffix\" [nzPrefix]=\"userPrefix\">\n            <input\n              type=\"text\"\n              nz-input\n              formControlName=\"username\"\n              [nzAutocomplete]=\"auto\"\n              [placeholder]=\"bit.l['usernameRequire']\"\n            />\n            <nz-autocomplete #auto>\n              <ng-container *ngFor=\"let x of users\">\n                <nz-auto-option [nzValue]=\"x\">\n                  {{ x }}\n                  <i class=\"user-del\" nz-icon nzType=\"delete\" (click)=\"deleteUsername($event, x)\"></i>\n                </nz-auto-option>\n              </ng-container>\n            </nz-autocomplete>\n            <ng-template #userPrefix>\n              <i nz-icon nzType=\"user\"></i>\n            </ng-template>\n            <ng-template #usernameSuffix>\n              <i\n                *ngIf=\"form.get('username').value\"\n                nz-icon\n                nzType=\"close-circle\"\n                (click)=\"form.get('username').reset()\"\n              >\n              </i>\n            </ng-template>\n          </nz-input-group>\n          <bit-error-tip\n            #username\n            [hasError]=\"{\n              required: bit.l['usernameRequire'],\n              minlength: bit.l['usernameCorrectly'],\n              maxlength: bit.l['usernameCorrectly']\n            }\"\n          >\n          </bit-error-tip>\n        </nz-form-control>\n      </nz-form-item>\n\n      <nz-form-item>\n        <nz-form-control [nzErrorTip]=\"password.ref\">\n          <nz-input-group [nzSuffix]=\"passwordSuffix\" [nzPrefix]=\"passwordPrefix\">\n            <input\n              nz-input\n              type=\"password\"\n              formControlName=\"password\"\n              autocomplete=\"new-password\"\n              [placeholder]=\"bit.l['passwordRequire']\"\n            />\n          </nz-input-group>\n          <ng-template #passwordPrefix>\n            <i nz-icon nzType=\"lock\"></i>\n          </ng-template>\n          <ng-template #passwordSuffix>\n            <i\n              *ngIf=\"form.get('password').value\"\n              nz-icon\n              nzType=\"close-circle\"\n              (click)=\"form.get('password').reset()\"\n            >\n            </i>\n          </ng-template>\n          <bit-error-tip\n            #password\n            [hasError]=\"{\n              required: bit.l['passwordRequire'],\n              minlength: bit.l['passwordCorrectly'],\n              maxlength: bit.l['passwordCorrectly']\n            }\"\n          >\n          </bit-error-tip>\n        </nz-form-control>\n      </nz-form-item>\n\n      <nz-form-item>\n        <nz-form-control>\n          <label nz-checkbox formControlName=\"remember\">\n            <span>{{ bit.l[\"loginRemember\"] }}</span>\n          </label>\n        </nz-form-control>\n      </nz-form-item>\n\n      <nz-form-item>\n        <nz-form-control>\n          <button\n            nz-button\n            [nzLoading]=\"logining\"\n            nzType=\"primary\"\n            [nzBlock]=\"true\"\n            [disabled]=\"!form.valid\"\n          >\n            {{ bit.l[\"login\"] }}\n          </button>\n        </nz-form-control>\n      </nz-form-item>\n    </form>\n  </div>\n</div>\n","styles":[".container-login{background:#fbfbfb;height:100%;overflow:hidden;position:relative}.i18n-btn{position:absolute;right:30px;top:30px}.login-wrapper{background:#fff;border-radius:3px;box-shadow:0 7px 25px rgba(0,0,0,.08);left:50%;margin-left:-180px;padding:40px 25px 25px;position:absolute;top:150px;width:360px}.login-wrapper h1{padding-bottom:25px;text-align:center}.login-wrapper h1 img{height:120px;width:120px}.user-del{float:right;margin-top:3px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bit","name":"BitService","line":63,"character":16},{"__symbolic":"reference","module":"van-skeleton","name":"MainService","line":64,"character":25},{"__symbolic":"reference","module":"ng-zorro-antd/notification","name":"NzNotificationService","line":65,"character":26},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":66,"character":20},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":67,"character":16},{"__symbolic":"reference","module":"ngx-bit","name":"BitSupportService","line":68,"character":21},{"__symbolic":"reference","module":"@ngx-pwa/local-storage","name":"StorageMap","line":69,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"addUsername":[{"__symbolic":"method"}],"deleteUsername":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"LoginModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"van-skeleton","name":"ShareModule","line":8,"character":4},{"__symbolic":"reference","module":"ng-particles","name":"NgParticlesModule","line":9,"character":4}],"declarations":[{"__symbolic":"reference","name":"LoginComponent"}],"exports":[{"__symbolic":"reference","name":"LoginComponent"}]}]}],"members":{}}},"origins":{"LoginComponent":"./login.component","LoginModule":"./login.module"},"importAs":"van-skeleton/login"}