@idea-ionic/auth 5.29.1 → 6.0.0
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.
- package/environment.d.ts +3 -0
- package/esm2020/environment.mjs +25 -0
- package/esm2020/idea-ionic-auth.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/esm2020/src/auth.module.mjs +70 -0
- package/esm2020/src/auth.service.mjs +317 -0
- package/esm2020/src/confirmPassword.page.mjs +59 -0
- package/esm2020/src/forgotPassword.page.mjs +48 -0
- package/esm2020/src/newPassword.page.mjs +52 -0
- package/esm2020/src/resendLink.page.mjs +52 -0
- package/esm2020/src/signIn.page.mjs +91 -0
- package/esm2020/src/signUp.page.mjs +79 -0
- package/fesm2015/idea-ionic-auth.mjs +741 -0
- package/fesm2015/idea-ionic-auth.mjs.map +1 -0
- package/fesm2020/idea-ionic-auth.mjs +726 -0
- package/fesm2020/idea-ionic-auth.mjs.map +1 -0
- package/idea-ionic-auth.d.ts +4 -6
- package/package.json +31 -19
- package/src/auth.module.d.ts +15 -0
- package/src/auth.service.d.ts +67 -3
- package/src/confirmPassword.page.d.ts +24 -0
- package/src/forgotPassword.page.d.ts +15 -0
- package/src/newPassword.page.d.ts +23 -1
- package/src/resendLink.page.d.ts +15 -0
- package/src/signIn.page.d.ts +45 -0
- package/src/signUp.page.d.ts +26 -1
- package/bundles/idea-ionic-auth.umd.js +0 -992
- package/bundles/idea-ionic-auth.umd.js.map +0 -1
- package/bundles/idea-ionic-auth.umd.min.js +0 -16
- package/bundles/idea-ionic-auth.umd.min.js.map +0 -1
- package/esm2015/environment.js +0 -22
- package/esm2015/environment.ngsummary.json +0 -1
- package/esm2015/idea-ionic-auth.js +0 -8
- package/esm2015/idea-ionic-auth.ngsummary.json +0 -1
- package/esm2015/node_modules/@angular/common/common.ngfactory.js +0 -5
- package/esm2015/node_modules/@angular/common/common.ngsummary.json +0 -1
- package/esm2015/node_modules/@angular/common/http/http.ngsummary.json +0 -1
- package/esm2015/node_modules/@angular/core/core.ngfactory.js +0 -4
- package/esm2015/node_modules/@angular/core/core.ngsummary.json +0 -1
- package/esm2015/node_modules/@angular/forms/forms.ngfactory.js +0 -9
- package/esm2015/node_modules/@angular/forms/forms.ngsummary.json +0 -1
- package/esm2015/node_modules/@angular/router/router.ngfactory.js +0 -12
- package/esm2015/node_modules/@angular/router/router.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/core-plugin-definitions.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/definitions.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/global.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/accessibility.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/app.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/browser.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/camera.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/clipboard.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/device.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/filesystem.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/geolocation.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/local-notifications.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/modals.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/motion.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/network.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/permissions.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/share.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/splash-screen.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/storage.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web/toast.ngsummary.json +0 -1
- package/esm2015/node_modules/@capacitor/core/dist/esm/web-plugins.ngsummary.json +0 -1
- package/esm2015/node_modules/@idea-ionic/common/idea-ionic-common.ngfactory.js +0 -1546
- package/esm2015/node_modules/@idea-ionic/common/idea-ionic-common.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/angular/ionic-angular.ngfactory.js +0 -524
- package/esm2015/node_modules/@ionic/angular/ionic-angular.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/angular/node_modules/tslib/tslib.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/action-sheet/action-sheet-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/alert/alert-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/checkbox/checkbox-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/content/content-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/datetime/datetime-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/input/input-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/loading/loading-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/menu/menu-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/modal/modal-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/nav/constants.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/nav/nav-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/nav/view-controller.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/picker/picker-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/popover/popover-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/radio-group/radio-group-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/range/range-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/refresher/refresher-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/reorder-group/reorder-group-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/route/route-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/router/utils/interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/searchbar/searchbar-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/segment/segment-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/select/select-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/select-popover/select-popover-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/spinner/spinner-configs.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/spinner/spinner-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/tab-bar/tab-bar-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/textarea/textarea-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/toast/toast-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/toggle/toggle-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components/virtual-scroll/virtual-scroll-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/components.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/global/config.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/stencil-public-runtime.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/animation/animation-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/animation/animation.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/animation/cubic-bezier.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/config.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/gesture/gesture-controller.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/gesture/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/menu-controller/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/overlays-interface.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/overlays.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/platform.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/sanitization/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/transition/index.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/transition/ios.transition.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/core/dist/types/utils/transition/md.transition.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/storage/ionic-storage.ngfactory.js +0 -5
- package/esm2015/node_modules/@ionic/storage/ionic-storage.ngsummary.json +0 -1
- package/esm2015/node_modules/@ionic/storage/node_modules/tslib/tslib.ngsummary.json +0 -1
- package/esm2015/node_modules/amazon-cognito-identity-js/index.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/APIRequestLog.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/RCAttachedResource.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/RCConfiguredFolder.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/RCFolder.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/RCResource.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/address.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/amazonTranslateLanguages.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/announcement.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/appointment.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/attachment.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/booleanChoices.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/cacheable.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/cacheableResource.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/calendar.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/check.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/clientInfo.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/contactRequest.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/contacts.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/countries.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/customBlockMeta.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/customFieldMeta.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/customFieldTypes.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/customSectionMeta.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/delta.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/emailChangeRequest.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/emailData.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/epoch.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/errorReport.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/errorWhitelisted.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/index.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/invitation.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/ionicons.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/label.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/labelVariable.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/languages.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/languages.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/limitCounter.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/markdown.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/membership.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/notification.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/pdfTemplate.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/projectPlan.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/projectSubscription.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/pushNotificationsDevice.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/pushNotificationsPlatforms.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/resource.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/sentiment.enum.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/signature.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/signedURL.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/stringVariable.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/suggestion.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/team.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/teamModules.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/timeInterval.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/user.model.ngsummary.json +0 -1
- package/esm2015/node_modules/idea-toolbox/dist/utils.ngsummary.json +0 -1
- package/esm2015/node_modules/ionicons/dist/types/components/icon/icon.ngsummary.json +0 -1
- package/esm2015/node_modules/ionicons/dist/types/components/icon/utils.ngsummary.json +0 -1
- package/esm2015/node_modules/ionicons/dist/types/components.ngsummary.json +0 -1
- package/esm2015/node_modules/ionicons/dist/types/index.ngsummary.json +0 -1
- package/esm2015/node_modules/ionicons/dist/types/stencil-public-runtime.ngsummary.json +0 -1
- package/esm2015/node_modules/localforage/typings/localforage.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/index.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/AsyncSubject.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/BehaviorSubject.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/InnerSubscriber.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Notification.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Observable.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Operator.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/OuterSubscriber.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/ReplaySubject.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Scheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Subject.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Subscriber.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/Subscription.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/config.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/ConnectableObservable.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/bindCallback.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/bindNodeCallback.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/combineLatest.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/concat.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/defer.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/empty.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/forkJoin.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/from.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/fromEvent.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/fromEventPattern.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/generate.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/iif.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/interval.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/merge.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/never.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/of.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/onErrorResumeNext.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/pairs.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/partition.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/race.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/range.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/throwError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/timer.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/using.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/observable/zip.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/operators/groupBy.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduled/scheduled.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/Action.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/AsapScheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/AsyncAction.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/AsyncScheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/QueueScheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/animationFrame.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/asap.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/async.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/scheduler/queue.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/symbol/observable.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/types.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/EmptyError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/ObjectUnsubscribedError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/TimeoutError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/UnsubscriptionError.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/identity.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/isObservable.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/noop.ngsummary.json +0 -1
- package/esm2015/node_modules/rxjs/internal/util/pipe.ngsummary.json +0 -1
- package/esm2015/node_modules/signature_pad/dist/types/point.ngsummary.json +0 -1
- package/esm2015/node_modules/signature_pad/dist/types/signature_pad.ngsummary.json +0 -1
- package/esm2015/node_modules/tslib/tslib.ngsummary.json +0 -1
- package/esm2015/public-api.ngsummary.json +0 -1
- package/esm2015/src/auth.module.js +0 -42
- package/esm2015/src/auth.module.ngfactory.js +0 -24
- package/esm2015/src/auth.module.ngsummary.json +0 -1
- package/esm2015/src/auth.scss.shim.ngstyle.js +0 -3
- package/esm2015/src/auth.service.js +0 -214
- package/esm2015/src/auth.service.ngsummary.json +0 -1
- package/esm2015/src/confirmPassword.page.js +0 -59
- package/esm2015/src/confirmPassword.page.ngfactory.js +0 -70
- package/esm2015/src/confirmPassword.page.ngsummary.json +0 -1
- package/esm2015/src/forgotPassword.page.js +0 -48
- package/esm2015/src/forgotPassword.page.ngfactory.js +0 -43
- package/esm2015/src/forgotPassword.page.ngsummary.json +0 -1
- package/esm2015/src/newPassword.page.js +0 -54
- package/esm2015/src/newPassword.page.ngfactory.js +0 -42
- package/esm2015/src/newPassword.page.ngsummary.json +0 -1
- package/esm2015/src/resendLink.page.js +0 -54
- package/esm2015/src/resendLink.page.ngfactory.js +0 -42
- package/esm2015/src/resendLink.page.ngsummary.json +0 -1
- package/esm2015/src/signIn.page.js +0 -84
- package/esm2015/src/signIn.page.ngfactory.js +0 -82
- package/esm2015/src/signIn.page.ngsummary.json +0 -1
- package/esm2015/src/signUp.page.js +0 -74
- package/esm2015/src/signUp.page.ngfactory.js +0 -70
- package/esm2015/src/signUp.page.ngsummary.json +0 -1
- package/fesm2015/idea-ionic-auth.js +0 -592
- package/fesm2015/idea-ionic-auth.js.map +0 -1
- package/idea-ionic-auth.metadata.json +0 -1
- package/src/auth.module.ngfactory.d.ts +0 -3
- package/src/auth.scss.shim.ngstyle.d.ts +0 -1
- package/src/confirmPassword.page.ngfactory.d.ts +0 -1
- package/src/forgotPassword.page.ngfactory.d.ts +0 -1
- package/src/newPassword.page.ngfactory.d.ts +0 -1
- package/src/resendLink.page.ngfactory.d.ts +0 -1
- package/src/signIn.page.ngfactory.d.ts +0 -1
- package/src/signUp.page.ngfactory.d.ts +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ionic/angular";
|
|
4
|
+
import * as i2 from "@idea-ionic/common";
|
|
5
|
+
import * as i3 from "./auth.service";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
export class IDEAForgotPasswordPage {
|
|
8
|
+
constructor(navCtrl, message, loading, auth, t) {
|
|
9
|
+
this.navCtrl = navCtrl;
|
|
10
|
+
this.message = message;
|
|
11
|
+
this.loading = loading;
|
|
12
|
+
this.auth = auth;
|
|
13
|
+
this.t = t;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* "I forgot my password" procedure.
|
|
17
|
+
*/
|
|
18
|
+
async forgotPassword() {
|
|
19
|
+
await this.loading.show();
|
|
20
|
+
this.auth
|
|
21
|
+
.forgotPassword(this.email)
|
|
22
|
+
.then(() => {
|
|
23
|
+
this.message.success('IDEA_AUTH.PASSWORD_RESET_CODE_SENT');
|
|
24
|
+
this.goToConfirmPassword();
|
|
25
|
+
})
|
|
26
|
+
.catch(() => this.message.error('IDEA_AUTH.USER_NOT_FOUND'))
|
|
27
|
+
.finally(() => this.loading.hide());
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Go to the confirm password page.
|
|
31
|
+
*/
|
|
32
|
+
goToConfirmPassword() {
|
|
33
|
+
this.navCtrl.navigateForward(['auth/confirm-password'], { queryParams: { email: this.email || null } });
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Go to auth page.
|
|
37
|
+
*/
|
|
38
|
+
goToAuth() {
|
|
39
|
+
this.navCtrl.navigateBack(['auth']);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
IDEAForgotPasswordPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEAForgotPasswordPage, deps: [{ token: i1.NavController }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }, { token: i2.IDEATranslationsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
IDEAForgotPasswordPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IDEAForgotPasswordPage, selector: "idea-forgot-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.RESET_MY_PASSWORD_HINT')\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT')\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"], components: [{ type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2.IDEATranslatePipe } });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEAForgotPasswordPage, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'idea-forgot-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.RESET_MY_PASSWORD_HINT')\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT')\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"] }]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }, { type: i2.IDEATranslationsService }]; } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290UGFzc3dvcmQucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVUxQyxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQ1MsT0FBc0IsRUFDdEIsT0FBMkIsRUFDM0IsT0FBMkIsRUFDM0IsSUFBcUIsRUFDckIsQ0FBMEI7UUFKMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixNQUFDLEdBQUQsQ0FBQyxDQUF5QjtJQUNoQyxDQUFDO0lBRUo7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYztRQUN6QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUk7YUFDTixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQzthQUMzRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDOzttSEF4Q1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsNERDVm5DLGkrREFvREE7MkZEMUNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJREVBQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJREVBTWVzc2FnZVNlcnZpY2UsIElERUFMb2FkaW5nU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWZvcmdvdC1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnZm9yZ290UGFzc3dvcmQucGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2F1dGguc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFGb3Jnb3RQYXNzd29yZFBhZ2Uge1xuICAvKipcbiAgICogVGhlIGVtYWlsIGFkZHJlc3MgdXNlZCB0byBpZGVudGlmeSB0aGUgYWNjb3VudC5cbiAgICovXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYXZDdHJsOiBOYXZDb250cm9sbGVyLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBJREVBTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aDogSURFQUF1dGhTZXJ2aWNlLFxuICAgIHB1YmxpYyB0OiBJREVBVHJhbnNsYXRpb25zU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFwiSSBmb3Jnb3QgbXkgcGFzc3dvcmRcIiBwcm9jZWR1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yZ290UGFzc3dvcmQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkaW5nLnNob3coKTtcbiAgICB0aGlzLmF1dGhcbiAgICAgIC5mb3Jnb3RQYXNzd29yZCh0aGlzLmVtYWlsKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlBBU1NXT1JEX1JFU0VUX0NPREVfU0VOVCcpO1xuICAgICAgICB0aGlzLmdvVG9Db25maXJtUGFzc3dvcmQoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4gdGhpcy5tZXNzYWdlLmVycm9yKCdJREVBX0FVVEguVVNFUl9OT1RfRk9VTkQnKSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZy5oaWRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIHRoZSBjb25maXJtIHBhc3N3b3JkIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ29Ub0NvbmZpcm1QYXNzd29yZCgpIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVGb3J3YXJkKFsnYXV0aC9jb25maXJtLXBhc3N3b3JkJ10sIHsgcXVlcnlQYXJhbXM6IHsgZW1haWw6IHRoaXMuZW1haWwgfHwgbnVsbCB9IH0pO1xuICB9XG4gIC8qKlxuICAgKiBHbyB0byBhdXRoIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ29Ub0F1dGgoKSB7XG4gICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlQmFjayhbJ2F1dGgnXSk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGZvcm0gY2xhc3M9XCJmbGV4Qm94XCI+XG4gICAgPGlvbi1jYXJkIGNsYXNzPVwiYXV0aENhcmRcIj5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSBjb2xvcj1cInByaW1hcnlcIj57eyAnSURFQV9BVVRILlBBU1NXT1JEX1JFU0VUJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZT57eyAnSURFQV9BVVRILlBBU1NXT1JEX1JFU0VUX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxpb24taXRlbT5cbiAgICAgICAgICA8aW9uLWxhYmVsIHBvc2l0aW9uPVwiaW5saW5lXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvbi1jaXJjbGVcIiBjb2xvcj1cInByaW1hcnlcIj4gPC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQuXygnSURFQV9BVVRILkVNQUlMJylcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkVNQUlMX0hJTlQnKVwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbWFpbFwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiZm9yZ290UGFzc3dvcmQoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5SRVNFVF9NWV9QQVNTV09SRF9ISU5UJylcIiAoY2xpY2spPVwiZm9yZ290UGFzc3dvcmQoKVwiPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguUkVTRVRfTVlfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkFMUkVBRFlfSEFWRV9BX1JFU0VUX0NPREVfSElOVCcpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub0NvbmZpcm1QYXNzd29yZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguQUxSRUFEWV9IQVZFX0FfUkVTRVRfQ09ERScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgZXhwYW5kPVwiYmxvY2tcIlxuICAgICAgICAgIGNsYXNzPVwic21hbGxDYXNlQnV0dG9uXCJcbiAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguQkFDS19UT19TSUdOX0lOX0hJTlQnKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9BdXRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5CQUNLX1RPX1NJR05fSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ionic/angular";
|
|
4
|
+
import * as i2 from "@idea-ionic/common";
|
|
5
|
+
import * as i3 from "./auth.service";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
import * as i5 from "@angular/common";
|
|
8
|
+
export class IDEANewPasswordPage {
|
|
9
|
+
constructor(navCtrl, tc, message, loading, auth, t) {
|
|
10
|
+
this.navCtrl = navCtrl;
|
|
11
|
+
this.tc = tc;
|
|
12
|
+
this.message = message;
|
|
13
|
+
this.loading = loading;
|
|
14
|
+
this.auth = auth;
|
|
15
|
+
this.t = t;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.email = this.tc.get('email', true);
|
|
19
|
+
this.password = this.tc.get('password', true);
|
|
20
|
+
if (!this.email || !this.password)
|
|
21
|
+
this.goToAuth();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Confirm a new password (auth flow that follows a registration or a password reset).
|
|
25
|
+
*/
|
|
26
|
+
async confirmNewPassword() {
|
|
27
|
+
this.errorMsg = null;
|
|
28
|
+
await this.loading.show();
|
|
29
|
+
this.auth
|
|
30
|
+
.confirmNewPassword(this.email, this.password, this.newPassword)
|
|
31
|
+
// we are logged in
|
|
32
|
+
.then(() => window.location.assign(''))
|
|
33
|
+
.catch(() => {
|
|
34
|
+
this.errorMsg = this.t._('IDEA_AUTH.PASSWORD_POLICY_VIOLATION', { n: 8 });
|
|
35
|
+
this.message.error(this.errorMsg, true);
|
|
36
|
+
})
|
|
37
|
+
.finally(() => this.loading.hide());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Go to auth page.
|
|
41
|
+
*/
|
|
42
|
+
goToAuth() {
|
|
43
|
+
this.navCtrl.navigateBack(['auth']);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
IDEANewPasswordPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEANewPasswordPage, deps: [{ token: i1.NavController }, { token: i2.IDEATinCanService }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }, { token: i2.IDEATranslationsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
IDEANewPasswordPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IDEANewPasswordPage, selector: "idea-new-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"new-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.CHOOSE_A_PASSWORD')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmNewPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT')\" (click)=\"confirmNewPassword()\">\n {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"], components: [{ type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2.IDEATranslatePipe } });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEANewPasswordPage, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'idea-new-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"new-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.CHOOSE_A_PASSWORD')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmNewPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT')\" (click)=\"confirmNewPassword()\">\n {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"] }]
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEATinCanService }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }, { type: i2.IDEATranslationsService }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3UGFzc3dvcmQucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvbmV3UGFzc3dvcmQucGFnZS50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvbmV3UGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFXbEQsTUFBTSxPQUFPLG1CQUFtQjtJQWtCOUIsWUFDUyxPQUFzQixFQUN0QixFQUFxQixFQUNyQixPQUEyQixFQUMzQixPQUEyQixFQUMzQixJQUFxQixFQUNyQixDQUEwQjtRQUwxQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLE1BQUMsR0FBRCxDQUFDLENBQXlCO0lBQ2hDLENBQUM7SUFDRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSTthQUNOLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2hFLG1CQUFtQjthQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdEMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnSEF0RFUsbUJBQW1CO29HQUFuQixtQkFBbUIseURDWGhDLDZ5REErQ0E7MkZEcENhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElERUFNZXNzYWdlU2VydmljZSwgSURFQUxvYWRpbmdTZXJ2aWNlLCBJREVBVGluQ2FuU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtbmV3LXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICduZXdQYXNzd29yZC5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYXV0aC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQU5ld1Bhc3N3b3JkUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgZW1haWwgYWRkcmVzcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhY2NvdW50LlxuICAgKi9cbiAgcHVibGljIGVtYWlsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB0ZW1wb3JhcnkgcGFzc3dvcmQuXG4gICAqL1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuZXcgcGFzc3dvcmQgZm9yIHRoZSBhY2NvdW50LlxuICAgKi9cbiAgcHVibGljIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IGluIHRoZSBVSSwgaWYgYW55LlxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIsXG4gICAgcHVibGljIHRjOiBJREVBVGluQ2FuU2VydmljZSxcbiAgICBwdWJsaWMgbWVzc2FnZTogSURFQU1lc3NhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2FkaW5nOiBJREVBTG9hZGluZ1NlcnZpY2UsXG4gICAgcHVibGljIGF1dGg6IElERUFBdXRoU2VydmljZSxcbiAgICBwdWJsaWMgdDogSURFQVRyYW5zbGF0aW9uc1NlcnZpY2VcbiAgKSB7fVxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5lbWFpbCA9IHRoaXMudGMuZ2V0KCdlbWFpbCcsIHRydWUpO1xuICAgIHRoaXMucGFzc3dvcmQgPSB0aGlzLnRjLmdldCgncGFzc3dvcmQnLCB0cnVlKTtcbiAgICBpZiAoIXRoaXMuZW1haWwgfHwgIXRoaXMucGFzc3dvcmQpIHRoaXMuZ29Ub0F1dGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maXJtIGEgbmV3IHBhc3N3b3JkIChhdXRoIGZsb3cgdGhhdCBmb2xsb3dzIGEgcmVnaXN0cmF0aW9uIG9yIGEgcGFzc3dvcmQgcmVzZXQpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbmZpcm1OZXdQYXNzd29yZCgpIHtcbiAgICB0aGlzLmVycm9yTXNnID0gbnVsbDtcbiAgICBhd2FpdCB0aGlzLmxvYWRpbmcuc2hvdygpO1xuICAgIHRoaXMuYXV0aFxuICAgICAgLmNvbmZpcm1OZXdQYXNzd29yZCh0aGlzLmVtYWlsLCB0aGlzLnBhc3N3b3JkLCB0aGlzLm5ld1Bhc3N3b3JkKVxuICAgICAgLy8gd2UgYXJlIGxvZ2dlZCBpblxuICAgICAgLnRoZW4oKCkgPT4gd2luZG93LmxvY2F0aW9uLmFzc2lnbignJykpXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTXNnID0gdGhpcy50Ll8oJ0lERUFfQVVUSC5QQVNTV09SRF9QT0xJQ1lfVklPTEFUSU9OJywgeyBuOiA4IH0pO1xuICAgICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IodGhpcy5lcnJvck1zZywgdHJ1ZSk7XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nLmhpZGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gYXV0aCBwYWdlLlxuICAgKi9cbiAgcHVibGljIGdvVG9BdXRoKCkge1xuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUJhY2soWydhdXRoJ10pO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxmb3JtIGNsYXNzPVwiZmxleEJveFwiPlxuICAgIDxpb24tY2FyZCBjbGFzcz1cImF1dGhDYXJkXCI+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgY29sb3I9XCJwcmltYXJ5XCI+e3sgJ0lERUFfQVVUSC5DSE9PU0VfQV9QQVNTV09SRCcgfCB0cmFuc2xhdGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGU+e3sgJ0lERUFfQVVUSC5ZT1VfTkVFRF9UT19DSE9PU0VfQV9ORVdfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3JCb3hcIiAqbmdJZj1cImVycm9yTXNnXCI+XG4gICAgICAgICAgPGI+IHt7ICdJREVBX0FVVEguRVJST1InIHwgdHJhbnNsYXRlIH19LiA8L2I+XG4gICAgICAgICAge3sgZXJyb3JNc2cgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJrZXlcIiBjb2xvcj1cInByaW1hcnlcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBwYXR0ZXJuPVwiLns4LH1cIlxuICAgICAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXG4gICAgICAgICAgICBbY2xlYXJPbkVkaXRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQuXygnSURFQV9BVVRILlBBU1NXT1JEJylcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkNIT09TRV9BX1BBU1NXT1JEJylcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3UGFzc3dvcmRcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImNvbmZpcm1OZXdQYXNzd29yZCgpXCJcbiAgICAgICAgICA+PC9pb24taW5wdXQ+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkNPTkZJUk1fTkVXX1BBU1NXT1JEX0hJTlQnKVwiIChjbGljayk9XCJjb25maXJtTmV3UGFzc3dvcmQoKVwiPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguQ09ORklSTV9ORVdfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTl9ISU5UJylcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvQXV0aCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguQkFDS19UT19TSUdOX0lOJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cbiAgPC9mb3JtPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ionic/angular";
|
|
4
|
+
import * as i2 from "@idea-ionic/common";
|
|
5
|
+
import * as i3 from "./auth.service";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
import * as i5 from "@angular/common";
|
|
8
|
+
export class IDEAResendLinkPage {
|
|
9
|
+
constructor(navCtrl, message, loading, auth, t) {
|
|
10
|
+
this.navCtrl = navCtrl;
|
|
11
|
+
this.message = message;
|
|
12
|
+
this.loading = loading;
|
|
13
|
+
this.auth = auth;
|
|
14
|
+
this.t = t;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resend the link to confirm the email address.
|
|
18
|
+
*/
|
|
19
|
+
async resendConfirmationLink() {
|
|
20
|
+
this.errorMsg = null;
|
|
21
|
+
if (!this.email) {
|
|
22
|
+
this.errorMsg = this.t._('IDEA_AUTH.VALID_EMAIL_OBLIGATORY');
|
|
23
|
+
this.message.error('IDEA_AUTH.SENDING_FAILED');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
await this.loading.show();
|
|
27
|
+
this.auth
|
|
28
|
+
.resendConfirmationCode(this.email)
|
|
29
|
+
.then(() => {
|
|
30
|
+
this.message.success('IDEA_AUTH.CONFIRMATION_LINK_SENT');
|
|
31
|
+
this.goToAuth();
|
|
32
|
+
})
|
|
33
|
+
.catch(() => {
|
|
34
|
+
this.errorMsg = this.t._('IDEA_AUTH.IS_THE_EMAIL_CORRECT');
|
|
35
|
+
this.message.error('IDEA_AUTH.SENDING_FAILED');
|
|
36
|
+
})
|
|
37
|
+
.finally(() => this.loading.hide());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Go to auth page.
|
|
41
|
+
*/
|
|
42
|
+
goToAuth() {
|
|
43
|
+
this.navCtrl.navigateBack(['auth']);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
IDEAResendLinkPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEAResendLinkPage, deps: [{ token: i1.NavController }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }, { token: i2.IDEATranslationsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
IDEAResendLinkPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IDEAResendLinkPage, selector: "idea-resend-link", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"resendConfirmationLink()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.RESEND_LINK_HINT')\" (click)=\"resendConfirmationLink()\">\n {{ 'IDEA_AUTH.RESEND_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"], components: [{ type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2.IDEATranslatePipe } });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEAResendLinkPage, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'idea-resend-link', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"resendConfirmationLink()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"t._('IDEA_AUTH.RESEND_LINK_HINT')\" (click)=\"resendConfirmationLink()\">\n {{ 'IDEA_AUTH.RESEND_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"] }]
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }, { type: i2.IDEATranslationsService }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kTGluay5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9yZXNlbmRMaW5rLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL3Jlc2VuZExpbmsucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFXMUMsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixZQUNTLE9BQXNCLEVBQ3RCLE9BQTJCLEVBQzNCLE9BQTJCLEVBQzNCLElBQXFCLEVBQ3JCLENBQTBCO1FBSjFCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDckIsTUFBQyxHQUFELENBQUMsQ0FBeUI7SUFDaEMsQ0FBQztJQUVKOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQy9DLE9BQU87U0FDUjtRQUNELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSTthQUNOLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7K0dBL0NVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdEQ1gvQiwyekRBK0NBOzJGRHBDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSURFQU1lc3NhZ2VTZXJ2aWNlLCBJREVBTG9hZGluZ1NlcnZpY2UsIElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLXJlc2VuZC1saW5rJyxcbiAgdGVtcGxhdGVVcmw6ICdyZXNlbmRMaW5rLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWydhdXRoLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBUmVzZW5kTGlua1BhZ2Uge1xuICAvKipcbiAgICogVGhlIGVtYWlsIGFkZHJlc3MgdXNlZCB0byBpZGVudGlmeSB0aGUgYWNjb3VudC5cbiAgICovXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBpbiB0aGUgVUksIGlmIGFueS5cbiAgICovXG4gIHB1YmxpYyBlcnJvck1zZzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYXZDdHJsOiBOYXZDb250cm9sbGVyLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBJREVBTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aDogSURFQUF1dGhTZXJ2aWNlLFxuICAgIHB1YmxpYyB0OiBJREVBVHJhbnNsYXRpb25zU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJlc2VuZCB0aGUgbGluayB0byBjb25maXJtIHRoZSBlbWFpbCBhZGRyZXNzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2VuZENvbmZpcm1hdGlvbkxpbmsoKSB7XG4gICAgdGhpcy5lcnJvck1zZyA9IG51bGw7XG4gICAgaWYgKCF0aGlzLmVtYWlsKSB7XG4gICAgICB0aGlzLmVycm9yTXNnID0gdGhpcy50Ll8oJ0lERUFfQVVUSC5WQUxJRF9FTUFJTF9PQkxJR0FUT1JZJyk7XG4gICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5TRU5ESU5HX0ZBSUxFRCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmxvYWRpbmcuc2hvdygpO1xuICAgIHRoaXMuYXV0aFxuICAgICAgLnJlc2VuZENvbmZpcm1hdGlvbkNvZGUodGhpcy5lbWFpbClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlLnN1Y2Nlc3MoJ0lERUFfQVVUSC5DT05GSVJNQVRJT05fTElOS19TRU5UJyk7XG4gICAgICAgIHRoaXMuZ29Ub0F1dGgoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTXNnID0gdGhpcy50Ll8oJ0lERUFfQVVUSC5JU19USEVfRU1BSUxfQ09SUkVDVCcpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5TRU5ESU5HX0ZBSUxFRCcpO1xuICAgICAgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZy5oaWRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIGF1dGggcGFnZS5cbiAgICovXG4gIHB1YmxpYyBnb1RvQXV0aCgpIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVCYWNrKFsnYXV0aCddKTtcbiAgfVxufVxuIiwiPGlvbi1jb250ZW50PlxuICA8Zm9ybSBjbGFzcz1cImZsZXhCb3hcIj5cbiAgICA8aW9uLWNhcmQgY2xhc3M9XCJhdXRoQ2FyZFwiPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgPGlvbi1jYXJkLXRpdGxlIGNvbG9yPVwicHJpbWFyeVwiPnt7ICdJREVBX0FVVEguQ09ORklSTV9BQ0NPVU5UJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZT57eyAnSURFQV9BVVRILlJFU0VORF9DT05GSVJNQVRJT05fTElOS19ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8cCBjbGFzcz1cImVycm9yQm94XCIgKm5nSWY9XCJlcnJvck1zZ1wiPlxuICAgICAgICAgIDxiPiB7eyAnSURFQV9BVVRILkVSUk9SJyB8IHRyYW5zbGF0ZSB9fS4gPC9iPlxuICAgICAgICAgIHt7IGVycm9yTXNnIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJpbmxpbmVcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uLWNpcmNsZVwiIGNvbG9yPVwicHJpbWFyeVwiPiA8L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJlbWFpbFwiXG4gICAgICAgICAgICBwYXR0ZXJuPVwiW0EtWmEtejAtOS5fJSstXXsyLH1AW2EtekEtWi1fLl17Mix9Wy5dezF9W2EtekEtWl17Mix9XCJcbiAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJlbWFpbFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidC5fKCdJREVBX0FVVEguRU1BSUwnKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguRU1BSUxfSElOVCcpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZXNlbmRDb25maXJtYXRpb25MaW5rKClcIlxuICAgICAgICAgID48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguUkVTRU5EX0xJTktfSElOVCcpXCIgKGNsaWNrKT1cInJlc2VuZENvbmZpcm1hdGlvbkxpbmsoKVwiPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguUkVTRU5EX0xJTksnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTl9ISU5UJylcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvQXV0aCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguQkFDS19UT19TSUdOX0lOJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cbiAgPC9mb3JtPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Plugins } from '@capacitor/core';
|
|
3
|
+
import { environment as env } from '@env';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ionic/angular";
|
|
6
|
+
import * as i2 from "@idea-ionic/common";
|
|
7
|
+
import * as i3 from "./auth.service";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "@angular/forms";
|
|
10
|
+
const { Browser } = Plugins;
|
|
11
|
+
export class IDEASignInPage {
|
|
12
|
+
constructor(navCtrl, tc, message, loading, auth, t) {
|
|
13
|
+
this.navCtrl = navCtrl;
|
|
14
|
+
this.tc = tc;
|
|
15
|
+
this.message = message;
|
|
16
|
+
this.loading = loading;
|
|
17
|
+
this.auth = auth;
|
|
18
|
+
this.t = t;
|
|
19
|
+
this.title = env.idea.app.title;
|
|
20
|
+
this.registrationPossible = env.idea.auth.registrationIsPossible;
|
|
21
|
+
this.hasIntroPage = env.idea.app.hasIntroPage;
|
|
22
|
+
this.website = env.idea.website;
|
|
23
|
+
this.agreementsCheck = true;
|
|
24
|
+
}
|
|
25
|
+
ionViewDidEnter() {
|
|
26
|
+
// manage the scenario in which we just created a new account (show a explanatory message: email must be confirmed)
|
|
27
|
+
if (this.tc.get('newAccountRegistered')) {
|
|
28
|
+
this.newAccountRegistered = true;
|
|
29
|
+
this.email = this.tc.get('newAccountRegistered', true);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sign-in with the auth details provided.
|
|
34
|
+
*/
|
|
35
|
+
async login() {
|
|
36
|
+
if (!this.agreementsCheck)
|
|
37
|
+
return;
|
|
38
|
+
this.errorMsg = null;
|
|
39
|
+
await this.loading.show();
|
|
40
|
+
this.auth
|
|
41
|
+
.login(this.email, this.password)
|
|
42
|
+
.then(needNewPassword => {
|
|
43
|
+
if (needNewPassword) {
|
|
44
|
+
this.tc.set('email', this.email);
|
|
45
|
+
this.tc.set('password', this.password);
|
|
46
|
+
this.navCtrl.navigateForward(['auth/new-password']);
|
|
47
|
+
}
|
|
48
|
+
else
|
|
49
|
+
window.location.assign(''); // hard reload
|
|
50
|
+
})
|
|
51
|
+
.catch(err => {
|
|
52
|
+
if (err.name === 'UserNotConfirmedException')
|
|
53
|
+
this.errorMsg = this.t._('IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN');
|
|
54
|
+
this.message.error('IDEA_AUTH.AUTHENTICATION_FAILED');
|
|
55
|
+
})
|
|
56
|
+
.finally(() => this.loading.hide());
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Go to the homepage.
|
|
60
|
+
*/
|
|
61
|
+
goToIntro() {
|
|
62
|
+
this.navCtrl.navigateBack(['intro']);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Go to the forgot password page.
|
|
66
|
+
*/
|
|
67
|
+
goToForgotPassword() {
|
|
68
|
+
this.navCtrl.navigateForward(['auth/forgot-password']);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Go to registration page.
|
|
72
|
+
*/
|
|
73
|
+
goToRegistration() {
|
|
74
|
+
this.tc.set('email', this.email);
|
|
75
|
+
this.tc.set('password', this.password);
|
|
76
|
+
this.navCtrl.navigateForward(['auth', 'sign-up']);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Open a URL in the browser.
|
|
80
|
+
*/
|
|
81
|
+
openLink(url) {
|
|
82
|
+
Browser.open({ url });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
IDEASignInPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEASignInPage, deps: [{ token: i1.NavController }, { token: i2.IDEATinCanService }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }, { token: i2.IDEATranslationsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
IDEASignInPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IDEASignInPage, selector: "idea-sign-in", ngImport: i0, template: "<ion-content>\n <ion-card color=\"warning\" *ngIf=\"newAccountRegistered\">\n <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>\n </ion-card>\n <form class=\"flexBox\">\n <div>\n <ion-card class=\"authCard\">\n <ion-img\n [title]=\"t._('IDEA_AUTH.SERVICE_LOGO')\"\n [src]=\"tc.get('darkMode') ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'\"\n ></ion-img>\n <ion-card-header>\n <ion-card-title color=\"primary\" *ngIf=\"title\">{{ title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"t._('IDEA_VARIABLES.TAGLINE')\">\n {{ 'IDEA_VARIABLES.TAGLINE' | translate }}\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"login()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n id=\"current-password\"\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"current-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.PASSWORD_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"login()\"\n ></ion-input>\n </ion-item>\n <ion-row\n class=\"agreementsAcceptanceRow\"\n *ngIf=\"\n !registrationPossible &&\n (t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') || t._('IDEA_VARIABLES.PRIVACY_POLICY_URL'))\n \"\n >\n <ion-col>\n <ion-checkbox\n size=\"small\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"agreementsCheck\"\n ></ion-checkbox>\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}:\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n [title]=\"t._('IDEA_AUTH.TERMS_AND_CONDITIONS_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n <ion-text\n *ngIf=\"\n t._('IDEA_VARIABLES.PRIVACY_POLICY_URL') && t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\n \"\n >\n &\n </ion-text>\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n [title]=\"t._('IDEA_AUTH.PRIVACY_POLICY_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n </ion-col>\n </ion-row>\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"t._('IDEA_AUTH.SIGN_IN_HINT')\"\n (click)=\"login()\"\n >\n {{ 'IDEA_AUTH.SIGN_IN' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n *ngIf=\"registrationPossible\"\n [title]=\"t._('IDEA_AUTH.CREATE_AN_ACCOUNT_HINT')\"\n (click)=\"goToRegistration()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT')\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n color=\"medium\"\n class=\"smallCaseButton\"\n *ngIf=\"hasIntroPage\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_INTRO_HINT')\"\n (click)=\"goToIntro()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n <ion-img\n class=\"ideaLogo\"\n *ngIf=\"website\"\n [src]=\"tc.get('darkMode') ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'\"\n [title]=\"t._('IDEA_AUTH.IDEA_TAGLINE')\"\n (click)=\"openLink(website)\"\n ></ion-img>\n </div>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"], components: [{ type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { type: i1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i1.IonRow, selector: "ion-row" }, { type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }], pipes: { "translate": i2.IDEATranslatePipe } });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEASignInPage, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: 'idea-sign-in', template: "<ion-content>\n <ion-card color=\"warning\" *ngIf=\"newAccountRegistered\">\n <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>\n </ion-card>\n <form class=\"flexBox\">\n <div>\n <ion-card class=\"authCard\">\n <ion-img\n [title]=\"t._('IDEA_AUTH.SERVICE_LOGO')\"\n [src]=\"tc.get('darkMode') ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'\"\n ></ion-img>\n <ion-card-header>\n <ion-card-title color=\"primary\" *ngIf=\"title\">{{ title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"t._('IDEA_VARIABLES.TAGLINE')\">\n {{ 'IDEA_VARIABLES.TAGLINE' | translate }}\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"login()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n id=\"current-password\"\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"current-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.PASSWORD_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"login()\"\n ></ion-input>\n </ion-item>\n <ion-row\n class=\"agreementsAcceptanceRow\"\n *ngIf=\"\n !registrationPossible &&\n (t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') || t._('IDEA_VARIABLES.PRIVACY_POLICY_URL'))\n \"\n >\n <ion-col>\n <ion-checkbox\n size=\"small\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"agreementsCheck\"\n ></ion-checkbox>\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}:\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n [title]=\"t._('IDEA_AUTH.TERMS_AND_CONDITIONS_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n <ion-text\n *ngIf=\"\n t._('IDEA_VARIABLES.PRIVACY_POLICY_URL') && t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\n \"\n >\n &\n </ion-text>\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n [title]=\"t._('IDEA_AUTH.PRIVACY_POLICY_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n </ion-col>\n </ion-row>\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"t._('IDEA_AUTH.SIGN_IN_HINT')\"\n (click)=\"login()\"\n >\n {{ 'IDEA_AUTH.SIGN_IN' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n *ngIf=\"registrationPossible\"\n [title]=\"t._('IDEA_AUTH.CREATE_AN_ACCOUNT_HINT')\"\n (click)=\"goToRegistration()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT')\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n color=\"medium\"\n class=\"smallCaseButton\"\n *ngIf=\"hasIntroPage\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_INTRO_HINT')\"\n (click)=\"goToIntro()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n <ion-img\n class=\"ideaLogo\"\n *ngIf=\"website\"\n [src]=\"tc.get('darkMode') ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'\"\n [title]=\"t._('IDEA_AUTH.IDEA_TAGLINE')\"\n (click)=\"openLink(website)\"\n ></ion-img>\n </div>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"] }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEATinCanService }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }, { type: i2.IDEATranslationsService }]; } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbkluLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL3NpZ25Jbi5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9zaWduSW4ucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTTFDLE9BQU8sRUFBRSxXQUFXLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTDFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7QUFZNUIsTUFBTSxPQUFPLGNBQWM7SUFzQ3pCLFlBQ1MsT0FBc0IsRUFDdEIsRUFBcUIsRUFDckIsT0FBMkIsRUFDM0IsT0FBMkIsRUFDM0IsSUFBcUIsRUFDckIsQ0FBMEI7UUFMMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixNQUFDLEdBQUQsQ0FBQyxDQUF5QjtRQUVqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDakUsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBQ00sZUFBZTtRQUNwQixtSEFBbUg7UUFDbkgsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJO2FBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO2FBQ3JEOztnQkFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDbkQsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLDJCQUEyQjtnQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDaEgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNEOztPQUVHO0lBQ0ksa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBVztRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzsyR0E3R1UsY0FBYzsrRkFBZCxjQUFjLG9EQ2YzQiwrMExBMEpBOzJGRDNJYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBQbHVnaW5zIH0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcbmNvbnN0IHsgQnJvd3NlciB9ID0gUGx1Z2lucztcbmltcG9ydCB7IElERUFNZXNzYWdlU2VydmljZSwgSURFQUxvYWRpbmdTZXJ2aWNlLCBJREVBVGluQ2FuU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGVudiB9IGZyb20gJ0BlbnYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLXNpZ24taW4nLFxuICB0ZW1wbGF0ZVVybDogJ3NpZ25Jbi5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYXV0aC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQVNpZ25JblBhZ2Uge1xuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwdWJsaWMgcmVnaXN0cmF0aW9uIGlzIGFsbG93ZWQgZm9yIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdHJhdGlvblBvc3NpYmxlOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvamVjdCBoYXMgYW4gaW50cm8gKGV4cGxhbmF0b3J5KSBwYWdlLlxuICAgKi9cbiAgcHVibGljIGhhc0ludHJvUGFnZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBVUkwgdG8gSURFQSdzIHdlYnNpdGUuXG4gICAqL1xuICBwdWJsaWMgd2Vic2l0ZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVtYWlsIGFkZHJlc3MgdG8gaWRlbnRpZnkgYSB1c2VyLlxuICAgKi9cbiAgcHVibGljIGVtYWlsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGFzc3dvcmQgdG8gbG9naW4gZm9yIHRoZSBlbWFpbCBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYWdyZWVtZW50cyBoYXZlIGJlZW4gYWNjZXB0ZWQuXG4gICAqL1xuICBwdWJsaWMgYWdyZWVtZW50c0NoZWNrOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBhIG5ldyBhY2NvdW50IHdhcyBqdXN0IGNyZWF0ZWQgdGhyb3VnaCB0aGUgU2lnblVwIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgbmV3QWNjb3VudFJlZ2lzdGVyZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IGluIHRoZSBVSSwgaWYgYW55LlxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIsXG4gICAgcHVibGljIHRjOiBJREVBVGluQ2FuU2VydmljZSxcbiAgICBwdWJsaWMgbWVzc2FnZTogSURFQU1lc3NhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2FkaW5nOiBJREVBTG9hZGluZ1NlcnZpY2UsXG4gICAgcHVibGljIGF1dGg6IElERUFBdXRoU2VydmljZSxcbiAgICBwdWJsaWMgdDogSURFQVRyYW5zbGF0aW9uc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy50aXRsZSA9IGVudi5pZGVhLmFwcC50aXRsZTtcbiAgICB0aGlzLnJlZ2lzdHJhdGlvblBvc3NpYmxlID0gZW52LmlkZWEuYXV0aC5yZWdpc3RyYXRpb25Jc1Bvc3NpYmxlO1xuICAgIHRoaXMuaGFzSW50cm9QYWdlID0gZW52LmlkZWEuYXBwLmhhc0ludHJvUGFnZTtcbiAgICB0aGlzLndlYnNpdGUgPSBlbnYuaWRlYS53ZWJzaXRlO1xuICAgIHRoaXMuYWdyZWVtZW50c0NoZWNrID0gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgaW9uVmlld0RpZEVudGVyKCkge1xuICAgIC8vIG1hbmFnZSB0aGUgc2NlbmFyaW8gaW4gd2hpY2ggd2UganVzdCBjcmVhdGVkIGEgbmV3IGFjY291bnQgKHNob3cgYSBleHBsYW5hdG9yeSBtZXNzYWdlOiBlbWFpbCBtdXN0IGJlIGNvbmZpcm1lZClcbiAgICBpZiAodGhpcy50Yy5nZXQoJ25ld0FjY291bnRSZWdpc3RlcmVkJykpIHtcbiAgICAgIHRoaXMubmV3QWNjb3VudFJlZ2lzdGVyZWQgPSB0cnVlO1xuICAgICAgdGhpcy5lbWFpbCA9IHRoaXMudGMuZ2V0KCduZXdBY2NvdW50UmVnaXN0ZXJlZCcsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduLWluIHdpdGggdGhlIGF1dGggZGV0YWlscyBwcm92aWRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dpbigpIHtcbiAgICBpZiAoIXRoaXMuYWdyZWVtZW50c0NoZWNrKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZyA9IG51bGw7XG4gICAgYXdhaXQgdGhpcy5sb2FkaW5nLnNob3coKTtcbiAgICB0aGlzLmF1dGhcbiAgICAgIC5sb2dpbih0aGlzLmVtYWlsLCB0aGlzLnBhc3N3b3JkKVxuICAgICAgLnRoZW4obmVlZE5ld1Bhc3N3b3JkID0+IHtcbiAgICAgICAgaWYgKG5lZWROZXdQYXNzd29yZCkge1xuICAgICAgICAgIHRoaXMudGMuc2V0KCdlbWFpbCcsIHRoaXMuZW1haWwpO1xuICAgICAgICAgIHRoaXMudGMuc2V0KCdwYXNzd29yZCcsIHRoaXMucGFzc3dvcmQpO1xuICAgICAgICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUZvcndhcmQoWydhdXRoL25ldy1wYXNzd29yZCddKTtcbiAgICAgICAgfSBlbHNlIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oJycpOyAvLyBoYXJkIHJlbG9hZFxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBpZiAoZXJyLm5hbWUgPT09ICdVc2VyTm90Q29uZmlybWVkRXhjZXB0aW9uJykgdGhpcy5lcnJvck1zZyA9IHRoaXMudC5fKCdJREVBX0FVVEguQ09ORklSTV9ZT1VSX0VNQUlMX1RPX0xPR0lOJyk7XG4gICAgICAgIHRoaXMubWVzc2FnZS5lcnJvcignSURFQV9BVVRILkFVVEhFTlRJQ0FUSU9OX0ZBSUxFRCcpO1xuICAgICAgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZy5oaWRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIHRoZSBob21lcGFnZS5cbiAgICovXG4gIHB1YmxpYyBnb1RvSW50cm8oKSB7XG4gICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlQmFjayhbJ2ludHJvJ10pO1xuICB9XG4gIC8qKlxuICAgKiBHbyB0byB0aGUgZm9yZ290IHBhc3N3b3JkIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ29Ub0ZvcmdvdFBhc3N3b3JkKCkge1xuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUZvcndhcmQoWydhdXRoL2ZvcmdvdC1wYXNzd29yZCddKTtcbiAgfVxuICAvKipcbiAgICogR28gdG8gcmVnaXN0cmF0aW9uIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ29Ub1JlZ2lzdHJhdGlvbigpIHtcbiAgICB0aGlzLnRjLnNldCgnZW1haWwnLCB0aGlzLmVtYWlsKTtcbiAgICB0aGlzLnRjLnNldCgncGFzc3dvcmQnLCB0aGlzLnBhc3N3b3JkKTtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVGb3J3YXJkKFsnYXV0aCcsICdzaWduLXVwJ10pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gYSBVUkwgaW4gdGhlIGJyb3dzZXIuXG4gICAqL1xuICBwdWJsaWMgb3BlbkxpbmsodXJsOiBzdHJpbmcpIHtcbiAgICBCcm93c2VyLm9wZW4oeyB1cmwgfSk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGlvbi1jYXJkIGNvbG9yPVwid2FybmluZ1wiICpuZ0lmPVwibmV3QWNjb3VudFJlZ2lzdGVyZWRcIj5cbiAgICA8aW9uLWNhcmQtY29udGVudD57eyAnSURFQV9BVVRILkNPTkZJUk1fWU9VUl9FTUFJTF9UT19MT0dJTicgfCB0cmFuc2xhdGUgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gIDwvaW9uLWNhcmQ+XG4gIDxmb3JtIGNsYXNzPVwiZmxleEJveFwiPlxuICAgIDxkaXY+XG4gICAgICA8aW9uLWNhcmQgY2xhc3M9XCJhdXRoQ2FyZFwiPlxuICAgICAgICA8aW9uLWltZ1xuICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5TRVJWSUNFX0xPR08nKVwiXG4gICAgICAgICAgW3NyY109XCJ0Yy5nZXQoJ2RhcmtNb2RlJykgPyAnYXNzZXRzL2ljb25zL2ljb24tYXV0aC1hbHQuc3ZnJyA6ICdhc3NldHMvaWNvbnMvaWNvbi1hdXRoLnN2ZydcIlxuICAgICAgICA+PC9pb24taW1nPlxuICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgIDxpb24tY2FyZC10aXRsZSBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInRpdGxlXCI+e3sgdGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInQuXygnSURFQV9WQVJJQUJMRVMuVEFHTElORScpXCI+XG4gICAgICAgICAgICB7eyAnSURFQV9WQVJJQUJMRVMuVEFHTElORScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPHAgY2xhc3M9XCJlcnJvckJveFwiICpuZ0lmPVwiZXJyb3JNc2dcIj5cbiAgICAgICAgICAgIDxiPiB7eyAnSURFQV9BVVRILkVSUk9SJyB8IHRyYW5zbGF0ZSB9fS4gPC9iPlxuICAgICAgICAgICAge3sgZXJyb3JNc2cgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvbi1jaXJjbGVcIiBjb2xvcj1cInByaW1hcnlcIj4gPC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgIHBhdHRlcm49XCJbQS1aYS16MC05Ll8lKy1dezIsfUBbYS16QS1aLV8uXXsyLH1bLl17MX1bYS16QS1aXXsyLH1cIlxuICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidC5fKCdJREVBX0FVVEguRU1BSUwnKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5FTUFJTF9ISU5UJylcIlxuICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luKClcIlxuICAgICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImtleVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICAgaWQ9XCJjdXJyZW50LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIi57OCx9XCJcbiAgICAgICAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIlxuICAgICAgICAgICAgICBbY2xlYXJPbkVkaXRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidC5fKCdJREVBX0FVVEguUEFTU1dPUkQnKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5QQVNTV09SRF9ISU5UJylcIlxuICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luKClcIlxuICAgICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1yb3dcbiAgICAgICAgICAgIGNsYXNzPVwiYWdyZWVtZW50c0FjY2VwdGFuY2VSb3dcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgIXJlZ2lzdHJhdGlvblBvc3NpYmxlICYmXG4gICAgICAgICAgICAgICh0Ll8oJ0lERUFfVkFSSUFCTEVTLlRFUk1TX0FORF9DT05ESVRJT05TX1VSTCcpIHx8IHQuXygnSURFQV9WQVJJQUJMRVMuUFJJVkFDWV9QT0xJQ1lfVVJMJykpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWdyZWVtZW50c0NoZWNrXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICB7eyAnSURFQV9BVVRILkFHUkVFTUVOVFNfQ0hFQ0tfTE9HSU4nIHwgdHJhbnNsYXRlIH19OlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGlvbi10ZXh0XG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILlRFUk1TX0FORF9DT05ESVRJT05TX0hJTlQnKVwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnSURFQV9BVVRILlRFUk1TX0FORF9DT05ESVRJT05TJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxpb24tdGV4dFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICB0Ll8oJ0lERUFfVkFSSUFCTEVTLlBSSVZBQ1lfUE9MSUNZX1VSTCcpICYmIHQuXygnSURFQV9WQVJJQUJMRVMuVEVSTVNfQU5EX0NPTkRJVElPTlNfVVJMJylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJlxuICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGlvbi10ZXh0XG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidC5fKCdJREVBX1ZBUklBQkxFUy5QUklWQUNZX1BPTElDWV9VUkwnKVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILlBSSVZBQ1lfUE9MSUNZX0hJTlQnKVwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidC5fKCdJREVBX1ZBUklBQkxFUy5QUklWQUNZX1BPTElDWV9VUkwnKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnSURFQV9BVVRILlBSSVZBQ1lfUE9MSUNZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFncmVlbWVudHNDaGVja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguU0lHTl9JTl9ISU5UJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImxvZ2luKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdJREVBX0FVVEguU0lHTl9JTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cInJlZ2lzdHJhdGlvblBvc3NpYmxlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5DUkVBVEVfQU5fQUNDT1VOVF9ISU5UJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9SZWdpc3RyYXRpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0lERUFfQVVUSC5DUkVBVEVfQU5fQUNDT1VOVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguSV9GT1JHT1RfTVlfUEFTU1dPUkRfSElOVCcpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1RvRm9yZ290UGFzc3dvcmQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0lERUFfQVVUSC5JX0ZPUkdPVF9NWV9QQVNTV09SRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICBjb2xvcj1cIm1lZGl1bVwiXG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cImhhc0ludHJvUGFnZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguQkFDS19UT19JTlRST19ISU5UJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9JbnRybygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnSURFQV9BVVRILkJBQ0tfVE9fSU5UUk8nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2lvbi1jYXJkPlxuICAgICAgPGlvbi1pbWdcbiAgICAgICAgY2xhc3M9XCJpZGVhTG9nb1wiXG4gICAgICAgICpuZ0lmPVwid2Vic2l0ZVwiXG4gICAgICAgIFtzcmNdPVwidGMuZ2V0KCdkYXJrTW9kZScpID8gJy4vYXNzZXRzL2ljb25zL2lkZWEtYWx0LnBuZycgOiAnLi9hc3NldHMvaWNvbnMvaWRlYS5wbmcnXCJcbiAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILklERUFfVEFHTElORScpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5MaW5rKHdlYnNpdGUpXCJcbiAgICAgID48L2lvbi1pbWc+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { isEmpty } from 'idea-toolbox';
|
|
3
|
+
import { environment as env } from '@env';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ionic/angular";
|
|
6
|
+
import * as i2 from "@idea-ionic/common";
|
|
7
|
+
import * as i3 from "./auth.service";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
export class IDEASignUpPage {
|
|
11
|
+
constructor(navCtrl, tc, message, loading, auth, t) {
|
|
12
|
+
this.navCtrl = navCtrl;
|
|
13
|
+
this.tc = tc;
|
|
14
|
+
this.message = message;
|
|
15
|
+
this.loading = loading;
|
|
16
|
+
this.auth = auth;
|
|
17
|
+
this.t = t;
|
|
18
|
+
this.email = this.tc.get('email', true);
|
|
19
|
+
this.password = this.tc.get('password', true);
|
|
20
|
+
this.agreementsCheck = false;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
if (!env.idea.auth.registrationIsPossible)
|
|
24
|
+
return this.goToAuth();
|
|
25
|
+
// if there isn't any agreement to agree to, set the check true
|
|
26
|
+
this.agreementsCheck =
|
|
27
|
+
this.t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') || this.t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')
|
|
28
|
+
? this.agreementsCheck
|
|
29
|
+
: true;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Register the new user in cognito (note DynamoDB still need to be managed).
|
|
33
|
+
*/
|
|
34
|
+
async register() {
|
|
35
|
+
this.errorMsg = null;
|
|
36
|
+
// check the fields
|
|
37
|
+
if (isEmpty(this.email, 'email'))
|
|
38
|
+
this.errorMsg = this.t._('IDEA_AUTH.VALID_EMAIL_OBLIGATORY');
|
|
39
|
+
else if (!this.password || this.password.length < 8)
|
|
40
|
+
this.errorMsg = this.t._('IDEA_AUTH.PASSWORD_POLICY_VIOLATION', { n: 8 });
|
|
41
|
+
// output the error, if there was one
|
|
42
|
+
if (this.errorMsg)
|
|
43
|
+
return this.message.error('IDEA_AUTH.REGISTRATION_FAILED');
|
|
44
|
+
// start the registration
|
|
45
|
+
await this.loading.show();
|
|
46
|
+
this.auth
|
|
47
|
+
.register(this.email, this.password)
|
|
48
|
+
.then(() => {
|
|
49
|
+
this.message.success('IDEA_AUTH.REGISTRATION_COMPLETED');
|
|
50
|
+
this.tc.set('newAccountRegistered', this.email);
|
|
51
|
+
this.goToAuth();
|
|
52
|
+
})
|
|
53
|
+
.catch(err => {
|
|
54
|
+
// show the unexpected error on screen (english)
|
|
55
|
+
this.errorMsg = err.message;
|
|
56
|
+
this.message.error('IDEA_AUTH.REGISTRATION_FAILED');
|
|
57
|
+
})
|
|
58
|
+
.finally(() => this.loading.hide());
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Go to the resend link page.
|
|
62
|
+
*/
|
|
63
|
+
goToResendLink() {
|
|
64
|
+
this.navCtrl.navigateForward(['auth/resend-link']);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Go to auth page.
|
|
68
|
+
*/
|
|
69
|
+
goToAuth() {
|
|
70
|
+
this.navCtrl.navigateBack(['auth']);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
IDEASignUpPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEASignUpPage, deps: [{ token: i1.NavController }, { token: i2.IDEATinCanService }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }, { token: i2.IDEATranslationsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
IDEASignUpPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IDEASignUpPage, selector: "idea-sign-up", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.REGISTRATION_EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"register()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.CHOOSE_A_PASSWORD')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"register()\"\n ></ion-input>\n </ion-item>\n <ion-row\n class=\"agreementsAcceptanceRow\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') || t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n <ion-col>\n <ion-checkbox\n size=\"small\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"agreementsCheck\"\n ></ion-checkbox>\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}:\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n [title]=\"t._('IDEA_AUTH.TERMS_AND_CONDITIONS_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n <ion-text\n *ngIf=\"\n t._('IDEA_VARIABLES.PRIVACY_POLICY_URL') && t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\n \"\n >\n &\n </ion-text>\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n [title]=\"t._('IDEA_AUTH.PRIVACY_POLICY_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n </ion-col>\n </ion-row>\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"t._('IDEA_AUTH.CREATE_AN_ACCOUNT_HINT')\"\n (click)=\"register()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT')\"\n (click)=\"goToResendLink()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"], components: [{ type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i1.IonRow, selector: "ion-row" }, { type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }], pipes: { "translate": i2.IDEATranslatePipe } });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IDEASignUpPage, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'idea-sign-up', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"> </ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"t._('IDEA_AUTH.EMAIL')\"\n [title]=\"t._('IDEA_AUTH.REGISTRATION_EMAIL_HINT')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"register()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n pattern=\".{8,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"t._('IDEA_AUTH.PASSWORD')\"\n [title]=\"t._('IDEA_AUTH.CHOOSE_A_PASSWORD')\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"register()\"\n ></ion-input>\n </ion-item>\n <ion-row\n class=\"agreementsAcceptanceRow\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') || t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n <ion-col>\n <ion-checkbox\n size=\"small\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"agreementsCheck\"\n ></ion-checkbox>\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}:\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n [title]=\"t._('IDEA_AUTH.TERMS_AND_CONDITIONS_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n <ion-text\n *ngIf=\"\n t._('IDEA_VARIABLES.PRIVACY_POLICY_URL') && t._('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')\n \"\n >\n &\n </ion-text>\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n *ngIf=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n [title]=\"t._('IDEA_AUTH.PRIVACY_POLICY_HINT')\"\n [href]=\"t._('IDEA_VARIABLES.PRIVACY_POLICY_URL')\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n </ion-col>\n </ion-row>\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"t._('IDEA_AUTH.CREATE_AN_ACCOUNT_HINT')\"\n (click)=\"register()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT')\"\n (click)=\"goToResendLink()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"t._('IDEA_AUTH.BACK_TO_SIGN_IN_HINT')\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--ion-color-white-shade)}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--ion-color-white);border:1px solid var(--ion-color-light);border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--ion-color-white);--border-color: var(--ion-color-light)}.authCard ion-card-content ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button{margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}\n"] }]
|
|
78
|
+
}], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEATinCanService }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }, { type: i2.IDEATranslationsService }]; } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblVwLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL3NpZ25VcC5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9zaWduVXAucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUt2QyxPQUFPLEVBQUUsV0FBVyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sY0FBYztJQWtCekIsWUFDUyxPQUFzQixFQUN0QixFQUFxQixFQUNyQixPQUEyQixFQUMzQixPQUEyQixFQUMzQixJQUFxQixFQUNyQixDQUEwQjtRQUwxQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLE1BQUMsR0FBRCxDQUFDLENBQXlCO1FBRWpDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQjtZQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xFLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsZUFBZTtZQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO2dCQUNsRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWU7Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsUUFBUTtRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixtQkFBbUI7UUFDbkIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7YUFDMUYsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDOUUseUJBQXlCO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSTthQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDbkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDWCxnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDO2FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7MkdBOUVVLGNBQWM7K0ZBQWQsY0FBYyxvRENkM0IsazhJQXdIQTsyRkQxR2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFNZXNzYWdlU2VydmljZSwgSURFQUxvYWRpbmdTZXJ2aWNlLCBJREVBVGluQ2FuU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGVudiB9IGZyb20gJ0BlbnYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLXNpZ24tdXAnLFxuICB0ZW1wbGF0ZVVybDogJ3NpZ25VcC5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYXV0aC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQVNpZ25VcFBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGVtYWlsIGFkZHJlc3MgdXNlZCB0byBpZGVudGlmeSB0aGUgbmV3IGFjY291bnQuXG4gICAqL1xuICBwdWJsaWMgZW1haWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwYXNzd29yZCBvZiB0aGUgbmV3IGFjY291bnQuXG4gICAqL1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFncmVlbWVudHMgaGF2ZSBiZWVuIGFjY2VwdGVkLlxuICAgKi9cbiAgcHVibGljIGFncmVlbWVudHNDaGVjazogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIFVJLCBpZiBhbnkuXG4gICAqL1xuICBwdWJsaWMgZXJyb3JNc2c6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwdWJsaWMgdGM6IElERUFUaW5DYW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBJREVBTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aDogSURFQUF1dGhTZXJ2aWNlLFxuICAgIHB1YmxpYyB0OiBJREVBVHJhbnNsYXRpb25zU2VydmljZVxuICApIHtcbiAgICB0aGlzLmVtYWlsID0gdGhpcy50Yy5nZXQoJ2VtYWlsJywgdHJ1ZSk7XG4gICAgdGhpcy5wYXNzd29yZCA9IHRoaXMudGMuZ2V0KCdwYXNzd29yZCcsIHRydWUpO1xuICAgIHRoaXMuYWdyZWVtZW50c0NoZWNrID0gZmFsc2U7XG4gIH1cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICghZW52LmlkZWEuYXV0aC5yZWdpc3RyYXRpb25Jc1Bvc3NpYmxlKSByZXR1cm4gdGhpcy5nb1RvQXV0aCgpO1xuICAgIC8vIGlmIHRoZXJlIGlzbid0IGFueSBhZ3JlZW1lbnQgdG8gYWdyZWUgdG8sIHNldCB0aGUgY2hlY2sgdHJ1ZVxuICAgIHRoaXMuYWdyZWVtZW50c0NoZWNrID1cbiAgICAgIHRoaXMudC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKSB8fCB0aGlzLnQuXygnSURFQV9WQVJJQUJMRVMuUFJJVkFDWV9QT0xJQ1lfVVJMJylcbiAgICAgICAgPyB0aGlzLmFncmVlbWVudHNDaGVja1xuICAgICAgICA6IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdGhlIG5ldyB1c2VyIGluIGNvZ25pdG8gKG5vdGUgRHluYW1vREIgc3RpbGwgbmVlZCB0byBiZSBtYW5hZ2VkKS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWdpc3RlcigpIHtcbiAgICB0aGlzLmVycm9yTXNnID0gbnVsbDtcbiAgICAvLyBjaGVjayB0aGUgZmllbGRzXG4gICAgaWYgKGlzRW1wdHkodGhpcy5lbWFpbCwgJ2VtYWlsJykpIHRoaXMuZXJyb3JNc2cgPSB0aGlzLnQuXygnSURFQV9BVVRILlZBTElEX0VNQUlMX09CTElHQVRPUlknKTtcbiAgICBlbHNlIGlmICghdGhpcy5wYXNzd29yZCB8fCB0aGlzLnBhc3N3b3JkLmxlbmd0aCA8IDgpXG4gICAgICB0aGlzLmVycm9yTXNnID0gdGhpcy50Ll8oJ0lERUFfQVVUSC5QQVNTV09SRF9QT0xJQ1lfVklPTEFUSU9OJywgeyBuOiA4IH0pO1xuICAgIC8vIG91dHB1dCB0aGUgZXJyb3IsIGlmIHRoZXJlIHdhcyBvbmVcbiAgICBpZiAodGhpcy5lcnJvck1zZykgcmV0dXJuIHRoaXMubWVzc2FnZS5lcnJvcignSURFQV9BVVRILlJFR0lTVFJBVElPTl9GQUlMRUQnKTtcbiAgICAvLyBzdGFydCB0aGUgcmVnaXN0cmF0aW9uXG4gICAgYXdhaXQgdGhpcy5sb2FkaW5nLnNob3coKTtcbiAgICB0aGlzLmF1dGhcbiAgICAgIC5yZWdpc3Rlcih0aGlzLmVtYWlsLCB0aGlzLnBhc3N3b3JkKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlJFR0lTVFJBVElPTl9DT01QTEVURUQnKTtcbiAgICAgICAgdGhpcy50Yy5zZXQoJ25ld0FjY291bnRSZWdpc3RlcmVkJywgdGhpcy5lbWFpbCk7XG4gICAgICAgIHRoaXMuZ29Ub0F1dGgoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgLy8gc2hvdyB0aGUgdW5leHBlY3RlZCBlcnJvciBvbiBzY3JlZW4gKGVuZ2xpc2gpXG4gICAgICAgIHRoaXMuZXJyb3JNc2cgPSBlcnIubWVzc2FnZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlLmVycm9yKCdJREVBX0FVVEguUkVHSVNUUkFUSU9OX0ZBSUxFRCcpO1xuICAgICAgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZy5oaWRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIHRoZSByZXNlbmQgbGluayBwYWdlLlxuICAgKi9cbiAgcHVibGljIGdvVG9SZXNlbmRMaW5rKCkge1xuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUZvcndhcmQoWydhdXRoL3Jlc2VuZC1saW5rJ10pO1xuICB9XG4gIC8qKlxuICAgKiBHbyB0byBhdXRoIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ29Ub0F1dGgoKSB7XG4gICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlQmFjayhbJ2F1dGgnXSk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGZvcm0gY2xhc3M9XCJmbGV4Qm94XCI+XG4gICAgPGlvbi1jYXJkIGNsYXNzPVwiYXV0aENhcmRcIj5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSBjb2xvcj1cInByaW1hcnlcIj57eyAnSURFQV9BVVRILk5FV19BQ0NPVU5UJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZT57eyAnSURFQV9BVVRILlJFR0lTVEVSX0FfTkVXX0FDQ09VTlRfVE9fVEhFX1NZU1RFTScgfCB0cmFuc2xhdGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG4gICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvckJveFwiICpuZ0lmPVwiZXJyb3JNc2dcIj5cbiAgICAgICAgICA8Yj4ge3sgJ0lERUFfQVVUSC5FUlJPUicgfCB0cmFuc2xhdGUgfX0uIDwvYj5cbiAgICAgICAgICB7eyBlcnJvck1zZyB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxpb24taXRlbT5cbiAgICAgICAgICA8aW9uLWxhYmVsIHBvc2l0aW9uPVwiaW5saW5lXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvbi1jaXJjbGVcIiBjb2xvcj1cInByaW1hcnlcIj4gPC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0Ll8oJ0lERUFfQVVUSC5FTUFJTCcpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5SRUdJU1RSQVRJT05fRU1BSUxfSElOVCcpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZWdpc3RlcigpXCJcbiAgICAgICAgICA+PC9pb24taW5wdXQ+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIDxpb24taXRlbT5cbiAgICAgICAgICA8aW9uLWxhYmVsIHBvc2l0aW9uPVwiaW5saW5lXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImtleVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIHBhdHRlcm49XCIuezgsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtjbGVhck9uRWRpdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidC5fKCdJREVBX0FVVEguUEFTU1dPUkQnKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguQ0hPT1NFX0FfUEFTU1dPUkQnKVwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicmVnaXN0ZXIoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8aW9uLXJvd1xuICAgICAgICAgIGNsYXNzPVwiYWdyZWVtZW50c0FjY2VwdGFuY2VSb3dcIlxuICAgICAgICAgICpuZ0lmPVwidC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKSB8fCB0Ll8oJ0lERUFfVkFSSUFCTEVTLlBSSVZBQ1lfUE9MSUNZX1VSTCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jaGVja2JveFxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFncmVlbWVudHNDaGVja1wiXG4gICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICB7eyAnSURFQV9BVVRILkFHUkVFTUVOVFNfQ0hFQ0tfUkVHSVNUUkFUSU9OJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGlvbi10ZXh0XG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwidC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJ0Ll8oJ0lERUFfQVVUSC5URVJNU19BTkRfQ09ORElUSU9OU19ISU5UJylcIlxuICAgICAgICAgICAgICBbaHJlZl09XCJ0Ll8oJ0lERUFfVkFSSUFCTEVTLlRFUk1TX0FORF9DT05ESVRJT05TX1VSTCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0lERUFfQVVUSC5URVJNU19BTkRfQ09ORElUSU9OUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxpb24tdGV4dFxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIHQuXygnSURFQV9WQVJJQUJMRVMuUFJJVkFDWV9QT0xJQ1lfVVJMJykgJiYgdC5fKCdJREVBX1ZBUklBQkxFUy5URVJNU19BTkRfQ09ORElUSU9OU19VUkwnKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAmXG4gICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaW9uLXRleHRcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0Ll8oJ0lERUFfVkFSSUFCTEVTLlBSSVZBQ1lfUE9MSUNZX1VSTCcpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILlBSSVZBQ1lfUE9MSUNZX0hJTlQnKVwiXG4gICAgICAgICAgICAgIFtocmVmXT1cInQuXygnSURFQV9WQVJJQUJMRVMuUFJJVkFDWV9QT0xJQ1lfVVJMJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnSURFQV9BVVRILlBSSVZBQ1lfUE9MSUNZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPC9pb24tcm93PlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFncmVlbWVudHNDaGVja1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQuXygnSURFQV9BVVRILkNSRUFURV9BTl9BQ0NPVU5UX0hJTlQnKVwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlZ2lzdGVyKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5DUkVBVEVfQU5fQUNDT1VOVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgZXhwYW5kPVwiYmxvY2tcIlxuICAgICAgICAgIGNsYXNzPVwic21hbGxDYXNlQnV0dG9uXCJcbiAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguSEFWRU5fVF9SRUNFSVZFRF9DT05GSVJNQVRJT05fTElOS19ISU5UJylcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvUmVzZW5kTGluaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguSEFWRU5fVF9SRUNFSVZFRF9DT05GSVJNQVRJT05fTElOSycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgZXhwYW5kPVwiYmxvY2tcIlxuICAgICAgICAgIGNsYXNzPVwic21hbGxDYXNlQnV0dG9uXCJcbiAgICAgICAgICBbdGl0bGVdPVwidC5fKCdJREVBX0FVVEguQkFDS19UT19TSUdOX0lOX0hJTlQnKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9BdXRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5CQUNLX1RPX1NJR05fSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuIl19
|